nextcloud/build/integration/features/bootstrap/LDAPContext.php
Arthur Schiwon 9299c9fc79
LDAP OCS API (Part 1)
LDAP OCS Api for create config

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

LDAP OCS Api for delete config

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

fix and extend behat tests

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

add LDAP OCS Api for modifying a configuration

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

test against OCS v2 instead

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

LDAP OCS Api for show config

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

also, let ldap integration tests run

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

fix indentation

Signed-off-by: Morris Jobke <hey@morrisjobke.de>

enable user_ldap app for tests

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

LDAP PUT command now supports setting multiple keys at once

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

fix deletion for configIDs < s10

Also move ensureConfigIDExists checks into try, it might throw DB
related exceptions

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

remove outdated scenario

covered by "Delete a non-existing configuration"

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-01-23 14:24:10 +01:00

85 lines
2.6 KiB
PHP

<?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;
use Behat\Gherkin\Node\TableNode;
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 an LDAP configuration at "([^"]*)"$/
*/
public function creatingAnLDAPConfigurationAt($apiUrl) {
$this->apiUrl = $apiUrl;
$this->sendingToWith('POST', $this->apiUrl, null);
$configElements = $this->response->xml()->data[0]->configID;
$this->configID = $configElements[0];
}
/**
* @When /^deleting the LDAP configuration$/
*/
public function deletingTheLDAPConfiguration() {
$this->sendingToWith('DELETE', $this->apiUrl . '/' . $this->configID, null);
}
/**
* @Given /^the response should contain a tag "([^"]*)" with value "([^"]*)"$/
*/
public function theResponseShouldContainATagWithValue($tagName, $expectedValue) {
$data = $this->response->xml()->data[0]->$tagName;
PHPUnit_Framework_Assert::assertEquals($expectedValue, $data[0]);
}
/**
* @When /^getting the LDAP configuration with showPassword "([^"]*)"$/
*/
public function gettingTheLDAPConfigurationWithShowPassword($showPassword) {
$this->sendingToWith(
'GET',
$this->apiUrl . '/' . $this->configID . '?showPassword=' . $showPassword,
null
);
}
/**
* @Given /^setting the LDAP configuration to$/
*/
public function settingTheLDAPConfigurationTo(TableNode $configData) {
$this->sendingToWith('PUT', $this->apiUrl . '/' . $this->configID, $configData);
}
}