summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-12-03 10:40:41 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2014-12-03 10:40:41 +0100
commit8e74fa253deea78486df2324071c94654bdca503 (patch)
treed4d7a0680d540028f2170fa8f4ecc277fe6076d3 /tests
parent1c7837c7cc324e11966bcebb9f5ca61ae29519a9 (diff)
Make expand entries in compact view after jumping to next/previous feed optional with a setting
Diffstat (limited to 'tests')
-rw-r--r--tests/classloader.php3
-rw-r--r--tests/unit/controller/PageControllerTest.php22
-rw-r--r--tests/unit/db/FeedMapperTest.php2
-rw-r--r--tests/unit/db/FolderMapperTest.php2
-rw-r--r--tests/unit/db/ItemMapperTest.php2
-rw-r--r--tests/unit/db/mappertestutility.php179
-rw-r--r--tests/unit/db/mysql/ItemMapperTest.php2
7 files changed, 204 insertions, 8 deletions
diff --git a/tests/classloader.php b/tests/classloader.php
index 648b7432d..2a46091e7 100644
--- a/tests/classloader.php
+++ b/tests/classloader.php
@@ -13,9 +13,6 @@
require_once __DIR__ . '/../appinfo/autoload.php';
-require_once
- __DIR__ . '/../../../tests/lib/appframework/db/mappertestutility.php';
-
// to execute without owncloud, we need to create our own classloader
spl_autoload_register(function ($className){
if (strpos($className, 'OCA\\') === 0) {
diff --git a/tests/unit/controller/PageControllerTest.php b/tests/unit/controller/PageControllerTest.php
index ee138fded..fd548df62 100644
--- a/tests/unit/controller/PageControllerTest.php
+++ b/tests/unit/controller/PageControllerTest.php
@@ -142,6 +142,7 @@ class PageControllerTest extends \PHPUnit_Framework_TestCase {
'compact' => true,
'preventReadOnScroll' => true,
'oldestFirst' => true,
+ 'compactExpand' => true,
'language' => 'de',
'exploreUrl' => 'test'
]
@@ -174,6 +175,12 @@ class PageControllerTest extends \PHPUnit_Framework_TestCase {
$this->equalTo($this->appName),
$this->equalTo('oldestFirst'))
->will($this->returnValue('1'));
+ $this->settings->expects($this->at(4))
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('compactExpand'))
+ ->will($this->returnValue('1'));
$this->config->expects($this->once())
->method('getExploreUrl')
->will($this->returnValue(' '));
@@ -196,6 +203,7 @@ class PageControllerTest extends \PHPUnit_Framework_TestCase {
'preventReadOnScroll' => true,
'oldestFirst' => true,
'language' => 'de',
+ 'compactExpand' => true,
'exploreUrl' => 'abc'
]
];
@@ -227,6 +235,12 @@ class PageControllerTest extends \PHPUnit_Framework_TestCase {
$this->equalTo($this->appName),
$this->equalTo('oldestFirst'))
->will($this->returnValue('1'));
+ $this->settings->expects($this->at(4))
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('compactExpand'))
+ ->will($this->returnValue('1'));
$this->config->expects($this->once())
->method('getExploreUrl')
->will($this->returnValue('abc'));
@@ -263,7 +277,13 @@ class PageControllerTest extends \PHPUnit_Framework_TestCase {
$this->equalTo($this->appName),
$this->equalTo('oldestFirst'),
$this->equalTo(true));
- $this->controller->updateSettings(true, true, false, true);
+ $this->settings->expects($this->at(4))
+ ->method('setUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('compactExpand'),
+ $this->equalTo(true));
+ $this->controller->updateSettings(true, true, false, true, true);
}
diff --git a/tests/unit/db/FeedMapperTest.php b/tests/unit/db/FeedMapperTest.php
index 9bbce1ab0..2d1626ad7 100644
--- a/tests/unit/db/FeedMapperTest.php
+++ b/tests/unit/db/FeedMapperTest.php
@@ -14,7 +14,7 @@
namespace OCA\News\Db;
-class FeedMapperTest extends \Test\AppFramework\Db\MapperTestUtility {
+class FeedMapperTest extends \OCA\News\Tests\Unit\Db\MapperTestUtility {
private $mapper;
private $feeds;
diff --git a/tests/unit/db/FolderMapperTest.php b/tests/unit/db/FolderMapperTest.php
index 87f9e617c..e9df37195 100644
--- a/tests/unit/db/FolderMapperTest.php
+++ b/tests/unit/db/FolderMapperTest.php
@@ -14,7 +14,7 @@
namespace OCA\News\Db;
-class FolderMapperTest extends \Test\AppFramework\Db\MapperTestUtility {
+class FolderMapperTest extends \OCA\News\Tests\Unit\Db\MapperTestUtility {
private $folderMapper;
private $folders;
diff --git a/tests/unit/db/ItemMapperTest.php b/tests/unit/db/ItemMapperTest.php
index a4e3fe919..26c9074dd 100644
--- a/tests/unit/db/ItemMapperTest.php
+++ b/tests/unit/db/ItemMapperTest.php
@@ -14,7 +14,7 @@
namespace OCA\News\Db;
-class ItemMapperTest extends \Test\AppFramework\Db\MapperTestUtility {
+class ItemMapperTest extends \OCA\News\Tests\Unit\Db\MapperTestUtility {
private $mapper;
private $items;
diff --git a/tests/unit/db/mappertestutility.php b/tests/unit/db/mappertestutility.php
new file mode 100644
index 000000000..a612f2f14
--- /dev/null
+++ b/tests/unit/db/mappertestutility.php
@@ -0,0 +1,179 @@
+<?php
+
+/**
+ * ownCloud - App Framework
+ *
+ * @author Bernhard Posselt
+ * @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\Tests\Unit\Db;
+
+
+/**
+ * Simple utility class for testing mappers
+ */
+abstract class MapperTestUtility extends \PHPUnit_Framework_TestCase {
+ protected $db;
+ private $query;
+ private $pdoResult;
+ private $queryAt;
+ private $prepareAt;
+ private $fetchAt;
+ private $iterators;
+
+
+ /**
+ * Run this function before the actual test to either set or initialize the
+ * db. After this the db can be accessed by using $this->db
+ */
+ protected function setUp(){
+ parent::setUp();
+
+ $this->db = $this->getMockBuilder(
+ '\OCP\IDb')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->query = $this->getMock('Query', array('execute', 'bindValue'));
+ $this->pdoResult = $this->getMock('Result', array('fetch'));
+ $this->queryAt = 0;
+ $this->prepareAt = 0;
+ $this->iterators = array();
+ $this->fetchAt = 0;
+ }
+
+
+ /**
+ * Create mocks and set expected results for database queries
+ * @param string $sql the sql query that you expect to receive
+ * @param array $arguments the expected arguments for the prepare query
+ * method
+ * @param array $returnRows the rows that should be returned for the result
+ * of the database query. If not provided, it wont be assumed that fetch
+ * will be called on the result
+ */
+ protected function setMapperResult($sql, $arguments=array(), $returnRows=array(),
+ $limit=null, $offset=null){
+
+ $this->iterators[] = new ArgumentIterator($returnRows);
+
+ $iterators = $this->iterators;
+ $fetchAt = $this->fetchAt;
+
+ $this->pdoResult->expects($this->any())
+ ->method('fetch')
+ ->will($this->returnCallback(
+ function() use ($iterators, $fetchAt){
+ $iterator = $iterators[$fetchAt];
+ $result = $iterator->next();
+
+ if($result === false) {
+ $fetchAt++;
+ }
+
+ return $result;
+ }
+ ));
+
+ $index = 1;
+ foreach($arguments as $argument) {
+ switch (gettype($argument)) {
+ case 'integer':
+ $pdoConstant = \PDO::PARAM_INT;
+ break;
+
+ case 'NULL':
+ $pdoConstant = \PDO::PARAM_NULL;
+ break;
+
+ case 'boolean':
+ $pdoConstant = \PDO::PARAM_BOOL;
+ break;
+
+ default:
+ $pdoConstant = \PDO::PARAM_STR;
+ break;
+ }
+ $this->query->expects($this->at($this->queryAt))
+ ->method('bindValue')
+ ->with($this->equalTo($index),
+ $this->equalTo($argument),
+ $this->equalTo($pdoConstant));
+ $index++;
+ $this->queryAt++;
+ }
+
+ $this->query->expects($this->at($this->queryAt))
+ ->method('execute')
+ ->with()
+ ->will($this->returnValue($this->pdoResult));
+ $this->queryAt++;
+
+ if($limit === null && $offset === null) {
+ $this->db->expects($this->at($this->prepareAt))
+ ->method('prepareQuery')
+ ->with($this->equalTo($sql))
+ ->will(($this->returnValue($this->query)));
+ } elseif($limit !== null && $offset === null) {
+ $this->db->expects($this->at($this->prepareAt))
+ ->method('prepareQuery')
+ ->with($this->equalTo($sql), $this->equalTo($limit))
+ ->will(($this->returnValue($this->query)));
+ } elseif($limit === null && $offset !== null) {
+ $this->db->expects($this->at($this->prepareAt))
+ ->method('prepareQuery')
+ ->with($this->equalTo($sql),
+ $this->equalTo(null),
+ $this->equalTo($offset))
+ ->will(($this->returnValue($this->query)));
+ } else {
+ $this->db->expects($this->at($this->prepareAt))
+ ->method('prepareQuery')
+ ->with($this->equalTo($sql),
+ $this->equalTo($limit),
+ $this->equalTo($offset))
+ ->will(($this->returnValue($this->query)));
+ }
+ $this->prepareAt++;
+ $this->fetchAt++;
+
+ }
+
+
+}
+
+
+class ArgumentIterator {
+
+ private $arguments;
+
+ public function __construct($arguments){
+ $this->arguments = $arguments;
+ }
+
+ public function next(){
+ $result = array_shift($this->arguments);
+ if($result === null){
+ return false;
+ } else {
+ return $result;
+ }
+ }
+}
+
diff --git a/tests/unit/db/mysql/ItemMapperTest.php b/tests/unit/db/mysql/ItemMapperTest.php
index 84c9f5dc3..3c091341a 100644
--- a/tests/unit/db/mysql/ItemMapperTest.php
+++ b/tests/unit/db/mysql/ItemMapperTest.php
@@ -17,7 +17,7 @@ use \OCA\News\Db\Item;
use \OCA\News\Db\StatusFlag;
-class ItemMapperTest extends \Test\AppFramework\Db\MapperTestUtility {
+class ItemMapperTest extends \OCA\News\Tests\Unit\Db\MapperTestUtility {
private $mapper;
private $items;