From 6e0de4208c06a3c95cbe274a93476b6b7eacafa0 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Wed, 9 Apr 2014 16:36:09 +0200 Subject: remove usersettingscontroller in favor of pagecontroller, simplify settings requests --- controller/pagecontroller.php | 33 ++++ controller/usersettingscontroller.php | 113 ------------- tests/unit/controller/PageControllerTest.php | 63 ++++++- .../unit/controller/UserSettingsControllerTest.php | 184 --------------------- 4 files changed, 95 insertions(+), 298 deletions(-) delete mode 100644 controller/usersettingscontroller.php delete mode 100644 tests/unit/controller/UserSettingsControllerTest.php diff --git a/controller/pagecontroller.php b/controller/pagecontroller.php index 0526d79e8..4acc5f9e6 100644 --- a/controller/pagecontroller.php +++ b/controller/pagecontroller.php @@ -26,15 +26,18 @@ namespace OCA\News\Controller; use \OCP\IRequest; +use \OCP\AppFramework\Http\JSONResponse; use \OCP\AppFramework\Controller; use \OCA\News\Core\API; class PageController extends Controller { + private $api; public function __construct(API $api, IRequest $request){ parent::__construct($api->getAppName(), $request); + $this->api = $api; } @@ -47,4 +50,34 @@ class PageController extends Controller { } + /** + * @NoAdminRequired + */ + public function settings() { + $showAll = $this->api->getUserValue('showAll'); + $compact = $this->api->getUserValue('compact'); + $language = $this->api->getTrans()->findLanguage(); + + $settings = array( + 'showAll' => $showAll === '1', + 'compact' => $compact === '1', + 'language' => $language + ); + + return new JSONResponse($settings); + } + + + /** + * @NoAdminRequired + */ + public function updateSettings() { + $isShowAll = $this->params('showAll'); + $isCompact = $this->params('compact'); + $this->api->setUserValue('showAll', $isShowAll); + $this->api->setUserValue('compact', $isCompact); + + return new JSONResponse(); + } + } \ No newline at end of file diff --git a/controller/usersettingscontroller.php b/controller/usersettingscontroller.php deleted file mode 100644 index 46e003d2c..000000000 --- a/controller/usersettingscontroller.php +++ /dev/null @@ -1,113 +0,0 @@ -. -* -*/ - -namespace OCA\News\Controller; - -use \OCP\IRequest; -use \OCP\AppFramework\Controller; -use \OCP\AppFramework\Http\JSONResponse; - -use \OCA\News\Core\API; - -class UserSettingsController extends Controller { - - private $api; - - public function __construct(API $api, IRequest $request){ - parent::__construct($api->getAppName(), $request); - $this->api = $api; - } - - - /** - * @NoAdminRequired - */ - public function read(){ - $showAll = $this->api->getUserValue('showAll'); - $params = array( - 'showAll' => $showAll === '1' - ); - - return new JSONResponse($params); - } - - - /** - * @NoAdminRequired - */ - public function show(){ - $this->api->setUserValue('showAll', true); - - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - */ - public function hide(){ - $this->api->setUserValue('showAll', false); - - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - */ - public function getLanguage(){ - $language = $this->api->getTrans()->findLanguage(); - - $params = array( - 'language' => $language - ); - return new JSONResponse($params); - } - - - /** - * @NoAdminRequired - */ - public function isCompactView(){ - $compact = $this->api->getUserValue('compact'); - $params = array( - 'compact' => $compact === '1' - ); - return new JSONResponse($params); - } - - - /** - * @NoAdminRequired - */ - public function setCompactView(){ - $isCompact = $this->params('compact'); - $this->api->setUserValue('compact', $isCompact); - - return new JSONResponse(); - } - - -} \ No newline at end of file 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 diff --git a/tests/unit/controller/UserSettingsControllerTest.php b/tests/unit/controller/UserSettingsControllerTest.php deleted file mode 100644 index 87a898376..000000000 --- a/tests/unit/controller/UserSettingsControllerTest.php +++ /dev/null @@ -1,184 +0,0 @@ -. -* -*/ - -namespace OCA\News\Controller; - -use \OCP\AppFramework\Http; -use \OCP\AppFramework\Http\JSONResponse; - -use \OCA\News\Utility\ControllerTestUtility; - -require_once(__DIR__ . "/../../classloader.php"); - - -class UserSettingsControllerTest extends ControllerTestUtility { - - private $api; - private $request; - private $controller; - - - /** - * Gets run before each test - */ - public function setUp(){ - $this->api = $this->getAPIMock(); - $this->request = $this->getRequest(); - $this->controller = new UserSettingsController($this->api, $this->request); - $this->user = 'becka'; - } - - - private function assertUserSettingsControllerAnnotations($methodName){ - $annotations = array('NoAdminRequired'); - $this->assertAnnotations($this->controller, $methodName, $annotations); - } - - - public function testGetLanguageAnnotations(){ - $this->assertUserSettingsControllerAnnotations('getLanguage'); - } - - public function testIsCompactViewAnnotations(){ - $this->assertUserSettingsControllerAnnotations('isCompactView'); - } - - public function testSetCompactViewAnnotations(){ - $this->assertUserSettingsControllerAnnotations('setCompactView'); - } - - - public function testFoldersAnnotations(){ - $this->assertUserSettingsControllerAnnotations('read'); - } - - - public function testOpenAnnotations(){ - $this->assertUserSettingsControllerAnnotations('show'); - } - - - public function testCollapseAnnotations(){ - $this->assertUserSettingsControllerAnnotations('hide'); - } - - - public function testShow(){ - $this->api->expects($this->once()) - ->method('setUserValue') - ->with($this->equalTo('showAll'), - $this->equalTo(true)); - $response = $this->controller->show(); - $this->assertTrue($response instanceof JSONResponse); - } - - - public function testHide(){ - $this->api->expects($this->once()) - ->method('setUserValue') - ->with($this->equalTo('showAll'), - $this->equalTo(false)); - $response = $this->controller->hide(); - $this->assertTrue($response instanceof JSONResponse); - } - - - public function testRead(){ - $result = array( - 'showAll' => true - ); - $this->api->expects($this->once()) - ->method('getUserValue') - ->with($this->equalTo('showAll')) - ->will($this->returnValue('1')); - - $response = $this->controller->read(); - $this->assertEquals($result, $response->getData()); - $this->assertTrue($response instanceof JSONResponse); - } - - - public function testGetLanguage(){ - $language = 'de'; - $lang = $this->getMock('Lang', array('findLanguage')); - $lang->expects($this->once()) - ->method('findLanguage') - ->will($this->returnValue($language)); - $this->api->expects($this->once()) - ->method('getTrans') - ->will($this->returnValue($lang)); - - $response = $this->controller->getLanguage(); - $params = $response->getData(); - - $this->assertEquals($language, $params['language']); - $this->assertTrue($response instanceof JSONResponse); - } - - - public function testIsCompactView() { - $result = array( - 'compact' => true - ); - $this->api->expects($this->once()) - ->method('getUserValue') - ->with($this->equalTo('compact')) - ->will($this->returnValue('1')); - - $response = $this->controller->isCompactView(); - $this->assertEquals($result, $response->getData()); - $this->assertTrue($response instanceof JSONResponse); - } - - - public function testUnsetCompactView(){ - $request = $this->getRequest(array('post' => array( - 'compact' => false - ))); - $this->controller = new UserSettingsController($this->api, $request); - - $this->api->expects($this->once()) - ->method('setUserValue') - ->with($this->equalTo('compact'), - $this->equalTo(false)); - $response = $this->controller->setCompactView(); - $this->assertTrue($response instanceof JSONResponse); - } - - public function testSetCompactView(){ - $request = $this->getRequest(array('post' => array( - 'compact' => true - ))); - $this->controller = new UserSettingsController($this->api, $request); - - $this->api->expects($this->once()) - ->method('setUserValue') - ->with($this->equalTo('compact'), - $this->equalTo(true)); - $response = $this->controller->setCompactView(); - $this->assertTrue($response instanceof JSONResponse); - } - -} \ No newline at end of file -- cgit v1.2.3