aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2016-08-08 23:15:06 +0200
committerGitHub <noreply@github.com>2016-08-08 23:15:06 +0200
commitcb44bfe2b78c1f7e4adbdc7f8df8be2bd6501900 (patch)
tree908456d4c2e90540b4da7013b5639b02f8c14d43
parenta858c73357587722815cafbac6dbee0812679d83 (diff)
parent0032a5c2d1e43e9b355b887f15e3caee17048d6e (diff)
downloadnextcloud-server-cb44bfe2b78c1f7e4adbdc7f8df8be2bd6501900.tar.gz
nextcloud-server-cb44bfe2b78c1f7e4adbdc7f8df8be2bd6501900.zip
Merge pull request #774 from nextcloud/di_core_settings
Hanlde Core and Settings app in AppFramework
-rw-r--r--lib/private/AppFramework/App.php8
-rw-r--r--tests/lib/AppFramework/AppTest.php51
2 files changed, 58 insertions, 1 deletions
diff --git a/lib/private/AppFramework/App.php b/lib/private/AppFramework/App.php
index 01844e4c2d5..c7670953b4e 100644
--- a/lib/private/AppFramework/App.php
+++ b/lib/private/AppFramework/App.php
@@ -93,7 +93,13 @@ class App {
try {
$controller = $container->query($controllerName);
} catch(QueryException $e) {
- $appNameSpace = self::buildAppNamespace($appName);
+ if ($appName === 'core') {
+ $appNameSpace = 'OC\\Core';
+ } else if ($appName === 'settings') {
+ $appNameSpace = 'OC\\Settings';
+ } else {
+ $appNameSpace = self::buildAppNamespace($appName);
+ }
$controllerName = $appNameSpace . '\\Controller\\' . $controllerName;
$controller = $container->query($controllerName);
}
diff --git a/tests/lib/AppFramework/AppTest.php b/tests/lib/AppFramework/AppTest.php
index 7288e686d52..92ebd1f81e7 100644
--- a/tests/lib/AppFramework/AppTest.php
+++ b/tests/lib/AppFramework/AppTest.php
@@ -162,4 +162,55 @@ class AppTest extends \Test\TestCase {
App::main($this->controllerName, $this->controllerMethod, $this->container, []);
}
+ public function testCoreApp() {
+ $this->container['AppName'] = 'core';
+ $this->container['OC\Core\Controller\Foo'] = $this->controller;
+
+ $return = array(null, array(), array(), null, new Response());
+ $this->dispatcher->expects($this->once())
+ ->method('dispatch')
+ ->with($this->equalTo($this->controller),
+ $this->equalTo($this->controllerMethod))
+ ->will($this->returnValue($return));
+
+ $this->io->expects($this->never())
+ ->method('setOutput');
+
+ App::main('Foo', $this->controllerMethod, $this->container);
+ }
+
+ public function testSettingsApp() {
+ $this->container['AppName'] = 'settings';
+ $this->container['OC\Settings\Controller\Foo'] = $this->controller;
+
+ $return = array(null, array(), array(), null, new Response());
+ $this->dispatcher->expects($this->once())
+ ->method('dispatch')
+ ->with($this->equalTo($this->controller),
+ $this->equalTo($this->controllerMethod))
+ ->will($this->returnValue($return));
+
+ $this->io->expects($this->never())
+ ->method('setOutput');
+
+ App::main('Foo', $this->controllerMethod, $this->container);
+ }
+
+ public function testApp() {
+ $this->container['AppName'] = 'bar';
+ $this->container['OCA\Bar\Controller\Foo'] = $this->controller;
+
+ $return = array(null, array(), array(), null, new Response());
+ $this->dispatcher->expects($this->once())
+ ->method('dispatch')
+ ->with($this->equalTo($this->controller),
+ $this->equalTo($this->controllerMethod))
+ ->will($this->returnValue($return));
+
+ $this->io->expects($this->never())
+ ->method('setOutput');
+
+ App::main('Foo', $this->controllerMethod, $this->container);
+ }
+
}