added tests for apps

This commit is contained in:
Sergio Bertolin 2015-10-22 13:28:48 +00:00
parent 5e9dc381b4
commit 64ea35af05
2 changed files with 94 additions and 0 deletions

View File

@ -85,6 +85,15 @@ class FeatureContext extends BehatContext {
return $extractedElementsArray;
}
/**
* 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.
*/
@ -143,6 +152,20 @@ class FeatureContext extends BehatContext {
$this->theSubadminGroupsShouldBe($groupsList);
}
/**
* @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 "([^"]*)"$/
*/
@ -275,6 +298,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"$/
*/

View File

@ -249,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