diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-07-01 16:55:29 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-07-01 16:55:29 +0200 |
commit | 7c174520289dc5337dda1d32352e7542cb329670 (patch) | |
tree | a29aefb737ad35a0829ec7c92ca2245314d6894f /tests/lib | |
parent | 3e78f41d00a6b6d2f2dbc90beb9fb0a3e85f6cf4 (diff) | |
download | nextcloud-server-7c174520289dc5337dda1d32352e7542cb329670.tar.gz nextcloud-server-7c174520289dc5337dda1d32352e7542cb329670.zip |
Added unit test for default app URL
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib/util.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/lib/util.php b/tests/lib/util.php index aaa47f033de..c2bb99c3b2e 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -290,4 +290,72 @@ class Test_Util extends PHPUnit_Framework_TestCase { array(array('g1', 'g2', 'g3'), array('g1', 'g2'), array('g1', 'g2', 'g3'), true), ); } + + /** + * Test default apps + * + * @dataProvider defaultAppsProvider + */ + function testDefaultApps($defaultAppConfig, $expectedPath, $enabledApps) { + $oldDefaultApps = \OCP\Config::getSystemValue('core', 'defaultapp', ''); + // CLI is doing messy stuff with the webroot, so need to work it around + $oldWebRoot = \OC::$WEBROOT; + \OC::$WEBROOT = ''; + + Dummy_OC_App::setEnabledApps($enabledApps); + \OCP\Config::setSystemValue('defaultapp', $defaultAppConfig); + $this->assertEquals('http://localhost/' . $expectedPath, \OC_Util::getDefaultPageUrl()); + + // restore old state + \OC::$WEBROOT = $oldWebRoot; + Dummy_OC_App::restore(); + \OCP\Config::setSystemValue('defaultapp', $oldDefaultApps); + } + + function defaultAppsProvider() { + return array( + // none specified, default to files + array( + '', + 'index.php/apps/files/', + array('files'), + ), + // unexisting or inaccessible app specified, default to files + array( + 'unexist', + 'index.php/apps/files/', + array('files'), + ), + // non-standard app + array( + 'calendar', + 'index.php/apps/calendar/', + array('files', 'calendar'), + ), + // non-standard app with fallback + array( + 'contacts,calendar', + 'index.php/apps/calendar/', + array('files', 'calendar'), + ), + ); + } + +} + +/** + * Dummy OC Apps class to make it possible to override + * enabled apps + */ +class Dummy_OC_App extends OC_App { + private static $enabledAppsCacheBackup; + + public static function setEnabledApps($enabledApps) { + self::$enabledAppsCacheBackup = self::$enabledAppsCache; + self::$enabledAppsCache = $enabledApps; + } + + public static function restore() { + self::$enabledAppsCache = self::$enabledAppsCacheBackup; + } } |