Merge pull request #774 from nextcloud/di_core_settings

Hanlde Core and Settings app in AppFramework
This commit is contained in:
Lukas Reschke 2016-08-08 23:15:06 +02:00 committed by GitHub
commit cb44bfe2b7
2 changed files with 58 additions and 1 deletions

View file

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

View file

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