Automatic injection for JsController

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2017-05-10 09:41:33 +02:00
parent 209b05489d
commit 9c8fe82000
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
3 changed files with 13 additions and 13 deletions

View File

@ -30,7 +30,6 @@
namespace OC\Core;
use OC\Core\Controller\JsController;
use OC\Security\IdentityProof\Manager;
use OCP\AppFramework\App;
use OC\Core\Controller\CssController;
@ -67,13 +66,5 @@ class Application extends App {
$container->query(ITimeFactory::class)
);
});
$container->registerService(JsController::class, function () use ($container) {
return new JsController(
$container->query('AppName'),
$container->query(IRequest::class),
$container->getServer()->getAppDataDir('js'),
$container->query(ITimeFactory::class)
);
});
}
}

View File

@ -22,6 +22,7 @@
*/
namespace OC\Core\Controller;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\NotFoundResponse;
@ -44,13 +45,13 @@ class JsController extends Controller {
/**
* @param string $appName
* @param IRequest $request
* @param IAppData $appData
* @param Factory $appDataFactory
* @param ITimeFactory $timeFactory
*/
public function __construct($appName, IRequest $request, IAppData $appData, ITimeFactory $timeFactory) {
public function __construct($appName, IRequest $request, Factory $appDataFactory, ITimeFactory $timeFactory) {
parent::__construct($appName, $request);
$this->appData = $appData;
$this->appData = $appDataFactory->get('js');
$this->timeFactory = $timeFactory;
}

View File

@ -23,6 +23,7 @@
namespace Tests\Core\Controller;
use OC\Core\Controller\JsController;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\NotFoundResponse;
@ -48,8 +49,15 @@ class JsControllerTest extends TestCase {
public function setUp() {
parent::setUp();
/** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */
$factory = $this->createMock(Factory::class);
$this->appData = $this->createMock(IAppData::class);
$factory->expects($this->once())
->method('get')
->with('js')
->willReturn($this->appData);
/** @var ITimeFactory|\PHPUnit_Framework_MockObject_MockObject $timeFactory */
$timeFactory = $this->createMock(ITimeFactory::class);
$timeFactory->method('getTime')
->willReturn(1337);
@ -59,7 +67,7 @@ class JsControllerTest extends TestCase {
$this->controller = new JsController(
'core',
$this->request,
$this->appData,
$factory,
$timeFactory
);
}