fix and extend behat tests

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon 2017-01-19 10:04:15 +01:00
parent a515de54e7
commit 18a75bec0d
No known key found for this signature in database
GPG Key ID: 7424F1874854DF23
4 changed files with 77 additions and 3 deletions

View File

@ -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]);
}
/**

View File

@ -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:

View File

@ -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);
}
}

View File

@ -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"