aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/InfoXmlTest.php
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2016-10-07 14:25:18 +0200
committerJoas Schilling <coding@schilljs.com>2016-10-07 14:25:18 +0200
commitc02a50a4324983c07af5700e10850c122f0a70bd (patch)
tree5bc10c8d05a5742b0ea9e2e4b3a8115b59625004 /tests/lib/InfoXmlTest.php
parent7264d20152df326b82f5daebf26ee8e5161cb359 (diff)
downloadnextcloud-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.php122
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));
+ }
+ }
+ }
+}