summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.drone.yml9
-rw-r--r--build/integration/config/behat.yml10
-rw-r--r--build/integration/features/bootstrap/SetupContext.php34
-rwxr-xr-xbuild/integration/run.sh41
-rw-r--r--build/integration/setup_features/setup.feature5
5 files changed, 85 insertions, 14 deletions
diff --git a/.drone.yml b/.drone.yml
index d6b36097b96..3b56e54278b 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -322,6 +322,14 @@ pipeline:
when:
matrix:
TESTS: integration-sharees-features
+ integration-setup-features:
+ image: nextcloudci/integration-php7.0:integration-php7.0-2
+ commands:
+ - cd build/integration
+ - ./run.sh setup_features/setup.feature
+ when:
+ matrix:
+ TESTS: integration-setup-features
nodb-codecov:
image: nextcloudci/php7.0:php7.0-6
commands:
@@ -365,6 +373,7 @@ matrix:
- TESTS: integration-provisioning-v2
- TESTS: integration-webdav-related
- TESTS: integration-sharees-features
+ - TESTS: integration-setup-features
- TESTS: jsunit
- TESTS: check-autoloader
- TESTS: app-check-code
diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml
index 0c0ecef08e9..3728e5461d8 100644
--- a/build/integration/config/behat.yml
+++ b/build/integration/config/behat.yml
@@ -52,6 +52,16 @@ default:
- admin
- admin
regular_user_password: 123456
+ setup:
+ paths:
+ - %paths.base%/../setup_features
+ contexts:
+ - SetupContext:
+ baseUrl: http://localhost:8080/ocs/
+ admin:
+ - admin
+ - admin
+ regular_user_password: 123456
diff --git a/build/integration/features/bootstrap/SetupContext.php b/build/integration/features/bootstrap/SetupContext.php
new file mode 100644
index 00000000000..53ad7619d3d
--- /dev/null
+++ b/build/integration/features/bootstrap/SetupContext.php
@@ -0,0 +1,34 @@
+<?php
+/**
+
+ *
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @copyright Morris Jobke
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+use Behat\Behat\Context\Context;
+
+require __DIR__ . '/../../vendor/autoload.php';
+
+
+/**
+ * Setup context.
+ */
+class SetupContext implements Context {
+ use BasicStructure;
+}
diff --git a/build/integration/run.sh b/build/integration/run.sh
index cf42ed75e4c..145415fd079 100755
--- a/build/integration/run.sh
+++ b/build/integration/run.sh
@@ -2,6 +2,9 @@
COMPOSER=$(which composer)
+SCENARIO_TO_RUN=$1
+HIDE_OC_LOGS=$2
+
if [ -x "$COMPOSER" ]; then
echo "Using composer executable $COMPOSER"
else
@@ -9,13 +12,19 @@ else
exit 1
fi
-# Disable bruteforce protection because the integration tests do trigger them
-../../occ config:system:set auth.bruteforce.protection.enabled --value false --type bool
+INSTALLED=$(../../occ status | grep installed: | cut -d " " -f 5)
-composer install
+if [ "$INSTALLED" == "true" ]; then
+ # Disable bruteforce protection because the integration tests do trigger them
+ ../../occ config:system:set auth.bruteforce.protection.enabled --value false --type bool
+else
+ if [ "$SCENARIO_TO_RUN" != "setup_features/setup.feature" ]; then
+ echo "Nextcloud instance needs to be installed" >&2
+ exit 1
+ fi
+fi
-SCENARIO_TO_RUN=$1
-HIDE_OC_LOGS=$2
+composer install
# avoid port collision on jenkins - use $EXECUTOR_NUMBER
if [ -z "$EXECUTOR_NUMBER" ]; then
@@ -36,15 +45,17 @@ echo $PHPPID_FED
export TEST_SERVER_URL="http://localhost:$PORT/ocs/"
export TEST_SERVER_FED_URL="http://localhost:$PORT_FED/ocs/"
-#Enable external storage app
-../../occ app:enable files_external
+if [ "$INSTALLED" == "true" ]; then
+ #Enable external storage app
+ ../../occ app:enable files_external
-mkdir -p work/local_storage
-OUTPUT_CREATE_STORAGE=`../../occ files_external:create local_storage local null::null -c datadir=./build/integration/work/local_storage`
+ mkdir -p work/local_storage
+ OUTPUT_CREATE_STORAGE=`../../occ files_external:create local_storage local null::null -c datadir=./build/integration/work/local_storage`
-ID_STORAGE=`echo $OUTPUT_CREATE_STORAGE | awk {'print $5'}`
+ ID_STORAGE=`echo $OUTPUT_CREATE_STORAGE | awk {'print $5'}`
-../../occ files_external:option $ID_STORAGE enable_sharing true
+ ../../occ files_external:option $ID_STORAGE enable_sharing true
+fi
vendor/bin/behat -f junit -f pretty $SCENARIO_TO_RUN
RESULT=$?
@@ -52,10 +63,12 @@ RESULT=$?
kill $PHPPID
kill $PHPPID_FED
-../../occ files_external:delete -y $ID_STORAGE
+if [ "$INSTALLED" -eq "true" ]; then
+ ../../occ files_external:delete -y $ID_STORAGE
-#Disable external storage app
-../../occ app:disable files_external
+ #Disable external storage app
+ ../../occ app:disable files_external
+fi
if [ -z $HIDE_OC_LOGS ]; then
tail "../../data/nextcloud.log"
diff --git a/build/integration/setup_features/setup.feature b/build/integration/setup_features/setup.feature
new file mode 100644
index 00000000000..e1d9a73187e
--- /dev/null
+++ b/build/integration/setup_features/setup.feature
@@ -0,0 +1,5 @@
+Feature: setup
+
+ Scenario: setup page is shown properly
+ When requesting "/index.php" with "GET"
+ Then the HTTP status code should be "200"