diff options
-rw-r--r-- | apps/files_external/tests/README.md | 58 | ||||
-rw-r--r-- | lib/private/repair.php | 2 | ||||
-rw-r--r-- | lib/repair/enablefilesapp.php | 50 |
3 files changed, 58 insertions, 52 deletions
diff --git a/apps/files_external/tests/README.md b/apps/files_external/tests/README.md new file mode 100644 index 00000000000..35a0232434e --- /dev/null +++ b/apps/files_external/tests/README.md @@ -0,0 +1,58 @@ +# How to run the files external unit tests + +## Components + +The files_external relies - as the name already says - on external file system +providers. To test easily against such a provider we use some scripts to setup +a provider (and of course also cleanup that provider). Those scripts can be +found in the `tests/env` folder of the files_external app. + +### Naming Conventions + +The current implementation supports a script that starts with `start-` for the +setup step which is executed before the PHPUnit run and an optional script +starting with `stop-` (and have the same ending as the start script) to cleanup +the provider. For example: `start-webdav-ownCloud.sh` and +`stop-webdav-ownCloud.sh`. As a second requirement after this prefix there has +to be the name of the backend test suite. In the above example the test suite +`tests/backends/webdav.php` is used. The last part is a name that can be chosen +freely. + +## Hands-on way of unit test execution + +Run all files_external unit tests by invoking the following in the ownCloud +core root folder: + + ./autotest-external.sh + +This script supports to get passed a database as first argument: + + ./autotest-external.sh sqlite + +You can also pass the name of the external file system provider as a second +argument that should be executed. This is the name of the script without the +prefix `start-` (or `stop-`) and without the extension `.sh` from the above +mentioned components in `test/env`. So if you want to start the WebDAV backend +tests against an ownCloud instance you can run following: + + ./autotest-external.sh sqlite webdav-ownCloud + +This runs the script `start-webdav-ownCloud.sh` from the `tests/env` folder, +then runs the unit test suite from `backends/webdav.php` (because the middle part of +the name of the script is `webdav`) and finally tries to call +`stop-webdav-ownCloud.sh` for cleanup purposes. + +## The more manual way of unit test execution + +If you want to debug your external storage provider, you maybe don't want to +fire it up, execute the unit tests and clean everything up for each debugging +step. In this case you can simply start the external storage provider instance +and run the unit test multiple times against the instance for debugging purposes. +To do this you just need to follow these steps (from within +`apps/files_external/tests`): + + 1. run the start step (`env/start-BACKEND-NAME.sh`) or start the environment by + hand (i.e. setting up an instance manually in a virtual box) + 2. run the unit tests with following command (you can repeat that step multiple times): + `phpunit --configuration ../../../tests/phpunit-autotest-external.xml backends/BACKEND.php` + 3. call the cleanup script (`env/stop-BACKEND-NAME.sh`) or cleanup by hand diff --git a/lib/private/repair.php b/lib/private/repair.php index c74283896fd..d9fd99707e8 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -13,7 +13,6 @@ use OC\Hooks\Emitter; use OC\Repair\AssetCache; use OC\Repair\CleanTags; use OC\Repair\Collation; -use OC\Repair\EnableFilesApp; use OC\Repair\FillETags; use OC\Repair\InnoDB; use OC\Repair\RepairConfig; @@ -85,7 +84,6 @@ class Repair extends BasicEmitter { new AssetCache(), new FillETags(\OC_DB::getConnection()), new CleanTags(\OC_DB::getConnection()), - new EnableFilesApp(\OC::$server->getConfig()), ); } diff --git a/lib/repair/enablefilesapp.php b/lib/repair/enablefilesapp.php deleted file mode 100644 index a3298cf76b3..00000000000 --- a/lib/repair/enablefilesapp.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright (c) 2015 Morris Jobke <hey@morrisjobke.de> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -namespace OC\Repair; - -use OC\Hooks\BasicEmitter; -use OC\RepairStep; -use OCP\IConfig; - -/** - * Class EnableFilesApp - enables files app if disabled - * - * TODO: remove this with ownCloud 8.1 - this isn't possible anymore with 8.0 - * - * @package OC\Repair - */ -class EnableFilesApp extends BasicEmitter implements RepairStep { - - /** @var IConfig */ - protected $config; - - /** - * @param IConfig $config - */ - public function __construct(IConfig $config) { - $this->config = $config; - } - - /** - * @return string - */ - public function getName() { - return 'Re-enable file app'; - } - - /** - * Enables the files app if it is disabled - */ - public function run() { - if ($this->config->getAppValue('files', 'enabled', 'no') !== 'yes') { - $this->config->setAppValue('files', 'enabled', 'yes'); - $this->emit('\OC\Repair', 'info', ['Files app was disabled - re-enabled']); - } - } -} |