Added integration tests directly in the code PR

This commit is contained in:
Sergio Bertolín 2016-04-19 09:13:24 +00:00 committed by Thomas Müller
parent 0eed6b5189
commit 271ba6da63
No known key found for this signature in database
GPG Key ID: A943788A3BBEC44C
4 changed files with 259 additions and 3 deletions

View File

@ -230,9 +230,9 @@ trait Provisioning {
} }
/** /**
* @When /^user "([^"]*)" is disabled$/ * @When /^assure user "([^"]*)" is disabled$/
*/ */
public function userIsDisabled($user) { public function assureUserIsDisabled($user) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user/disable"; $fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user/disable";
$client = new Client(); $client = new Client();
$options = []; $options = [];
@ -376,6 +376,25 @@ trait Provisioning {
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
} }
/**
* @Given /^Assure user "([^"]*)" is subadmin of group "([^"]*)"$/
* @param string $user
* @param string $group
*/
public function assureUserIsSubadminOfGroup($user, $group) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user/subadmins";
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
}
$options['body'] = [
'groupid' => $group
];
$this->response = $client->send($client->createRequest("POST", $fullUrl, $options));
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
}
/** /**
* @Given /^user "([^"]*)" is not a subadmin of group "([^"]*)"$/ * @Given /^user "([^"]*)" is not a subadmin of group "([^"]*)"$/
* @param string $user * @param string $user
@ -541,6 +560,38 @@ trait Provisioning {
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
} }
/**
* @Then /^user "([^"]*)" is disabled$/
* @param string $user
*/
public function userIsDisabled($user) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user";
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
}
$this->response = $client->get($fullUrl, $options);
PHPUnit_Framework_Assert::assertEquals("false", $this->response->xml()->data[0]->enabled);
}
/**
* @Then /^user "([^"]*)" is enabled$/
* @param string $user
*/
public function userIsEnabled($user) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user";
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
}
$this->response = $client->get($fullUrl, $options);
PHPUnit_Framework_Assert::assertEquals("true", $this->response->xml()->data[0]->enabled);
}
/** /**
* @Given user :user has a quota of :quota * @Given user :user has a quota of :quota
* @param string $user * @param string $user

View File

@ -315,3 +315,196 @@ Feature: provisioning
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" And the HTTP status code should be "200"
And app "files_external" is disabled And app "files_external" is disabled
Scenario: disable an user
Given As an "admin"
And user "user1" exists
When sending "PUT" to "/cloud/users/user1/disable"
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And user "user1" is disabled
Scenario: enable an user
Given As an "admin"
And user "user1" exists
And assure user "user1" is disabled
When sending "PUT" to "/cloud/users/user1/enable"
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And user "user1" is enabled
Scenario: Subadmin should be able to enable or disable an user in their group
Given As an "admin"
And user "subadmin" exists
And user "user1" exists
And group "new-group" exists
And user "subadmin" belongs to group "new-group"
And user "user1" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
And As an "subadmin"
When sending "PUT" to "/cloud/users/user1/disable"
Then the OCS status code should be "100"
Then the HTTP status code should be "200"
And As an "admin"
And user "user1" is disabled
Scenario: Subadmin should not be able to enable or disable an user not in their group
Given As an "admin"
And user "subadmin" exists
And user "user1" exists
And group "new-group" exists
And group "another-group" exists
And user "subadmin" belongs to group "new-group"
And user "user1" belongs to group "another-group"
And Assure user "subadmin" is subadmin of group "new-group"
And As an "subadmin"
When sending "PUT" to "/cloud/users/user1/disable"
Then the OCS status code should be "997"
Then the HTTP status code should be "401"
And As an "admin"
And user "user1" is enabled
Scenario: Subadmins should not be able to disable users that have admin permissions in their group
Given As an "admin"
And user "another-admin" exists
And user "subadmin" exists
And group "new-group" exists
And user "another-admin" belongs to group "admin"
And user "subadmin" belongs to group "new-group"
And user "another-admin" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
And As an "subadmin"
When sending "PUT" to "/cloud/users/another-admin/disable"
Then the OCS status code should be "997"
Then the HTTP status code should be "401"
And As an "admin"
And user "another-admin" is enabled
Scenario: Admin can disable another admin user
Given As an "admin"
And user "another-admin" exists
And user "another-admin" belongs to group "admin"
When sending "PUT" to "/cloud/users/another-admin/disable"
Then the OCS status code should be "100"
Then the HTTP status code should be "200"
And user "another-admin" is disabled
Scenario: Admin can enable another admin user
Given As an "admin"
And user "another-admin" exists
And user "another-admin" belongs to group "admin"
And assure user "another-admin" is disabled
When sending "PUT" to "/cloud/users/another-admin/enable"
Then the OCS status code should be "100"
Then the HTTP status code should be "200"
And user "another-admin" is enabled
Scenario: Admin can disable subadmins in the same group
Given As an "admin"
And user "subadmin" exists
And group "new-group" exists
And user "subadmin" belongs to group "new-group"
And user "admin" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
When sending "PUT" to "/cloud/users/subadmin/disable"
Then the OCS status code should be "100"
Then the HTTP status code should be "200"
And user "subadmin" is disabled
Scenario: Admin can enable subadmins in the same group
Given As an "admin"
And user "subadmin" exists
And group "new-group" exists
And user "subadmin" belongs to group "new-group"
And user "admin" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
And assure user "another-admin" is disabled
When sending "PUT" to "/cloud/users/subadmin/disable"
Then the OCS status code should be "100"
Then the HTTP status code should be "200"
And user "subadmin" is disabled
Scenario: Admin user cannot disable himself
Given As an "admin"
And user "another-admin" exists
And user "another-admin" belongs to group "admin"
And As an "another-admin"
When sending "PUT" to "/cloud/users/another-admin/disable"
Then the OCS status code should be "101"
And the HTTP status code should be "200"
And As an "admin"
And user "another-admin" is enabled
Scenario:Admin user cannot enable himself
Given As an "admin"
And user "another-admin" exists
And user "another-admin" belongs to group "admin"
And assure user "another-admin" is disabled
And As an "another-admin"
When sending "PUT" to "/cloud/users/another-admin/enable"
And As an "admin"
Then user "another-admin" is disabled
Scenario: disable an user with a regular user
Given As an "admin"
And user "user1" exists
And user "user2" exists
And As an "user1"
When sending "PUT" to "/cloud/users/user2/disable"
Then the OCS status code should be "997"
And the HTTP status code should be "401"
And As an "admin"
And user "user2" is enabled
Scenario: enable an user with a regular user
Given As an "admin"
And user "user1" exists
And user "user2" exists
And assure user "user2" is disabled
And As an "user1"
When sending "PUT" to "/cloud/users/user2/enable"
Then the OCS status code should be "997"
And the HTTP status code should be "401"
And As an "admin"
And user "user2" is disabled
Scenario: Subadmin should not be able to disable himself
Given As an "admin"
And user "subadmin" exists
And group "new-group" exists
And user "subadmin" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
And As an "subadmin"
When sending "PUT" to "/cloud/users/subadmin/disable"
Then the OCS status code should be "101"
Then the HTTP status code should be "200"
And As an "admin"
And user "subadmin" is enabled
Scenario: Subadmin should not be able to enable himself
Given As an "admin"
And user "subadmin" exists
And group "new-group" exists
And user "subadmin" belongs to group "new-group"
And Assure user "subadmin" is subadmin of group "new-group"
And assure user "subadmin" is disabled
And As an "subadmin"
When sending "PUT" to "/cloud/users/subadmin/enabled"
And As an "admin"
And user "subadmin" is disabled
Scenario: Making a web request with an enabled user
Given As an "admin"
And user "user0" exists
And As an "user0"
When sending "GET" to "/index.php/apps/files"
Then the HTTP status code should be "200"
Scenario: Making a web request with a disabled user
Given As an "admin"
And user "user0" exists
And assure user "user0" is disabled
And As an "user0"
When sending "GET" to "/index.php/apps/files"
Then the HTTP status code should be "503"

View File

@ -696,3 +696,15 @@ Feature: sharing
Then user "user2" should see following elements Then user "user2" should see following elements
| /foo/ | | /foo/ |
| /foo%20(2)/ | | /foo%20(2)/ |
Scenario: Creating a new share with a disabled user
Given As an "admin"
And user "user0" exists
And user "user1" exists
And assure user "user0" is disabled
And As an "user0"
When sending "POST" to "/apps/files_sharing/api/v1/shares" with
| path | welcome.txt |
| shareWith | user1 |
| shareType | 0 |
Then the HTTP status code should be "503"

View File

@ -290,7 +290,7 @@ Feature: webdav-related
Scenario: A disabled user cannot use webdav Scenario: A disabled user cannot use webdav
Given user "userToBeDisabled" exists Given user "userToBeDisabled" exists
And As an "admin" And As an "admin"
And user "userToBeDisabled" is disabled And assure user "userToBeDisabled" is disabled
When Downloading file "/welcome.txt" as "userToBeDisabled" When Downloading file "/welcome.txt" as "userToBeDisabled"
Then the HTTP status code should be "503" Then the HTTP status code should be "503"