diff options
-rw-r--r-- | package-lock.json | 41 | ||||
-rw-r--r-- | tests/TextTest.php | 18 | ||||
-rw-r--r-- | tests/bootstrap.php | 6 | ||||
-rw-r--r-- | tests/drone-server-install.sh | 138 | ||||
-rw-r--r-- | tests/drone-server-setup.sh | 65 | ||||
-rw-r--r-- | tests/phpunit.xml | 23 |
6 files changed, 261 insertions, 30 deletions
diff --git a/package-lock.json b/package-lock.json index 4380c1afb..fe4d3bffd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5178,8 +5178,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -5200,14 +5199,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5222,20 +5219,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -5352,8 +5346,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -5365,7 +5358,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5380,7 +5372,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5388,14 +5379,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5414,7 +5403,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -5495,8 +5483,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -5508,7 +5495,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5594,8 +5580,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -5631,7 +5616,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5651,7 +5635,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5695,14 +5678,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, diff --git a/tests/TextTest.php b/tests/TextTest.php new file mode 100644 index 000000000..5bbab6a0f --- /dev/null +++ b/tests/TextTest.php @@ -0,0 +1,18 @@ +<?php +namespace OCA\Text\Tests; + +use OCA\Social\Controller\NavigationController; +use OCA\Social\Controller\SocialPubController; +use OCA\Social\Service\CacheActorService; +use OCA\Text\AppInfo\Application; +use OCP\IL10N; +use OCP\IRequest; + +class TextTest extends \PHPUnit\Framework\TestCase { + + public function testDummy() { + $app = new Application(); + $this->assertEquals('text', $app::APP_NAME); + } + +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 000000000..a36794493 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,6 @@ +<?php + +require_once __DIR__ . '/../../../tests/bootstrap.php'; + +\OC_App::loadApp('text'); +OC_Hook::clear(); diff --git a/tests/drone-server-install.sh b/tests/drone-server-install.sh new file mode 100644 index 000000000..65559056f --- /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 000000000..8d754c65b --- /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 diff --git a/tests/phpunit.xml b/tests/phpunit.xml new file mode 100644 index 000000000..3ecf457ab --- /dev/null +++ b/tests/phpunit.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="bootstrap.php" + verbose="true" + timeoutForSmallTests="900" + timeoutForMediumTests="900" + timeoutForLargeTests="900" + > + <testsuite name='Text App Tests'> + <directory suffix='Test.php'>.</directory> + </testsuite> + <!-- filters for code coverage --> + <filter> + <whitelist> + <directory suffix=".php">../appinfo</directory> + <directory suffix=".php">../lib</directory> + </whitelist> + </filter> + <logging> + <!-- and this is where your report will be written --> + <log type="coverage-clover" target="./clover.xml"/> + </logging> +</phpunit> + |