[Pkg-owncloud-commits] [owncloud] 179/273: Added unit test for default app URL

David Prévot taffit at moszumanska.debian.org
Fri Jul 4 03:13:14 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 7c174520289dc5337dda1d32352e7542cb329670
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Tue Jul 1 16:55:29 2014 +0200

    Added unit test for default app URL
---
 lib/private/app.php |  2 +-
 tests/lib/util.php  | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/lib/private/app.php b/lib/private/app.php
index 9fb0ec2..0ca2ca3 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -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)) {
diff --git a/tests/lib/util.php b/tests/lib/util.php
index aaa47f0..c2bb99c 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;
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list