2016-10-07 12:25:18 +00:00
|
|
|
<?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'],
|
2019-09-17 14:33:27 +00:00
|
|
|
['settings'],
|
2016-10-07 12:25:18 +00:00
|
|
|
['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);
|
|
|
|
|
2017-03-22 10:24:16 +00:00
|
|
|
//Add the appcontainer
|
|
|
|
$applicationClassName = \OCP\AppFramework\App::buildAppNamespace($app) . '\\AppInfo\\Application';
|
|
|
|
if (class_exists($applicationClassName)) {
|
|
|
|
$application = new $applicationClassName();
|
2018-01-25 10:23:12 +00:00
|
|
|
$this->addToAssertionCount(1);
|
2017-03-22 10:24:16 +00:00
|
|
|
} else {
|
|
|
|
$application = new \OCP\AppFramework\App($app);
|
2018-01-25 10:23:12 +00:00
|
|
|
$this->addToAssertionCount(1);
|
2017-03-22 10:24:16 +00:00
|
|
|
}
|
|
|
|
|
2016-10-07 12:25:18 +00:00
|
|
|
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));
|
|
|
|
}
|
|
|
|
}
|
2016-10-11 17:47:59 +00:00
|
|
|
|
|
|
|
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));
|
|
|
|
}
|
|
|
|
}
|
2016-10-07 12:25:18 +00:00
|
|
|
}
|
|
|
|
}
|