summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-01-19 10:04:15 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-01-19 10:04:15 +0100
commit18a75bec0d87b847790e0c5b695e3d02993ca710 (patch)
tree90e2140400c752d4c7e78e04e32270f798cd53ba
parenta515de54e7d88c0d82bb9287f2a63ccdcc96b0fb (diff)
downloadnextcloud-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.php4
-rw-r--r--build/integration/config/behat.yml10
-rw-r--r--build/integration/features/bootstrap/LDAPContext.php58
-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"