Browse Source

Added unit test for default app URL

tags/v7.0.0RC1
Vincent Petry 10 years ago
parent
commit
7c17452028
2 changed files with 69 additions and 1 deletions
  1. 1
    1
      lib/private/app.php
  2. 68
    0
      tests/lib/util.php

+ 1
- 1
lib/private/app.php View File

@@ -163,7 +163,7 @@ class OC_App {
/**
* get all enabled apps
*/
private static $enabledAppsCache = array();
protected static $enabledAppsCache = array();

public static function getEnabledApps($forceRefresh = false) {
if (!OC_Config::getValue('installed', false)) {

+ 68
- 0
tests/lib/util.php View File

@@ -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;
}
}

Loading…
Cancel
Save