]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add option to acceptance test runner to set the Nextcloud server domain
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Thu, 20 Jul 2017 05:54:39 +0000 (07:54 +0200)
committerMorris Jobke <hey@morrisjobke.de>
Thu, 20 Jul 2017 09:32:54 +0000 (11:32 +0200)
By default "127.0.0.1" is used, so nothing needs to be set when the
Selenium server and the Nextcloud test server share the same network
(like when called by "run.sh").

Besides passing the domain to the acceptance tests the Nextcloud test
server configuration must be modified to see the given domain as a
trusted domain; otherwise the access would be forbidden.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
tests/acceptance/installAndConfigureServer.sh
tests/acceptance/run-local.sh

index 2fbdf821f77ce75c6af05fa450b42420bb671afd..c61faeda238abdd6b92e0889f1f6b99ae8e69a19 100755 (executable)
 
 set -o errexit
 
+NEXTCLOUD_SERVER_DOMAIN=""
+if [ "$1" = "--nextcloud-server-domain" ]; then
+       NEXTCLOUD_SERVER_DOMAIN=$2
+
+       shift 2
+fi
+
 php occ maintenance:install --admin-pass=admin
 
 OC_PASS=123456acb php occ user:add --password-from-env user0
+
+if [ "$NEXTCLOUD_SERVER_DOMAIN" != "" ]; then
+       # Default first trusted domain is "localhost"; replace it with given domain.
+       php occ config:system:set trusted_domains 0 --value="$NEXTCLOUD_SERVER_DOMAIN"
+fi
index 93c11e810f84452e71ab028fd50dfe1ddb866e1e..1e4c322428750eac5862ff568d858c8d86db1e98 100755 (executable)
@@ -54,6 +54,16 @@ if [ "$1" = "--timeout-multiplier" ]; then
        shift 2
 fi
 
+# "--nextcloud-server-domain XXX" option can be provided to set the domain used
+# by the Selenium server to access the Nextcloud server.
+DEFAULT_NEXTCLOUD_SERVER_DOMAIN="127.0.0.1"
+NEXTCLOUD_SERVER_DOMAIN="$DEFAULT_NEXTCLOUD_SERVER_DOMAIN"
+if [ "$1" = "--nextcloud-server-domain" ]; then
+       NEXTCLOUD_SERVER_DOMAIN=$2
+
+       shift 2
+fi
+
 # Safety parameter to prevent executing this script by mistake and messing with
 # the Git repository.
 if [ "$1" != "allow-git-repository-modifications" ]; then
@@ -80,12 +90,34 @@ if [ "$TIMEOUT_MULTIPLIER" != "" ]; then
        sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml
 fi
 
+if [ "$NEXTCLOUD_SERVER_DOMAIN" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then
+       # Although Behat documentation states that using the BEHAT_PARAMS
+       # environment variable "You can set any value for any option that is
+       # available in a behat.yml file" this is currently not true for the
+       # constructor parameters of contexts (see
+       # https://github.com/Behat/Behat/issues/983). Thus, the default "behat.yml"
+       # configuration file has to be adjusted to provide the appropriate
+       # parameters for NextcloudTestServerContext.
+       ORIGINAL="\
+        - NextcloudTestServerContext"
+       REPLACEMENT="\
+        - NextcloudTestServerContext:\n\
+            nextcloudTestServerHelperParameters:\n\
+              - $NEXTCLOUD_SERVER_DOMAIN"
+       sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml
+fi
+
 composer install
 
 cd ../../
 
+INSTALL_AND_CONFIGURE_SERVER_PARAMETERS=""
+if [ "$NEXTCLOUD_SERVER_domain" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then
+       INSTALL_AND_CONFIGURE_SERVER_PARAMETERS+="--nextcloud-server-domain $NEXTCLOUD_SERVER_DOMAIN"
+fi
+
 echo "Installing and configuring Nextcloud server"
-tests/acceptance/installAndConfigureServer.sh
+tests/acceptance/installAndConfigureServer.sh $INSTALL_AND_CONFIGURE_SERVER_PARAMETERS
 
 echo "Saving the default state so acceptance tests can reset to it"
 find . -name ".gitignore" -exec rm --force {} \;