diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-10-23 15:11:27 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-10-23 15:11:27 +0200 |
commit | 7afbf0f8c1eb67b3b5da8a71df3d7cbd7064d898 (patch) | |
tree | 98e7b311f134009c01532c1601a6416aaadb1055 | |
parent | 3d08964b6491ac5b79fbebe73b04417fa216a425 (diff) | |
parent | 64ea35af05861c421aef07d0e107f755e0e83e4f (diff) | |
download | nextcloud-server-7afbf0f8c1eb67b3b5da8a71df3d7cbd7064d898.tar.gz nextcloud-server-7afbf0f8c1eb67b3b5da8a71df3d7cbd7064d898.zip |
Merge pull request #19977 from owncloud/provisioning_api_integration_tests_apps_new_getusers
Provisioning api integration tests added app tests and getusers by a subadmin
-rw-r--r-- | build/integration/features/bootstrap/FeatureContext.php | 59 | ||||
-rw-r--r-- | build/integration/features/provisioning-v1.feature | 70 |
2 files changed, 118 insertions, 11 deletions
diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php index e05015301f3..70e73b66a71 100644 --- a/build/integration/features/bootstrap/FeatureContext.php +++ b/build/integration/features/bootstrap/FeatureContext.php @@ -86,6 +86,15 @@ class FeatureContext extends BehatContext { } /** + * Parses the xml answer to get the array of apps returned. + */ + public function getArrayOfAppsResponded($resp) { + $listCheckedElements = $resp->xml()->data[0]->apps[0]->element; + $extractedElementsArray = json_decode(json_encode($listCheckedElements), 1); + return $extractedElementsArray; + } + + /** * This function is needed to use a vertical fashion in the gherkin tables. */ public function simplifyArray($arrayOfArrays){ @@ -144,6 +153,20 @@ class FeatureContext extends BehatContext { } /** + * @Then /^apps returned are$/ + * @param \Behat\Gherkin\Node\TableNode|null $formData + */ + public function theAppsShouldBe($appList) { + if ($appList instanceof \Behat\Gherkin\Node\TableNode) { + $apps = $appList->getRows(); + $appsSimplified = $this->simplifyArray($apps); + $respondedArray = $this->getArrayOfAppsResponded($this->response); + PHPUnit_Framework_Assert::assertEquals($appsSimplified, $respondedArray, "", 0.0, 10, true); + } + + } + + /** * @Then /^the OCS status code should be "([^"]*)"$/ */ public function theOCSStatusCodeShouldBe($statusCode) { @@ -276,6 +299,40 @@ class FeatureContext extends BehatContext { } /** + * @Given /^app "([^"]*)" is disabled$/ + */ + public function appIsDisabled($app) { + $fullUrl = $this->baseUrl . "v2.php/cloud/apps?filter=disabled"; + $client = new Client(); + $options = []; + if ($this->currentUser === 'admin') { + $options['auth'] = $this->adminUser; + } + + $this->response = $client->get($fullUrl, $options); + $respondedArray = $this->getArrayOfAppsResponded($this->response); + PHPUnit_Framework_Assert::assertContains($app, $respondedArray); + PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); + } + + /** + * @Given /^app "([^"]*)" is enabled$/ + */ + public function appIsEnabled($app) { + $fullUrl = $this->baseUrl . "v2.php/cloud/apps?filter=enabled"; + $client = new Client(); + $options = []; + if ($this->currentUser === 'admin') { + $options['auth'] = $this->adminUser; + } + + $this->response = $client->get($fullUrl, $options); + $respondedArray = $this->getArrayOfAppsResponded($this->response); + PHPUnit_Framework_Assert::assertContains($app, $respondedArray); + PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); + } + + /** * @When /^creating the user "([^"]*)r"$/ */ public function creatingTheUser($user) { @@ -352,7 +409,7 @@ class FeatureContext extends BehatContext { if ($this->currentUser === 'admin') { $options['auth'] = $this->adminUser; } else { - $options['auth'] = $this->regularUser; + $options['auth'] = [$this->currentUser, $this->regularUser]; } if ($body instanceof \Behat\Gherkin\Node\TableNode) { $fd = $body->getRowsHash(); diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature index 53fd70ee999..91050e82c28 100644 --- a/build/integration/features/provisioning-v1.feature +++ b/build/integration/features/provisioning-v1.feature @@ -112,16 +112,6 @@ Feature: provisioning | new-group | And the OCS status code should be "100" - Scenario: removing a user from a group - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - And user "brand-new-user" belongs to group "new-group" - When sending "DELETE" to "/cloud/users/brand-new-user/groups" with - | groupid | new-group | - Then the OCS status code should be "100" - And user "brand-new-user" does not belong to group "new-group" - Scenario: adding a user which doesn't exist to a group Given As an "admin" And user "not-user" does not exist @@ -156,6 +146,29 @@ Feature: provisioning Then the OCS status code should be "100" And the HTTP status code should be "200" + Scenario: get users using a subadmin + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + And user "brand-new-user" belongs to group "new-group" + And user "brand-new-user" is subadmin of group "new-group" + And As an "brand-new-user" + When sending "GET" to "/cloud/users" + Then users returned are + | brand-new-user | + And the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: removing a user from a group + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + And user "brand-new-user" belongs to group "new-group" + When sending "DELETE" to "/cloud/users/brand-new-user/groups" with + | groupid | new-group | + Then the OCS status code should be "100" + And user "brand-new-user" does not belong to group "new-group" + Scenario: create a subadmin using a user which not exist Given As an "admin" And user "not-user" does not exist @@ -236,5 +249,42 @@ Feature: provisioning And the HTTP status code should be "200" And group "new-group" does not exist + Scenario: get enabled apps + Given As an "admin" + When sending "GET" to "/cloud/apps?filter=enabled" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And apps returned are + | files | + | dav | + | files_sharing | + | files_trashbin | + | files_versions | + | provisioning_api | + + Scenario: get app info + Given As an "admin" + When sending "GET" to "/cloud/apps/files" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: enable an app + Given As an "admin" + And app "files_external" is disabled + When sending "POST" to "/cloud/apps/files_external" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And app "files_external" is enabled + + Scenario: disable an app + Given As an "admin" + And app "files_external" is enabled + When sending "DELETE" to "/cloud/apps/files_external" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And app "files_external" is disabled + + + |