behat integration tests for LDAP, basic setup

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon 2018-03-15 18:39:27 +01:00
parent f630b12fc7
commit 86d145f069
No known key found for this signature in database
GPG Key ID: 7424F1874854DF23
4 changed files with 58 additions and 1 deletions

View File

@ -562,6 +562,16 @@ pipeline:
when:
matrix:
TESTS: integration-ldap-features
integration-ldap-openldap-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- ./occ app:enable user_ldap
- cd build/integration
- ./run.sh ldap_features/ldap-openldap.feature
when:
matrix:
TESTS: integration-ldap-openldap-features
integration-trashbin:
image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
@ -828,6 +838,8 @@ matrix:
- TESTS: integration-filesdrop-features
- TESTS: integration-transfer-ownership-features
- TESTS: integration-ldap-features
- TESTS: integration-ldap-openldap-features
ENABLE_OPENLDAP: true
- TESTS: integration-trashbin
- TESTS: integration-remote-api
- TESTS: integration-download
@ -1007,5 +1019,15 @@ services:
when:
matrix:
TESTS: acceptance
openldap:
image: nextcloudci/openldap:openldap-4
environment:
- SLAPD_DOMAIN=nextcloud.ci
- SLAPD_ORGANIZATION=Nextcloud
- SLAPD_PASSWORD=admin
- SLAPD_ADDITIONAL_MODULES=memberof
when:
matrix:
ENABLE_OPENLDAP: true
branches: [ master, stable* ]

View File

@ -82,4 +82,26 @@ class LDAPContext implements Context {
public function settingTheLDAPConfigurationTo(TableNode $configData) {
$this->sendingToWith('PUT', $this->apiUrl . '/' . $this->configID, $configData);
}
/**
* @Given /^having a valid LDAP configuration$/
*/
public function havingAValidLDAPConfiguration() {
$this->asAn('admin');
$this->creatingAnLDAPConfigurationAt('/apps/user_ldap/api/v1/config');
$data = new TableNode([
['configData[ldapHost]', 'openldap'],
['configData[ldapPort]', '389'],
['configData[ldapBase]', 'dc=nextcloud,dc=ci'],
['configData[ldapAgentName]', 'cn=admin,dc=nextcloud,dc=ci'],
['configData[ldapAgentPassword]', 'admin'],
['configData[ldapUserFilter]', '(&(objectclass=inetorgperson))'],
['configData[ldapLoginFilter]', '(&(objectclass=inetorgperson)(uid=%uid))'],
['configData[ldapUserDisplayName]', 'displayname'],
['configData[ldapEmailAttribute]', 'mail'],
['configData[ldapConfigurationActive]', '1'],
]);
$this->settingTheLDAPConfigurationTo($data);
$this->asAn('');
}
}

View File

@ -0,0 +1,10 @@
Feature: LDAP
Background:
Given using api version "2"
Scenario: Test valid configuration by logging in
Given having a valid LDAP configuration
When Logging in using web as "alice"
#When As an "alice"
And sending "GET" to "/cloud/user"
Then the HTTP status code should be "200"

View File

@ -22,6 +22,7 @@ else
exit 1
fi
fi
NC_DATADIR=$($OCC config:system:get datadirectory)
composer install
@ -48,6 +49,7 @@ if [ "$INSTALLED" == "true" ]; then
#Enable external storage app
$OCC app:enable files_external
$OCC app:enable user_ldap
mkdir -p work/local_storage
OUTPUT_CREATE_STORAGE=`$OCC files_external:create local_storage local null::null -c datadir=$PWD/work/local_storage`
@ -70,10 +72,11 @@ if [ "$INSTALLED" == "true" ]; then
#Disable external storage app
$OCC app:disable files_external
$OCC app:disable user_ldap
fi
if [ -z $HIDE_OC_LOGS ]; then
tail "${OC_PATH}/data/nextcloud.log"
tail "${NC_DATADIR}/nextcloud.log"
fi
echo "runsh: Exit code: $RESULT"