diff options
author | Joas Schilling <coding@schilljs.com> | 2016-10-07 14:25:18 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2016-10-07 14:25:18 +0200 |
commit | c02a50a4324983c07af5700e10850c122f0a70bd (patch) | |
tree | 5bc10c8d05a5742b0ea9e2e4b3a8115b59625004 /tests/lib/InfoXmlTest.php | |
parent | 7264d20152df326b82f5daebf26ee8e5161cb359 (diff) | |
download | nextcloud-server-c02a50a4324983c07af5700e10850c122f0a70bd.tar.gz nextcloud-server-c02a50a4324983c07af5700e10850c122f0a70bd.zip |
Make sure all the jobs, command, provides and migrations are valid
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'tests/lib/InfoXmlTest.php')
-rw-r--r-- | tests/lib/InfoXmlTest.php | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/tests/lib/InfoXmlTest.php b/tests/lib/InfoXmlTest.php new file mode 100644 index 00000000000..bf6cd08ee39 --- /dev/null +++ b/tests/lib/InfoXmlTest.php @@ -0,0 +1,122 @@ +<?php +/** + * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> + * + * @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/>. + * + */ + +namespace Test; + + +/** + * Class InfoXmlTest + * + * @group DB + * @package Test + */ +class InfoXmlTest extends TestCase { + + public function dataApps() { + return [ + ['admin_audit'], + ['comments'], + ['dav'], + ['encryption'], + ['federatedfilesharing'], + ['federation'], + ['files'], + ['files_external'], + ['files_sharing'], + ['files_trashbin'], + ['files_versions'], + ['provisioning_api'], + ['systemtags'], + ['theming'], + ['twofactor_backupcodes'], + ['updatenotification'], + ['user_ldap'], + ['workflowengine'], + ]; + } + + /** + * @dataProvider dataApps + * + * @param string $app + */ + public function testClasses($app) { + $appInfo = \OC_App::getAppInfo($app); + $appPath = \OC_App::getAppPath($app); + \OC_App::registerAutoloading($app, $appPath); + + if (isset($appInfo['background-jobs'])) { + foreach ($appInfo['background-jobs'] as $job) { + $this->assertTrue(class_exists($job), 'Asserting background job "' . $job . '" exists'); + $this->assertInstanceOf($job, \OC::$server->query($job)); + } + } + + if (isset($appInfo['two-factor-providers'])) { + foreach ($appInfo['two-factor-providers'] as $provider) { + $this->assertTrue(class_exists($provider), 'Asserting two-factor providers "' . $provider . '" exists'); + $this->assertInstanceOf($provider, \OC::$server->query($provider)); + } + } + + if (isset($appInfo['commands'])) { + foreach ($appInfo['commands'] as $command) { + $this->assertTrue(class_exists($command), 'Asserting command "' . $command . '" exists'); + $this->assertInstanceOf($command, \OC::$server->query($command)); + } + } + + if (isset($appInfo['repair-steps']['pre-migration'])) { + foreach ($appInfo['repair-steps']['pre-migration'] as $migration) { + $this->assertTrue(class_exists($migration), 'Asserting pre-migration "' . $migration . '" exists'); + $this->assertInstanceOf($migration, \OC::$server->query($migration)); + } + } + + if (isset($appInfo['repair-steps']['post-migration'])) { + foreach ($appInfo['repair-steps']['post-migration'] as $migration) { + $this->assertTrue(class_exists($migration), 'Asserting post-migration "' . $migration . '" exists'); + $this->assertInstanceOf($migration, \OC::$server->query($migration)); + } + } + + if (isset($appInfo['repair-steps']['live-migration'])) { + foreach ($appInfo['repair-steps']['live-migration'] as $migration) { + $this->assertTrue(class_exists($migration), 'Asserting live-migration "' . $migration . '" exists'); + $this->assertInstanceOf($migration, \OC::$server->query($migration)); + } + } + + if (isset($appInfo['repair-steps']['install'])) { + foreach ($appInfo['repair-steps']['install'] as $migration) { + $this->assertTrue(class_exists($migration), 'Asserting install-migration "' . $migration . '" exists'); + $this->assertInstanceOf($migration, \OC::$server->query($migration)); + } + } + + if (isset($appInfo['repair-steps']['uninstall'])) { + foreach ($appInfo['repair-steps']['uninstall'] as $migration) { + $this->assertTrue(class_exists($migration), 'Asserting uninstall-migration "' . $migration . '" exists'); + $this->assertInstanceOf($migration, \OC::$server->query($migration)); + } + } + } +} |