Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/richdocuments.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-07-05 14:00:30 +0300
committerJulius Härtl <jus@bitgrid.net>2019-07-16 08:39:17 +0300
commit8f0bde31bc62015de2bd4e671ecc87b4a7adbf7f (patch)
treed658cc8a696440c1252bd04f8c5729fe4c57336f /tests
parent023396bd20ef8fa7f55a60f7ada38adb25006654 (diff)
Add drone test helpers
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'tests')
-rw-r--r--tests/drone-server-install.sh138
-rw-r--r--tests/drone-server-setup.sh65
2 files changed, 203 insertions, 0 deletions
diff --git a/tests/drone-server-install.sh b/tests/drone-server-install.sh
new file mode 100644
index 00000000..65559056
--- /dev/null
+++ b/tests/drone-server-install.sh
@@ -0,0 +1,138 @@
+#!/bin/bash
+# TODO: move this out of the repo to make it usable in other apps
+
+set -e
+
+DATABASENAME=oc_autotest
+DATABASEUSER=oc_autotest
+[ -z "$DATABASEHOST" ] && DATABASEHOST="localhost"
+ADMINLOGIN=admin
+BASEDIR=$PWD
+
+DBCONFIGS="sqlite mysql pgsql oracle"
+PHPUNIT=$(which phpunit)
+
+if [ $1 ]; then
+ FOUND=0
+ for DBCONFIG in $DBCONFIGS; do
+ if [ $1 = $DBCONFIG ]; then
+ FOUND=1
+ break
+ fi
+ done
+ if [ $FOUND = 0 ]; then
+ echo -e "Unknown database config name \"$1\"\n" >&2
+ print_syntax
+ exit 2
+ fi
+fi
+
+# use tmpfs for datadir - should speedup unit test execution
+DATADIR=$BASEDIR/data-autotest
+
+echo "Using $1 database $DATABASENAME"
+
+# create autoconfig for sqlite, mysql and postgresql
+cat > ./tests/autoconfig-sqlite.php <<DELIM
+<?php
+\$AUTOCONFIG = array (
+ 'installed' => false,
+ 'dbtype' => 'sqlite',
+ 'dbtableprefix' => 'oc_',
+ 'adminlogin' => '$ADMINLOGIN',
+ 'adminpass' => 'admin',
+ 'directory' => '$DATADIR',
+);
+DELIM
+
+cat > ./tests/autoconfig-mysql.php <<DELIM
+<?php
+\$AUTOCONFIG = array (
+ 'installed' => false,
+ 'dbtype' => 'mysql',
+ 'dbtableprefix' => 'oc_',
+ 'adminlogin' => '$ADMINLOGIN',
+ 'adminpass' => 'admin',
+ 'directory' => '$DATADIR',
+ 'dbuser' => '$DATABASEUSER',
+ 'dbname' => '$DATABASENAME',
+ 'dbhost' => '$DATABASEHOST',
+ 'dbpass' => 'owncloud',
+);
+DELIM
+
+cat > ./tests/autoconfig-pgsql.php <<DELIM
+<?php
+\$AUTOCONFIG = array (
+ 'installed' => false,
+ 'dbtype' => 'pgsql',
+ 'dbtableprefix' => 'oc_',
+ 'adminlogin' => '$ADMINLOGIN',
+ 'adminpass' => 'admin',
+ 'directory' => '$DATADIR',
+ 'dbuser' => '$DATABASEUSER',
+ 'dbname' => '$DATABASENAME',
+ 'dbhost' => '$DATABASEHOST',
+ 'dbpass' => 'owncloud',
+);
+DELIM
+
+cat > ./tests/autoconfig-oracle.php <<DELIM
+<?php
+\$AUTOCONFIG = array (
+ 'installed' => false,
+ 'dbtype' => 'oci',
+ 'dbtableprefix' => 'oc_',
+ 'adminlogin' => '$ADMINLOGIN',
+ 'adminpass' => 'admin',
+ 'directory' => '$DATADIR',
+ 'dbuser' => 'autotest',
+ 'dbname' => 'XE',
+ 'dbhost' =>'$DATABASEHOST',
+ 'dbpass' => 'owncloud',
+ 'loglevel' => 0,
+);
+DELIM
+
+function run_install {
+ echo "Setup environment for $1 testing ..."
+ # back to root folder
+ cd $BASEDIR
+
+ # revert changes to tests/data
+ git checkout tests/data/*
+
+ # reset data directory
+ rm -rf $DATADIR
+ mkdir $DATADIR
+ touch $DATADIR/nextcloud.log
+
+ cp tests/preseed-config.php config/config.php
+
+ # copy autoconfig
+ cp $BASEDIR/tests/autoconfig-$1.php $BASEDIR/config/autoconfig.php
+
+ # trigger installation
+ echo "INDEX"
+ php -f index.php
+ echo "END INDEX"
+
+}
+
+function print_config {
+
+ echo "nextcloud configuration:"
+ cat $BASEDIR/config/config.php
+
+ echo "data directory:"
+ ls -ll $DATADIR
+
+ echo "nextcloud.log:"
+ [[ -f "$DATADIR/nextcloud.log" ]] && cat $DATADIR/nextcloud.log
+
+}
+
+run_install $1
+print_config
+
+cd $BASEDIR \ No newline at end of file
diff --git a/tests/drone-server-setup.sh b/tests/drone-server-setup.sh
new file mode 100644
index 00000000..8d754c65
--- /dev/null
+++ b/tests/drone-server-setup.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# @author Thomas Müller
+# @copyright 2014 Thomas Müller thomas.mueller@tmit.eu
+#
+
+# TODO: move this out of the repo to make it usable in other apps
+
+set -e
+
+WORKDIR=$PWD
+APP_NAME=$1
+CORE_BRANCH=$2
+DB=$3
+echo "Work directory: $WORKDIR"
+echo "Database: $DB"
+
+# Cloning server
+cd ..
+git clone --depth 1 -b $CORE_BRANCH https://github.com/nextcloud/server
+cd server
+git submodule update --init
+
+# Move app into apps folder
+cd apps
+cp -R $WORKDIR/ $APP_NAME
+cd $WORKDIR
+
+[[ -z "$DATABASEHOST" ]] && DATABASEHOST="$DB"
+
+if [[ "$DB" == "mysql" ]] ; then
+ echo "Waiting for MySQL initialisation ..."
+ if ! ../server/apps/files_external/tests/env/wait-for-connection $DATABASEHOST 3306 600; then
+ echo "[ERROR] Waited 600 seconds, no response" >&2
+ exit 1
+ fi
+fi
+
+if [[ "$DB" == "postgres" ]] ; then
+ echo "Waiting for Postgres to be available ..."
+ if ! ../server/apps/files_external/tests/env/wait-for-connection $DATABASEHOST 5432 60; then
+ echo "[ERROR] Waited 60 seconds for $DATABASEHOST, no response" >&2
+ exit 1
+ fi
+ echo "Give it 10 additional seconds ..."
+ sleep 10
+ # Temporary fix since core_install uses pgsql
+ DB="pgsql"
+fi
+
+# TODO: oracle
+export DATABASEHOST="$DATABASEHOST"
+
+echo "Installing server"
+cd ../server
+bash $WORKDIR/tests/drone-server-install.sh $DB
+
+echo "Installing app: $APP_NAME"
+php occ app:enable $APP_NAME
+
+cd apps/$APP_NAME
+pwd
+ls /drone/src