summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-04-06 15:26:45 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-04-06 15:26:58 +0200
commitdbd18a20993221baf9e851fbd8eba1a48c411b3d (patch)
treed6bb96ddde1d70e960e1e8fc7b3d2d8a1ce3ca79
parent3c4044970e38820d67560e219dd94dc9e96b0387 (diff)
get rid of deprecated getParams and renderJSON method to ease transition to built in appframework
-rw-r--r--controller/feedcontroller.php53
-rw-r--r--controller/foldercontroller.php66
-rw-r--r--controller/itemcontroller.php32
-rw-r--r--controller/usersettingscontroller.php14
-rw-r--r--js/app/services/persistence.coffee2
-rw-r--r--js/public/app.js2
-rw-r--r--js/tests/services/persistenceSpec.coffee3
-rw-r--r--tests/unit/controller/FeedControllerTest.php91
-rw-r--r--tests/unit/controller/FolderControllerTest.php77
-rw-r--r--tests/unit/controller/ItemControllerTest.php21
-rw-r--r--tests/unit/controller/UserSettingsControllerTest.php6
11 files changed, 271 insertions, 96 deletions
diff --git a/controller/feedcontroller.php b/controller/feedcontroller.php
index e9561cf32..b0b856b79 100644
--- a/controller/feedcontroller.php
+++ b/controller/feedcontroller.php
@@ -28,11 +28,14 @@ namespace OCA\News\Controller;
use \OCA\AppFramework\Controller\Controller;
use \OCA\AppFramework\Core\API;
use \OCA\AppFramework\Http\Request;
+use \OCA\AppFramework\Http\JSONResponse;
+use \OCA\AppFramework\Http\Http;
use \OCA\News\BusinessLayer\ItemBusinessLayer;
use \OCA\News\BusinessLayer\FeedBusinessLayer;
use \OCA\News\BusinessLayer\FolderBusinessLayer;
use \OCA\News\BusinessLayer\BusinessLayerException;
+use \OCA\News\BusinessLayer\BusinessLayerConflictException;
use \OCA\News\Db\FeedType;
@@ -74,7 +77,7 @@ class FeedController extends Controller {
$this->itemBusinessLayer->getNewestItemId($userId);
} catch (BusinessLayerException $ex) {}
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -118,7 +121,7 @@ class FeedController extends Controller {
)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -147,9 +150,17 @@ class FeedController extends Controller {
$this->itemBusinessLayer->getNewestItemId($userId);
} catch (BusinessLayerException $ex) {}
- return $this->renderJSON($params);
+ return new JSONResponse($params);
+
+ } catch(BusinessLayerConflictException $ex) {
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_CONFLICT);
+
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_UNPROCESSABLE_ENTITY);
}
}
@@ -165,9 +176,11 @@ class FeedController extends Controller {
try {
$this->feedBusinessLayer->markDeleted($feedId, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -195,10 +208,12 @@ class FeedController extends Controller {
)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -215,9 +230,11 @@ class FeedController extends Controller {
try {
$this->feedBusinessLayer->move($feedId, $parentFolderId, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -233,9 +250,11 @@ class FeedController extends Controller {
try {
$this->feedBusinessLayer->rename($feedId, $feedTitle, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -255,7 +274,7 @@ class FeedController extends Controller {
$params['feeds'] = array($feed);
}
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -279,7 +298,7 @@ class FeedController extends Controller {
)
)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -294,9 +313,11 @@ class FeedController extends Controller {
try {
$this->feedBusinessLayer->unmarkDeleted($feedId, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
diff --git a/controller/foldercontroller.php b/controller/foldercontroller.php
index 546ce60b6..09d226920 100644
--- a/controller/foldercontroller.php
+++ b/controller/foldercontroller.php
@@ -28,12 +28,15 @@ namespace OCA\News\Controller;
use \OCA\AppFramework\Controller\Controller;
use \OCA\AppFramework\Core\API;
use \OCA\AppFramework\Http\Request;
+use \OCA\AppFramework\Http\JSONResponse;
+use \OCA\AppFramework\Http\Http;
use \OCA\News\BusinessLayer\FolderBusinessLayer;
use \OCA\News\BusinessLayer\FeedBusinessLayer;
use \OCA\News\BusinessLayer\ItemBusinessLayer;
use \OCA\News\BusinessLayer\BusinessLayerException;
-
+use \OCA\News\BusinessLayer\BusinessLayerConflictException;
+use \OCA\News\BusinessLayer\BusinessLayerValidationException;
class FolderController extends Controller {
@@ -62,7 +65,7 @@ class FolderController extends Controller {
$result = array(
'folders' => $folders
);
- return $this->renderJSON($result);
+ return new JSONResponse($result);
}
@@ -82,9 +85,11 @@ class FolderController extends Controller {
public function open(){
try {
$this->setOpened(true);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -97,9 +102,11 @@ class FolderController extends Controller {
public function collapse(){
try {
$this->setOpened(false);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -123,10 +130,19 @@ class FolderController extends Controller {
$params = array(
'folders' => array($folder)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
- } catch (BusinessLayerException $ex){
- return $this->renderJSON(array(), $ex->getMessage());
+
+
+ } catch(BusinessLayerConflictException $ex) {
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_CONFLICT);
+
+ } catch(BusinessLayerValidationException $ex) {
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_UNPROCESSABLE_ENTITY);
}
}
@@ -143,9 +159,11 @@ class FolderController extends Controller {
try {
$this->folderBusinessLayer->markDeleted($folderId, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch (BusinessLayerException $ex){
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -166,10 +184,22 @@ class FolderController extends Controller {
$params = array(
'folders' => array($folder)
);
- return $this->renderJSON($params);
-
+ return new JSONResponse($params);
+
+ } catch(BusinessLayerConflictException $ex) {
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_CONFLICT);
+
+ } catch(BusinessLayerValidationException $ex) {
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_UNPROCESSABLE_ENTITY);
+
} catch (BusinessLayerException $ex){
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -188,7 +218,7 @@ class FolderController extends Controller {
$params = array(
'feeds' => $this->feedBusinessLayer->findAll($userId)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -203,9 +233,11 @@ class FolderController extends Controller {
try {
$this->folderBusinessLayer->unmarkDeleted($folderId, $userId);
- return $this->renderJSON();
+ return new JSONResponse();
} catch (BusinessLayerException $ex){
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
diff --git a/controller/itemcontroller.php b/controller/itemcontroller.php
index a3f632e39..637c5fd49 100644
--- a/controller/itemcontroller.php
+++ b/controller/itemcontroller.php
@@ -28,6 +28,8 @@ namespace OCA\News\Controller;
use \OCA\AppFramework\Controller\Controller;
use \OCA\AppFramework\Core\API;
use \OCA\AppFramework\Http\Request;
+use \OCA\AppFramework\Http\JSONResponse;
+use \OCA\AppFramework\Http\Http;
use \OCA\News\BusinessLayer\BusinessLayerException;
use \OCA\News\BusinessLayer\ItemBusinessLayer;
@@ -85,7 +87,7 @@ class ItemController extends Controller {
// in that case just return an empty array
} catch(BusinessLayerException $ex) {}
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -114,7 +116,7 @@ class ItemController extends Controller {
// in that case just return an empty array
} catch(BusinessLayerException $ex) {}
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -135,9 +137,11 @@ class ItemController extends Controller {
public function star(){
try {
$this->setStarred(true);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -150,9 +154,11 @@ class ItemController extends Controller {
public function unstar(){
try {
$this->setStarred(false);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -173,9 +179,11 @@ class ItemController extends Controller {
public function read(){
try {
$this->setRead(true);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -188,9 +196,11 @@ class ItemController extends Controller {
public function unread(){
try {
$this->setRead(false);
- return $this->renderJSON();
+ return new JSONResponse();
} catch(BusinessLayerException $ex) {
- return $this->renderJSON(array(), $ex->getMessage());
+ return new JSONResponse(array(
+ 'msg' => $ex->getMessage()
+ ), Http::STATUS_NOT_FOUND);
}
}
@@ -209,7 +219,7 @@ class ItemController extends Controller {
$params = array(
'feeds' => $this->feedBusinessLayer->findAll($userId)
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
diff --git a/controller/usersettingscontroller.php b/controller/usersettingscontroller.php
index 9dd14fbf2..a34d5397e 100644
--- a/controller/usersettingscontroller.php
+++ b/controller/usersettingscontroller.php
@@ -28,7 +28,7 @@ namespace OCA\News\Controller;
use \OCA\AppFramework\Controller\Controller;
use \OCA\AppFramework\Core\API;
use \OCA\AppFramework\Http\Request;
-
+use \OCA\AppFramework\Http\JSONResponse;
class UserSettingsController extends Controller {
@@ -49,7 +49,7 @@ class UserSettingsController extends Controller {
'showAll' => $showAll === '1'
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -61,7 +61,7 @@ class UserSettingsController extends Controller {
public function show(){
$this->api->setUserValue('showAll', true);
- return $this->renderJSON();
+ return new JSONResponse();
}
@@ -73,7 +73,7 @@ class UserSettingsController extends Controller {
public function hide(){
$this->api->setUserValue('showAll', false);
- return $this->renderJSON();
+ return new JSONResponse();
}
@@ -88,7 +88,7 @@ class UserSettingsController extends Controller {
$params = array(
'language' => $language
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -102,7 +102,7 @@ class UserSettingsController extends Controller {
$params = array(
'compact' => $compact === '1'
);
- return $this->renderJSON($params);
+ return new JSONResponse($params);
}
@@ -115,7 +115,7 @@ class UserSettingsController extends Controller {
$isCompact = $this->params('compact');
$this->api->setUserValue('compact', $isCompact);
- return $this->renderJSON();
+ return new JSONResponse();
}
diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee
index a79dc1224..7aee915a2 100644
--- a/js/app/services/persistence.coffee
+++ b/js/app/services/persistence.coffee
@@ -82,7 +82,7 @@ $rootScope, $q) ->
# back up last change value in closure so we can compare it properly
do (lastChange, offset, loading, onSuccess) =>
successCallbackWrapper = (data) =>
- if data.data.items.length == 0 &&
+ if data.items.length == 0 &&
lastChange == @_lastFeedChange &&
offset != 0
@_preventUselessAutoPageRequest = true
diff --git a/js/public/app.js b/js/public/app.js
index 5982ab587..1b393b81f 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -2842,7 +2842,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
lastChange = this._lastFeedChange;
(function(lastChange, offset, loading, onSuccess) {
return successCallbackWrapper = function(data) {
- if (data.data.items.length === 0 && lastChange === _this._lastFeedChange && offset !== 0) {
+ if (data.items.length === 0 && lastChange === _this._lastFeedChange && offset !== 0) {
_this._preventUselessAutoPageRequest = true;
}
onSuccess(data);
diff --git a/js/tests/services/persistenceSpec.coffee b/js/tests/services/persistenceSpec.coffee
index fd84a1757..707c1e2fa 100644
--- a/js/tests/services/persistenceSpec.coffee
+++ b/js/tests/services/persistenceSpec.coffee
@@ -76,8 +76,7 @@ describe 'Persistence', ->
it 'should reset the autopage lock when loading a new feed', =>
data =
- data:
- items: []
+ items: []
called = 0
@req.get.andCallFake (route, params) ->
params.onSuccess(data)
diff --git a/tests/unit/controller/FeedControllerTest.php b/tests/unit/controller/FeedControllerTest.php
index 296f87b22..aa6756e99 100644
--- a/tests/unit/controller/FeedControllerTest.php
+++ b/tests/unit/controller/FeedControllerTest.php
@@ -27,6 +27,7 @@ namespace OCA\News\Controller;
use \OCA\AppFramework\Http\Request;
use \OCA\AppFramework\Http\JSONResponse;
+use \OCA\AppFramework\Http\Http;
use \OCA\AppFramework\Utility\ControllerTestUtility;
use \OCA\AppFramework\Db\DoesNotExistException;
use \OCA\AppFramework\Db\MultipleObjectsReturnedException;
@@ -34,7 +35,7 @@ use \OCA\AppFramework\Db\MultipleObjectsReturnedException;
use \OCA\News\Db\Feed;
use \OCA\News\Db\FeedType;
use \OCA\News\BusinessLayer\BusinessLayerException;
-
+use \OCA\News\BusinessLayer\BusinessLayerConflictException;
require_once(__DIR__ . "/../../classloader.php");
@@ -159,7 +160,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->feeds();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -190,7 +191,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->feeds();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -225,7 +226,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->active();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -249,7 +250,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->active();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -273,7 +274,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->active();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -292,7 +293,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->active();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -328,7 +329,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->create();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -364,7 +365,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->create();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -385,9 +386,31 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->create();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_UNPROCESSABLE_ENTITY);
+ }
+
+
+ public function testCreateReturnsErrorForDuplicateCreate(){
+ $msg = 'except';
+ $ex = new BusinessLayerConflictException($msg);
+ $this->api->expects($this->once())
+ ->method('getUserId')
+ ->will($this->returnValue($this->user));
+ $this->feedBusinessLayer->expects($this->once())
+ ->method('purgeDeleted')
+ ->with($this->equalTo($this->user), $this->equalTo(false));
+ $this->feedBusinessLayer->expects($this->once())
+ ->method('create')
+ ->will($this->throwException($ex));
+
+ $response = $this->controller->create();
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($msg, $params['msg']);
+ $this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_CONFLICT);
}
@@ -426,9 +449,9 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->delete();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -460,7 +483,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->update();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -488,8 +511,9 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->update();
$render = $response->render();
- $this->assertEquals('{"data":[],"status":"error","msg":"NO!"}', $render);
+ $this->assertEquals('{"msg":"NO!"}', $render);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -537,9 +561,9 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->move();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -567,6 +591,37 @@ class FeedControllerTest extends ControllerTestUtility {
}
+ public function testRenameDoesNotExist(){
+ $post = array(
+ 'feedTitle' => "New Feed Title"
+ );
+ $url = array(
+ 'feedId' => 4
+ );
+ $this->controller = $this->getPostController($post, $url);
+
+ $msg = 'hi';
+
+ $this->api->expects($this->once())
+ ->method('getUserId')
+ ->will($this->returnValue($this->user));
+ $this->feedBusinessLayer->expects($this->once())
+ ->method('rename')
+ ->with($this->equalTo($url['feedId']),
+ $this->equalTo($post['feedTitle']),
+ $this->equalTo($this->user))
+ ->will($this->throwException(new BusinessLayerException($msg)));
+
+ $response = $this->controller->rename();
+
+ $params = $response->getData();
+
+ $this->assertEquals($msg, $params['msg']);
+ $this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
+ }
+
+
public function testImportArticles() {
$feed = new Feed();
@@ -589,7 +644,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->importArticles();
- $this->assertEquals($expected, $response->getParams());
+ $this->assertEquals($expected, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -614,7 +669,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->importArticles();
- $this->assertEquals($expected, $response->getParams());
+ $this->assertEquals($expected, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -645,7 +700,7 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->read();
$this->assertTrue($response instanceof JSONResponse);
- $this->assertEquals($expected, $response->getParams());
+ $this->assertEquals($expected, $response->getData());
}
@@ -684,9 +739,9 @@ class FeedControllerTest extends ControllerTestUtility {
$response = $this->controller->restore();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
}
diff --git a/tests/unit/controller/FolderControllerTest.php b/tests/unit/controller/FolderControllerTest.php
index e4295583b..bcfa61c67 100644
--- a/tests/unit/controller/FolderControllerTest.php
+++ b/tests/unit/controller/FolderControllerTest.php
@@ -30,11 +30,13 @@ use \OCA\AppFramework\Http\JSONResponse;
use \OCA\AppFramework\Utility\ControllerTestUtility;
use \OCA\AppFramework\Db\DoesNotExistException;
use \OCA\AppFramework\Db\MultipleObjectsReturnedException;
+use \OCA\AppFramework\Http\Http;
use \OCA\News\Db\Folder;
use \OCA\News\Db\Feed;
use \OCA\News\BusinessLayer\BusinessLayerException;
use \OCA\News\BusinessLayer\BusinessLayerConflictException;
+use \OCA\News\BusinessLayer\BusinessLayerValidationException;
require_once(__DIR__ . "/../../classloader.php");
@@ -145,7 +147,7 @@ class FolderControllerTest extends ControllerTestUtility {
$expected = array(
'folders' => $return
);
- $this->assertEquals($expected, $response->getParams());
+ $this->assertEquals($expected, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
@@ -183,9 +185,9 @@ class FolderControllerTest extends ControllerTestUtility {
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($this->msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -222,9 +224,9 @@ class FolderControllerTest extends ControllerTestUtility {
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($this->msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -249,13 +251,35 @@ class FolderControllerTest extends ControllerTestUtility {
$response = $this->controller->create();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
public function testCreateReturnsErrorForInvalidCreate(){
$msg = 'except';
+ $ex = new BusinessLayerValidationException($msg);
+ $this->api->expects($this->once())
+ ->method('getUserId')
+ ->will($this->returnValue($this->user));
+ $this->folderBusinessLayer->expects($this->once())
+ ->method('purgeDeleted')
+ ->with($this->equalTo($this->user), $this->equalTo(false));
+ $this->folderBusinessLayer->expects($this->once())
+ ->method('create')
+ ->will($this->throwException($ex));
+
+ $response = $this->controller->create();
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_UNPROCESSABLE_ENTITY);
+ $this->assertEquals($msg, $params['msg']);
+ $this->assertTrue($response instanceof JSONResponse);
+ }
+
+
+ public function testCreateReturnsErrorForDuplicateCreate(){
+ $msg = 'except';
$ex = new BusinessLayerConflictException($msg);
$this->api->expects($this->once())
->method('getUserId')
@@ -270,7 +294,7 @@ class FolderControllerTest extends ControllerTestUtility {
$response = $this->controller->create();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
+ $this->assertEquals($response->getStatus(), Http::STATUS_CONFLICT);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
}
@@ -309,9 +333,9 @@ class FolderControllerTest extends ControllerTestUtility {
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
$this->assertEquals($this->msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
}
@@ -335,13 +359,45 @@ class FolderControllerTest extends ControllerTestUtility {
$response = $this->controller->rename();
- $this->assertEquals($result, $response->getParams());
+ $this->assertEquals($result, $response->getData());
$this->assertTrue($response instanceof JSONResponse);
}
public function testRenameReturnsErrorForInvalidCreate(){
$msg = 'except';
+ $ex = new BusinessLayerValidationException($msg);
+ $this->folderBusinessLayer->expects($this->once())
+ ->method('rename')
+ ->will($this->throwException($ex));
+
+ $response = $this->controller->rename();
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_UNPROCESSABLE_ENTITY);
+ $this->assertEquals($msg, $params['msg']);
+ $this->assertTrue($response instanceof JSONResponse);
+ }
+
+
+ public function testRenameDoesNotExist(){
+ $msg = 'except';
+ $ex = new BusinessLayerException($msg);
+ $this->folderBusinessLayer->expects($this->once())
+ ->method('rename')
+ ->will($this->throwException($ex));
+
+ $response = $this->controller->rename();
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
+ $this->assertEquals($msg, $params['msg']);
+ $this->assertTrue($response instanceof JSONResponse);
+ }
+
+
+ public function testRenameReturnsErrorForDuplicateCreate(){
+ $msg = 'except';
$ex = new BusinessLayerConflictException($msg);
$this->folderBusinessLayer->expects($this->once())
->method('rename')
@@ -350,11 +406,12 @@ class FolderControllerTest extends ControllerTestUtility {
$response = $this->controller->rename();
$params = json_decode($response->render(), true);
- $this->assertEquals('error', $params['status']);
+ $this->assertEquals($response->getStatus(), Http::STATUS_CONFLICT);
$this->assertEquals($msg, $params['msg']);
$this->assertTrue($response instanceof JSONResponse);
}
+
public function testRead(){
$feed = new Feed();
@@ -384,7 +441,7 @@ class FolderControllerTest extends ControllerTestUtility {
$response = $this-&g