Skip to content

Commit

Permalink
(graph api) add group creation api tests
Browse files Browse the repository at this point in the history
bump core commit id

fix php style
  • Loading branch information
saw-jan committed Nov 10, 2022
1 parent 38ce3b7 commit 1c13a76
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 16 deletions.
4 changes: 2 additions & 2 deletions .drone.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The test runner source for API tests
CORE_COMMITID=1eed08f1229136ac5cd7ef3ae2ccd2821a113129
CORE_BRANCH=master
CORE_COMMITID=ac8532546217ee719391ce68a25e541ba44544c5
CORE_BRANCH=test/get-with-groupname

# The test runner source for UI tests
WEB_COMMITID=37e83b008f5baa762c6544e126e3836d44c11c10
Expand Down
38 changes: 38 additions & 0 deletions tests/acceptance/features/apiGraph/createGroup.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
@api @skipOnOcV10
Feature: create group
Only user with admin permissions can create new groups

Background:
Given user "Alice" has been created with default attributes and without skeleton files
And the administrator has given "Alice" the role "Admin" using the settings api


Scenario Outline: admin user creates a group
When user "Alice" creates a group "<groupname>" using the Graph API
And the administrator creates a group "grp1" using the Graph API
Then the HTTP status code should be "200"
And group "<groupname>" should exist
Examples:
| groupname |
| simplegroup |
| España§àôœ€ |
| नेपाली |
| $x<=>[y*z^2+1]! |
| 😅 😆 |
| comma,grp1 |
| Finance (NP) |
| slash\Middle |


Scenario: admin user tries to create a group that already exists
Given group "mygroup" has been created
When user "Alice" tries to create a group "mygroup" using the Graph API
And the HTTP status code should be "500"
And group "mygroup" should exist


Scenario: normal user tries to create a group
Given user "Brian" has been created with default attributes and without skeleton files
When user "Brian" tries to create a group "mygroup" using the Graph API
And the HTTP status code should be "401"
And group "mygroup" should not exist
45 changes: 31 additions & 14 deletions tests/acceptance/features/bootstrap/GraphContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
use TestHelpers\GraphHelper;
use TestHelpers\WebDavHelper;
use PHPUnit\Framework\Assert;

require_once 'bootstrap.php';
Expand Down Expand Up @@ -467,22 +468,44 @@ public function adminHasAddedUserToGroupUsingTheGraphApi(
}

/**
* @When /^the administrator creates a group "([^"]*)" using the Graph API$/
*
* @param string $group
* @param ?string $user
*
* @return void
* @throws Exception
* @return ResponseInterface
* @throws GuzzleException
*/
public function adminCreatesGroupUsingTheGraphApi(string $group): void {
$response = GraphHelper::createGroup(
public function createGroup(string $group, ?string $user = null): ResponseInterface {
if ($user) {
$username = $user;
$password = $this->featureContext->getPasswordForUser($user);
} else {
$username = $this->featureContext->getAdminUsername();
$password = $this->featureContext->getAdminPassword();
}
return GraphHelper::createGroup(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$this->featureContext->getAdminUsername(),
$this->featureContext->getAdminPassword(),
$username,
$password,
$group,
);
}

/**
* @When /^the administrator creates a group "([^"]*)" using the Graph API$/
* @When user :user creates a group :group using the Graph API
* @When user :user tries to create a group :group using the Graph API
*
* @param string $group
* @param ?string $user
*
* @return void
* @throws Exception
* @throws GuzzleException
*/
public function adminCreatesGroupUsingTheGraphApi(string $group, ?string $user = null): void {
$response = $this->createGroup($group, $user);
$this->featureContext->setResponse($response);
$this->featureContext->pushToLastHttpStatusCodesArray((string) $response->getStatusCode());

Expand All @@ -502,13 +525,7 @@ public function adminCreatesGroupUsingTheGraphApi(string $group): void {
* @throws GuzzleException
*/
public function adminHasCreatedGroupUsingTheGraphApi(string $group): array {
$result = GraphHelper::createGroup(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$this->featureContext->getAdminUsername(),
$this->featureContext->getAdminPassword(),
$group,
);
$result = $this->createGroup($group);
if ($result->getStatusCode() === 200) {
return $this->featureContext->getJsonDecodedResponse($result);
} else {
Expand Down

0 comments on commit 1c13a76

Please sign in to comment.