summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-04-09 16:36:09 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-04-09 22:52:27 +0200
commit6e0de4208c06a3c95cbe274a93476b6b7eacafa0 (patch)
tree42221fb4d981de4b4fd6fbe2b81b47fac08c4207
parent673f26829d0badb4e2e8094df69bb7db45707761 (diff)
remove usersettingscontroller in favor of pagecontroller, simplify settings requests
-rw-r--r--controller/pagecontroller.php33
-rw-r--r--controller/usersettingscontroller.php113
-rw-r--r--tests/unit/controller/PageControllerTest.php63
-rw-r--r--tests/unit/controller/UserSettingsControllerTest.php184
4 files changed, 95 insertions, 298 deletions
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 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Cosentino
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-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 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Copyright
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-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