summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-05-24 17:15:51 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-05-24 17:15:51 +0200
commit242555e659d4c03f46bc95a7437456718f1b6706 (patch)
treeaf4086281cb0ed4b76964690eeb15f9e20c8525c
parent37b48d2aef2b82db461c8227b78e01c5cdd8e9c1 (diff)
fixed a bug when deleting folders
-rw-r--r--CHANGELOG3
-rw-r--r--appinfo/info.xml2
-rw-r--r--appinfo/version2
-rw-r--r--db/foldermapper.php11
-rw-r--r--tests/unit/db/FolderMapperTest.php15
5 files changed, 24 insertions, 9 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f7ae91716..245d07e07 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+ownCloud-news (0.103)
+* Fixed a bug that prevented deleting feeds when a folder was deleted
+
ownCloud-news (0.102)
* Fix marking read of all articles and folders on mysql and postgres
* Fix bug that would still show items after its feed or folder has been marked as deleted
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 03ad42716..83b537c41 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -5,6 +5,6 @@
<description>An RSS/Atom feed reader. Requires the App Framework app and backgroundjobs need to be enabled. See the README.rst in the apps top directory</description>
<licence>AGPL</licence>
<author>Alessandro Cosentino, Bernhard Posselt, Jan-Christoph Borchardt. Powered by SimplePie (Ryan Parman, Geoffrey Sneddon, Ryan McCue and contributors).</author>
- <version>0.102</version>
+ <version>0.103</version>
<require>5.0.6</require>
</info>
diff --git a/appinfo/version b/appinfo/version
index ef975df47..b94f26bf5 100644
--- a/appinfo/version
+++ b/appinfo/version
@@ -1 +1 @@
-0.102 \ No newline at end of file
+0.103 \ No newline at end of file
diff --git a/db/foldermapper.php b/db/foldermapper.php
index c2a44dc20..ceb70f18c 100644
--- a/db/foldermapper.php
+++ b/db/foldermapper.php
@@ -88,12 +88,15 @@ class FolderMapper extends Mapper implements IMapper {
// someone please slap me for doing this manually :P
// we needz CASCADE + FKs please
- $sql = 'DELETE FROM `*PREFIX*news_feeds` WHERE `folder_id` = ?; '.
- 'DELETE `items` FROM `*PREFIX*news_items` `items` '.
- 'LEFT JOIN `*PREFIX*news_feeds` `feeds` ON '.
- '`items`.`feed_id` = `feed`.`id` WHERE `feeds`.`id` IS NULL;';
+ $sql = 'DELETE FROM `*PREFIX*news_feeds` WHERE `folder_id` = ?';
$params = array($entity->getId());
$this->execute($sql, $params);
+
+ $sql = 'DELETE `items` FROM `*PREFIX*news_items` `items` '.
+ 'LEFT JOIN `*PREFIX*news_feeds` `feeds` ON '.
+ '`items`.`feed_id` = `feeds`.`id` WHERE `feeds`.`id` IS NULL';
+
+ $this->execute($sql);
}
diff --git a/tests/unit/db/FolderMapperTest.php b/tests/unit/db/FolderMapperTest.php
index d31a014a6..d065b9cbc 100644
--- a/tests/unit/db/FolderMapperTest.php
+++ b/tests/unit/db/FolderMapperTest.php
@@ -144,10 +144,11 @@ class FolderMapperTest extends \OCA\AppFramework\Utility\MapperTestUtility {
$sql = 'DELETE FROM `*PREFIX*news_folders` WHERE `id` = ?';
$arguments = array($folder->getId());
- $sql2 = 'DELETE FROM `*PREFIX*news_feeds` WHERE `folder_id` = ?; '.
- 'DELETE `items` FROM `*PREFIX*news_items` `items` '.
+ $sql2 = 'DELETE FROM `*PREFIX*news_feeds` WHERE `folder_id` = ?';
+
+ $sql3 = 'DELETE `items` FROM `*PREFIX*news_items` `items` '.
'LEFT JOIN `*PREFIX*news_feeds` `feeds` ON '.
- '`items`.`feed_id` = `feed`.`id` WHERE `feeds`.`id` IS NULL;';
+ '`items`.`feed_id` = `feeds`.`id` WHERE `feeds`.`id` IS NULL';
$arguments2 = array($folder->getId());
$pdoResult = $this->getMock('Result',
@@ -175,6 +176,14 @@ class FolderMapperTest extends \OCA\AppFramework\Utility\MapperTestUtility {
->with($this->equalTo($sql2))
->will(($this->returnValue($query)));
+ $query->expects($this->at(2))
+ ->method('execute')
+ ->will($this->returnValue($pdoResult));
+ $this->api->expects($this->at(2))
+ ->method('prepareQuery')
+ ->with($this->equalTo($sql3))
+ ->will(($this->returnValue($query)));
+
$this->folderMapper->delete($folder);
}