nextcloud/apps/user_ldap/tests/Integration
Arthur Schiwon f58796e21c
Backport of Fix Broken UUID Attribute Detection #3521
Fix integration test by not relying on Fake instances

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

Fix determining the UUID attribute, default of the override is null

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

add integration test for uuid attr detection

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

Add repair steps

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

Background jobs can take 4k of characters only. We find a good batch size.

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

add tests to DB group

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-02-17 22:00:28 +01:00
..
Lib Backport of Fix Broken UUID Attribute Detection #3521 2017-02-17 22:00:28 +01:00
data Move tests/ to PSR-4 2016-05-25 16:06:09 +02:00
setup-scripts Fix apps/ 2016-07-21 18:13:57 +02:00
AbstractIntegrationTest.php Backport of Fix Broken UUID Attribute Detection #3521 2017-02-17 22:00:28 +01:00
Bootstrap.php fix autoloading in LPAP integration tests, resolves #544 2016-07-25 11:05:59 +02:00
ExceptionOnLostConnection.php Fix apps/ 2016-07-21 18:13:57 +02:00
readme.md Move tests/ to PSR-4 2016-05-25 16:06:09 +02:00
run-test.sh Move tests/ to PSR-4 2016-05-25 16:06:09 +02:00

readme.md

Requirements

Have (as in do copy if not already done) the following files from https://github.com/owncloud/administration/tree/master/ldap-testing copied into the directory "setup-scripts":

  • start.sh
  • stop.sh
  • config.php

Configure config.php according to your needs, also have a look into the LDAP and network settings in start.sh and stop.sh.

Usage

The basic command to run a test is:

# ./run-test.sh [phpscript]

Yes, run it as root from within this directory.

Example:

$ sudo ./run-test.sh lib/IntegrationTestAccessGroupsMatchFilter.php 
71cbe88a4993e67066714d71c1cecc5ef26a54911a208103cb6294f90459e574
c74dc0155db4efa7a0515d419528a8727bbc7596601cf25b0df05e348bd74895
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS                  PORTS                           NAMES
c74dc0155db4        osixia/phpldapadmin:0.5.1   "/sbin/my_init"     1 seconds ago       Up Less than a second   80/tcp, 0.0.0.0:8443->443/tcp   docker-phpldapadmin   
71cbe88a4993        nickstenning/slapd:latest   "/sbin/my_init"     1 seconds ago       Up Less than a second   127.0.0.1:7770->389/tcp         docker-slapd          

LDAP server now available under 127.0.0.1:7770 (internal IP is 172.17.0.78)
phpldapadmin now available under https://127.0.0.1:8443

created user : Alice Ealic
created group : RedGroup
created group : BlueGroup
created group : GreenGroup
created group : PurpleGroup
running case1 
running case2 
Tests succeeded
Stopping and resetting containers
docker-slapd
docker-phpldapadmin
docker-slapd
docker-phpldapadmin

How it works

  1. start.sh is executed which brings up a fresh and clean OpenLDAP in Docker.
  2. The provided test script is executed. It also outputs results.
  3. stop.sh is executed to shut down OpenLDAP

Beware

This is quick solution for basically one test case. With expension this mechanism should be improved as well.

It does not run automatically, unless you do it. No integration with any testing framework.

exceptionOnLostConnection.php is not part of this mechanism. Read its source and run it isolated. While you're at it, port it :þ