protected function setUp() {
$this->container = new \OC\AppFramework\DependencyInjection\DIContainer('test');
$this->controller = $this->getMockBuilder(
- 'OC\AppFramework\Controller\Controller')
+ 'OCP\AppFramework\Controller\Controller')
->disableOriginalConstructor()
->getMock();
$this->dispatcher = $this->getMockBuilder(
namespace Test\AppFramework\Controller;
use OC\AppFramework\Http\Request;
-use OC\AppFramework\Controller\Controller;
+use OCP\AppFramework\Controller\Controller;
use OCP\AppFramework\Http\TemplateResponse;
-//require_once __DIR__ . "/../classloader.php";
-
-
class ChildController extends Controller {};
class ControllerTest extends \PHPUnit_Framework_TestCase {
* @var Controller
*/
private $controller;
- private $api;
+ private $app;
protected function setUp(){
$request = new Request(
)
);
- $this->api = $this->getMock('OC\AppFramework\Core\API',
+ $this->app = $this->getMock('OC\AppFramework\DependencyInjection\DIContainer',
array('getAppName'), array('test'));
- $this->api->expects($this->any())
+ $this->app->expects($this->any())
->method('getAppName')
->will($this->returnValue('apptemplate_advanced'));
- $this->controller = new ChildController($this->api, $request);
+ $this->controller = new ChildController($this->app, $request);
}
}
- public function testRenderRenderAs(){
- $ocTpl = $this->getMock('Template', array('fetchPage'));
- $ocTpl->expects($this->once())
- ->method('fetchPage');
-
- $api = $this->getMock('OC\AppFramework\Core\API',
- array('getAppName', 'getTemplate'), array('app'));
- $api->expects($this->any())
- ->method('getAppName')
- ->will($this->returnValue('app'));
- $api->expects($this->once())
- ->method('getTemplate')
- ->with($this->equalTo('home'), $this->equalTo('admin'), $this->equalTo('app'))
- ->will($this->returnValue($ocTpl));
-
- $this->controller = new ChildController($api, new Request());
- $this->controller->render('home', array(), 'admin')->render();
- }
-
-
public function testRenderHeaders(){
$headers = array('one', 'two');
$response = $this->controller->render('', array(), '', $headers);
protected function setUp() {
$this->controllerMethod = 'test';
- $api = $this->getMockBuilder(
- '\OC\AppFramework\Core\API')
+ $app = $this->getMockBuilder(
+ 'OC\AppFramework\DependencyInjection\DIContainer')
->disableOriginalConstructor()
->getMock();
$request = $this->getMockBuilder(
->disableOriginalConstructor()
->getMock();
$this->controller = $this->getMock(
- '\OC\AppFramework\Controller\Controller',
- array($this->controllerMethod), array($api, $request));
+ '\OCP\AppFramework\Controller\Controller',
+ array($this->controllerMethod), array($app, $request));
$this->dispatcher = new Dispatcher(
$this->http, $this->middlewareDispatcher);
}
- public function testRender(){
- $ocTpl = $this->getMock('Template', array('fetchPage'));
- $ocTpl->expects($this->once())
- ->method('fetchPage');
-
- $api = $this->getMock('OC\AppFramework\Core\API',
- array('getAppName', 'getTemplate'), array('app'));
- $api->expects($this->any())
- ->method('getAppName')
- ->will($this->returnValue('app'));
- $api->expects($this->once())
- ->method('getTemplate')
- ->with($this->equalTo('home'), $this->equalTo('user'), $this->equalTo('app'))
- ->will($this->returnValue($ocTpl));
-
- $tpl = new TemplateResponse($api, 'home');
-
- $tpl->render();
- }
-
-
- public function testRenderAssignsParams(){
- $params = array('john' => 'doe');
-
- $ocTpl = $this->getMock('Template', array('assign', 'fetchPage'));
- $ocTpl->expects($this->once())
- ->method('assign')
- ->with($this->equalTo('john'), $this->equalTo('doe'));
-
- $api = $this->getMock('OC\AppFramework\Core\API',
- array('getAppName', 'getTemplate'), array('app'));
- $api->expects($this->any())
- ->method('getAppName')
- ->will($this->returnValue('app'));
- $api->expects($this->once())
- ->method('getTemplate')
- ->with($this->equalTo('home'), $this->equalTo('user'), $this->equalTo('app'))
- ->will($this->returnValue($ocTpl));
-
- $tpl = new TemplateResponse($api, 'home');
- $tpl->setParams($params);
-
- $tpl->render();
- }
-
-
- public function testRenderDifferentApp(){
- $ocTpl = $this->getMock('Template', array('fetchPage'));
- $ocTpl->expects($this->once())
- ->method('fetchPage');
-
- $api = $this->getMock('OC\AppFramework\Core\API',
- array('getAppName', 'getTemplate'), array('app'));
- $api->expects($this->any())
- ->method('getAppName')
- ->will($this->returnValue('app'));
- $api->expects($this->once())
- ->method('getTemplate')
- ->with($this->equalTo('home'), $this->equalTo('user'), $this->equalTo('app2'))
- ->will($this->returnValue($ocTpl));
-
- $tpl = new TemplateResponse($api, 'home', 'app2');
-
- $tpl->render();
- }
-
-
- public function testRenderDifferentRenderAs(){
- $ocTpl = $this->getMock('Template', array('fetchPage'));
- $ocTpl->expects($this->once())
- ->method('fetchPage');
-
- $api = $this->getMock('OC\AppFramework\Core\API',
- array('getAppName', 'getTemplate'), array('app'));
- $api->expects($this->any())
- ->method('getAppName')
- ->will($this->returnValue('app'));
- $api->expects($this->once())
- ->method('getTemplate')
- ->with($this->equalTo('home'), $this->equalTo('admin'), $this->equalTo('app'))
- ->will($this->returnValue($ocTpl));
-
- $tpl = new TemplateResponse($api, 'home');
- $tpl->renderAs('admin');
-
- $tpl->render();
- }
+// public function testRender(){
+// $ocTpl = $this->getMock('Template', array('fetchPage'));
+// $ocTpl->expects($this->once())
+// ->method('fetchPage');
+//
+// $tpl = new TemplateResponse('core', 'error');
+//
+// $tpl->render();
+// }
+//
+//
+// public function testRenderAssignsParams(){
+// $params = array('john' => 'doe');
+//
+// $tpl = new TemplateResponse('app', 'home');
+// $tpl->setParams($params);
+//
+// $tpl->render();
+// }
+//
+//
+// public function testRenderDifferentApp(){
+//
+// $tpl = new TemplateResponse('app', 'home', 'app2');
+//
+// $tpl->render();
+// }
public function testGetRenderAs(){
private function getAPIMock(){
- return $this->getMock('OC\AppFramework\Core\API',
+ return $this->getMock('OC\AppFramework\DependencyInjection\DIContainer',
array('getAppName'), array('app'));
}
private function getControllerMock(){
- return $this->getMock('OC\AppFramework\Controller\Controller', array('method'),
+ return $this->getMock('OCP\AppFramework\Controller\Controller', array('method'),
array($this->getAPIMock(), new Request()));
}
protected function setUp(){
$this->middleware = new ChildMiddleware();
- $this->api = $this->getMock('OC\AppFramework\Core\API',
+ $this->api = $this->getMock('OC\AppFramework\DependencyInjection\DIContainer',
array(), array('test'));
- $this->controller = $this->getMock('OC\AppFramework\Controller\Controller',
+ $this->controller = $this->getMock('OCP\AppFramework\Controller\Controller',
array(), array($this->api, new Request()));
$this->exception = new \Exception();
$this->response = $this->getMock('OCP\AppFramework\Http\Response');
private $request;
public function setUp() {
- $api = $this->getMock('OC\AppFramework\Core\API', array(), array('test'));
- $this->controller = $this->getMock('OC\AppFramework\Controller\Controller',
+ $api = $this->getMock('OC\AppFramework\DependencyInjection\DIContainer', array(), array('test'));
+ $this->controller = $this->getMock('OCP\AppFramework\Controller\Controller',
array(), array($api, new Request()));
$this->request = new Request();
private function getAPI(){
- return $this->getMock('OC\AppFramework\Core\API',
+ return $this->getMock('OC\AppFramework\DependencyInjection\DIContainer',
array('isLoggedIn', 'passesCSRFCheck', 'isAdminUser',
- 'isSubAdminUser', 'activateNavigationEntry',
- 'getUserId'),
+ 'isSubAdminUser', 'getUserId'),
array('app'));
}
- private function checkNavEntry($method, $shouldBeActivated=false){
+ private function checkNavEntry($method){
$api = $this->getAPI();
- if($shouldBeActivated){
- $api->expects($this->once())
- ->method('activateNavigationEntry');
- } else {
- $api->expects($this->never())
- ->method('activateNavigationEntry');
- }
+ $serverMock = $this->getMock('\OC\Server', array());
+ $api->expects($this->any())->method('getServer')
+ ->will($this->returnValue($serverMock));
$sec = new SecurityMiddleware($api, $this->request);
$sec->beforeController('\OC\AppFramework\Middleware\Security\SecurityMiddlewareTest', $method);
* @NoCSRFRequired
*/
public function testSetNavigationEntry(){
- $this->checkNavEntry('testSetNavigationEntry', true);
+ $this->checkNavEntry('testSetNavigationEntry');
}
/**
* @PublicPage
+ * @expectedException \OC\AppFramework\Middleware\Security\SecurityException
*/
public function testCsrfCheck(){
- $this->securityCheck('testCsrfCheck', 'passesCSRFCheck');
+ $api = $this->getAPI();
+ $request = $this->getMock('OC\AppFramework\Http\Request', array('passesCSRFCheck'));
+ $request->expects($this->once())
+ ->method('passesCSRFCheck')
+ ->will($this->returnValue(false));
+
+ $sec = new SecurityMiddleware($api, $request);
+ $sec->beforeController('\OC\AppFramework\Middleware\Security\SecurityMiddlewareTest', 'testCsrfCheck');
+ }
+
+
+ /**
+ * @PublicPage
+ * @NoCSRFRequired
+ */
+ public function testNoCsrfCheck(){
+ $api = $this->getAPI();
+ $request = $this->getMock('OC\AppFramework\Http\Request', array('passesCSRFCheck'));
+ $request->expects($this->never())
+ ->method('passesCSRFCheck')
+ ->will($this->returnValue(false));
+
+ $sec = new SecurityMiddleware($api, $request);
+ $sec->beforeController('\OC\AppFramework\Middleware\Security\SecurityMiddlewareTest', 'testNoCsrfCheck');
}
* @PublicPage
*/
public function testFailCsrfCheck(){
- $this->securityCheck('testFailCsrfCheck', 'passesCSRFCheck', true);
+ $api = $this->getAPI();
+ $request = $this->getMock('OC\AppFramework\Http\Request', array('passesCSRFCheck'));
+ $request->expects($this->once())
+ ->method('passesCSRFCheck')
+ ->will($this->returnValue(true));
+
+ $sec = new SecurityMiddleware($api, $request);
+ $sec->beforeController('\OC\AppFramework\Middleware\Security\SecurityMiddlewareTest', 'testFailCsrfCheck');
}
public function testAfterExceptionReturnsRedirect(){
- $api = $this->getMock('OC\AppFramework\Core\API', array(), array('test'));
- $this->controller = $this->getMock('OC\AppFramework\Controller\Controller',
+ $api = $this->getMock('OC\AppFramework\DependencyInjection\DIContainer', array(), array('test'));
+ $serverMock = $this->getMock('\OC\Server', array('getNavigationManager'));
+ $api->expects($this->once())->method('getServer')
+ ->will($this->returnValue($serverMock));
+
+ $this->controller = $this->getMock('OCP\AppFramework\Controller\Controller',
array(), array($api, new Request()));
$this->request = new Request(