diff options
Diffstat (limited to 'tests/unit/controller/PageControllerTest.php')
-rw-r--r-- | tests/unit/controller/PageControllerTest.php | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/tests/unit/controller/PageControllerTest.php b/tests/unit/controller/PageControllerTest.php index 86534e861..a2b9b6e16 100644 --- a/tests/unit/controller/PageControllerTest.php +++ b/tests/unit/controller/PageControllerTest.php @@ -27,6 +27,7 @@ namespace OCA\News\Controller; use \OCP\IRequest; use \OCP\AppFramework\Http\TemplateResponse; +use \OCP\AppFramework\Http\JSONResponse; use \OCA\News\Utility\ControllerTestUtility; @@ -38,6 +39,7 @@ class PageControllerTest extends ControllerTestUtility { private $api; private $request; private $controller; + private $user; /** @@ -47,14 +49,25 @@ class PageControllerTest extends ControllerTestUtility { $this->api = $this->getAPIMock(); $this->request = $this->getRequest(); $this->controller = new PageController($this->api, $this->request); + $this->user = 'becka'; } - public function testOpmlAnnotations(){ + public function testIndexAnnotations(){ $annotations = array('NoAdminRequired', 'NoCSRFRequired'); $this->assertAnnotations($this->controller, 'index', $annotations); } + public function testSettingsAnnotations(){ + $annotations = array('NoAdminRequired'); + $this->assertAnnotations($this->controller, 'settings', $annotations); + } + + public function testUpdateSettingsAnnotations(){ + $annotations = array('NoAdminRequired'); + $this->assertAnnotations($this->controller, 'updateSettings', $annotations); + } + public function testIndex(){ $response = $this->controller->index(); $this->assertEquals('main', $response->getTemplateName()); @@ -62,4 +75,52 @@ class PageControllerTest extends ControllerTestUtility { } + public function testSettings() { + $result = array( + 'showAll' => true, + 'compact' => true, + 'language' => 'de' + ); + + $lang = $this->getMock('Lang', array('findLanguage')); + $lang->expects($this->once()) + ->method('findLanguage') + ->will($this->returnValue('de')); + $this->api->expects($this->once()) + ->method('getTrans') + ->will($this->returnValue($lang)); + $this->api->expects($this->at(0)) + ->method('getUserValue') + ->with($this->equalTo('showAll')) + ->will($this->returnValue('1')); + $this->api->expects($this->at(1)) + ->method('getUserValue') + ->with($this->equalTo('compact')) + ->will($this->returnValue('1')); + + $response = $this->controller->settings(); + $this->assertEquals($result, $response->getData()); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testUpdateSettings() { + $request = $this->getRequest(array('post' => array( + 'showAll' => true, + 'compact' => true + ))); + $this->controller = new PageController($this->api, $request); + + $this->api->expects($this->at(0)) + ->method('setUserValue') + ->with($this->equalTo('showAll'), + $this->equalTo(true)); + $this->api->expects($this->at(1)) + ->method('setUserValue') + ->with($this->equalTo('compact'), + $this->equalTo(true)); + $response = $this->controller->updateSettings(); + + $this->assertTrue($response instanceof JSONResponse); + } }
\ No newline at end of file |