summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2018-03-15 18:39:27 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2018-08-09 23:45:04 +0200
commit86d145f0692df7b6d5883c6caa88c19b7d725161 (patch)
tree51b5ea121fe4d619337870c8ea2453761f615ff1
parentf630b12fc78c2201504fc14a2b8dec2c610655b2 (diff)
downloadnextcloud-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.yml22
-rw-r--r--build/integration/features/bootstrap/LDAPContext.php22
-rw-r--r--build/integration/ldap_features/ldap-openldap.feature10
-rwxr-xr-xbuild/integration/run.sh5
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"