diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-03-15 18:39:27 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-08-09 23:45:04 +0200 |
commit | 86d145f0692df7b6d5883c6caa88c19b7d725161 (patch) | |
tree | 51b5ea121fe4d619337870c8ea2453761f615ff1 | |
parent | f630b12fc78c2201504fc14a2b8dec2c610655b2 (diff) | |
download | nextcloud-server-86d145f0692df7b6d5883c6caa88c19b7d725161.tar.gz nextcloud-server-86d145f0692df7b6d5883c6caa88c19b7d725161.zip |
behat integration tests for LDAP, basic setup
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | .drone.yml | 22 | ||||
-rw-r--r-- | build/integration/features/bootstrap/LDAPContext.php | 22 | ||||
-rw-r--r-- | build/integration/ldap_features/ldap-openldap.feature | 10 | ||||
-rwxr-xr-x | build/integration/run.sh | 5 |
4 files changed, 58 insertions, 1 deletions
diff --git a/.drone.yml b/.drone.yml index da877a95d50..84a6d0495f2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -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* ] diff --git a/build/integration/features/bootstrap/LDAPContext.php b/build/integration/features/bootstrap/LDAPContext.php index e2b30011515..5d7bb34a90a 100644 --- a/build/integration/features/bootstrap/LDAPContext.php +++ b/build/integration/features/bootstrap/LDAPContext.php @@ -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(''); + } } diff --git a/build/integration/ldap_features/ldap-openldap.feature b/build/integration/ldap_features/ldap-openldap.feature new file mode 100644 index 00000000000..e52ab600aec --- /dev/null +++ b/build/integration/ldap_features/ldap-openldap.feature @@ -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" diff --git a/build/integration/run.sh b/build/integration/run.sh index b747bb52c6b..56f4ee7b07d 100755 --- a/build/integration/run.sh +++ b/build/integration/run.sh @@ -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" |