diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-01-19 10:04:15 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-01-19 10:04:15 +0100 |
commit | 18a75bec0d87b847790e0c5b695e3d02993ca710 (patch) | |
tree | 90e2140400c752d4c7e78e04e32270f798cd53ba | |
parent | a515de54e7d88c0d82bb9287f2a63ccdcc96b0fb (diff) | |
download | nextcloud-server-18a75bec0d87b847790e0c5b695e3d02993ca710.tar.gz nextcloud-server-18a75bec0d87b847790e0c5b695e3d02993ca710.zip |
fix and extend behat tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | apps/user_ldap/lib/Controller/ConfigAPIController.php | 4 | ||||
-rw-r--r-- | build/integration/config/behat.yml | 10 | ||||
-rw-r--r-- | build/integration/features/bootstrap/LDAPContext.php | 58 | ||||
-rw-r--r-- | build/integration/ldap_features/ldap-ocs.feature (renamed from build/integration/features/ldap-ocs.feature) | 8 |
4 files changed, 77 insertions, 3 deletions
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php index 5a18b138c3f..bfdce302af5 100644 --- a/apps/user_ldap/lib/Controller/ConfigAPIController.php +++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php @@ -90,7 +90,7 @@ class ConfigAPIController extends OCSController { * <itemsperpage></itemsperpage> * </meta> * <data> - * <prefix>s40</prefix> + * <configID>s40</configID> * </data> * </ocs> * @@ -123,7 +123,7 @@ class ConfigAPIController extends OCSController { $this->logger->logException($e); throw new OCSException('An issue occurred when creating the new config.'); } - return new DataResponse(['prefix' => $configPrefix]); + return new DataResponse(['configID' => $configPrefix]); } /** diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml index 82ad6eaa170..3573f9d6a6b 100644 --- a/build/integration/config/behat.yml +++ b/build/integration/config/behat.yml @@ -75,6 +75,16 @@ default: - admin - admin regular_user_password: 123456 + ldap: + paths: + - %paths.base%/../ldap_features + contexts: + - LDAPContext: + baseUrl: http://localhost:8080 + admin: + - admin + - admin + regular_user_password: what_for extensions: jarnaiz\JUnitFormatter\JUnitFormatterExtension: diff --git a/build/integration/features/bootstrap/LDAPContext.php b/build/integration/features/bootstrap/LDAPContext.php new file mode 100644 index 00000000000..92e21715cd4 --- /dev/null +++ b/build/integration/features/bootstrap/LDAPContext.php @@ -0,0 +1,58 @@ +<?php + +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +use Behat\Behat\Context\Context; + +class LDAPContext implements Context { + use BasicStructure; + + protected $configID; + + protected $apiUrl; + + /** + * @Given /^the response should contain a tag "([^"]*)"$/ + */ + public function theResponseShouldContainATag($arg1) { + $configID = $this->response->xml()->data[0]->$arg1; + PHPUnit_Framework_Assert::assertInstanceOf(SimpleXMLElement::class, $configID[0]); + } + + /** + * @Given /^creating a configuration at "([^"]*)"$/ + */ + public function creatingAConfigurationAt($apiUrl) { + $this->apiUrl = $apiUrl; + $this->sendingToWith('POST', $this->apiUrl, null); + $configElements = $this->response->xml()->data[0]->configID; + $this->configID = $configElements[0]; + } + + /** + * @When /^deleting the configuration$/ + */ + public function deletingTheConfiguration() { + $this->sendingToWith('DELETE', $this->apiUrl . '/' . $this->configID, null); + } +} diff --git a/build/integration/features/ldap-ocs.feature b/build/integration/ldap_features/ldap-ocs.feature index 6e1c77e24c9..8498ce2094b 100644 --- a/build/integration/features/ldap-ocs.feature +++ b/build/integration/ldap_features/ldap-ocs.feature @@ -5,6 +5,7 @@ Feature: LDAP When sending "POST" to "/apps/user_ldap/api/v1/config" Then the OCS status code should be "100" And the HTTP status code should be "200" + And the response should contain a tag "configID" Scenario: Delete a non-existing configuration Given As an "admin" @@ -18,4 +19,9 @@ Feature: LDAP Then the OCS status code should be "400" And the HTTP status code should be "200" - # TODO: Scenario deleting an existing config ID (needs to be created before) + Scenario: Create and delete a configuration + Given As an "admin" + And creating a configuration at "/apps/user_ldap/api/v1/config" + When deleting the configuration + Then the OCS status code should be "100" + And the HTTP status code should be "200" |