From 05d38a2b745b49b2fb2f11537a18fcd37b9eba55 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Tue, 6 Aug 2013 14:11:03 +0200 Subject: use a default batchsize of 20 if none given, fix #220 --- CHANGELOG | 1 + external/itemapi.php | 2 +- tests/unit/external/ItemAPITest.php | 39 +++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 2a3bbd7c2..6b243c31a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,6 +6,7 @@ owncloud-news (1.203) * Make it possible to turn off cron updates * Strip all HTML tags from the author and title * Sanitize urls on the server side to prevent clients from being affected by XSS +* Use a default batch value for the API ownCloud-news (1.202) * Fixed a bug in the API routes that would request an uneeded id when creating a feed diff --git a/external/itemapi.php b/external/itemapi.php index 83aa0f4da..0477f3a19 100644 --- a/external/itemapi.php +++ b/external/itemapi.php @@ -60,7 +60,7 @@ class ItemAPI extends Controller { ); $userId = $this->api->getUserId(); - $batchSize = (int) $this->params('batchSize'); + $batchSize = (int) $this->params('batchSize', 20); $offset = (int) $this->params('offset', 0); $type = (int) $this->params('type'); $id = (int) $this->params('id'); diff --git a/tests/unit/external/ItemAPITest.php b/tests/unit/external/ItemAPITest.php index ee5f22c2d..6bc5128c7 100644 --- a/tests/unit/external/ItemAPITest.php +++ b/tests/unit/external/ItemAPITest.php @@ -170,6 +170,45 @@ class ItemAPITest extends ControllerTestUtility { } + public function testGetAllDefaultBatchSize() { + $items = array( + new Item() + ); + $request = new Request(array('params' => array( + 'offset' => 20, + 'type' => 1, + 'id' => 2, + 'getRead' => 'false' + ))); + $this->itemAPI = new ItemAPI( + $this->api, + $request, + $this->itemBusinessLayer + ); + + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + $this->itemBusinessLayer->expects($this->once()) + ->method('findAll') + ->with( + $this->equalTo(2), + $this->equalTo(1), + $this->equalTo(20), + $this->equalTo(20), + $this->equalTo(false), + $this->equalTo($this->user) + ) + ->will($this->returnValue($items)); + + $response = $this->itemAPI->getAll(); + + $this->assertEquals(array( + 'items' => array($items[0]->toAPI()) + ), $response->getData()); + } + + public function testGetUpdated() { $items = array( new Item() -- cgit v1.2.3