summaryrefslogtreecommitdiff
path: root/core/src/test
diff options
context:
space:
mode:
authorTony Tam <149837+tonytamsf@users.noreply.github.com>2021-07-11 00:58:54 -0700
committerGitHub <noreply@github.com>2021-07-11 09:58:54 +0200
commit81ea42a2a46fea1f633bc34352fde02f4c412f7c (patch)
treef01a46798f7709f34b3756a175c0609b959d16da /core/src/test
parentb4558efe4abe2b0b55963c4585bf413af72e2699 (diff)
downloadAntennaPod-81ea42a2a46fea1f633bc34352fde02f4c412f7c.zip
Dedup based on item unique id, media url or title (#4839)
Diffstat (limited to 'core/src/test')
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbCleanupTests.java2
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbNullCleanupAlgorithmTest.java2
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbTasksTest.java34
3 files changed, 35 insertions, 3 deletions
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbCleanupTests.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbCleanupTests.java
index 1c4c92574..b5c2e5c73 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbCleanupTests.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbCleanupTests.java
@@ -134,7 +134,7 @@ public class DbCleanupTests {
if (itemState == FeedItem.PLAYED) {
playbackCompletionDate = itemDate;
}
- FeedItem item = new FeedItem(0, "title", "id", "link", itemDate, itemState, feed);
+ FeedItem item = new FeedItem(0, "title", "id" + i, "link", itemDate, itemState, feed);
File f = new File(destFolder, "file " + i);
assertTrue(f.createNewFile());
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbNullCleanupAlgorithmTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbNullCleanupAlgorithmTest.java
index 733318724..6485c9515 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbNullCleanupAlgorithmTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbNullCleanupAlgorithmTest.java
@@ -92,7 +92,7 @@ public class DbNullCleanupAlgorithmTest {
feed.setItems(items);
List<File> files = new ArrayList<>();
for (int i = 0; i < numItems; i++) {
- FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
+ FeedItem item = new FeedItem(0, "title", "id" + i, "link", new Date(), FeedItem.PLAYED, feed);
File f = new File(destFolder, "file " + i);
assertTrue(f.createNewFile());
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbTasksTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbTasksTest.java
index 9e3dca0f7..0d98ba294 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbTasksTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbTasksTest.java
@@ -197,6 +197,38 @@ public class DbTasksTest {
assertEquals(8, feedFromDB.getItems().size()); // 10 - 2 = 8 items
}
+ @Test
+ public void testUpdateFeedSetDuplicate() {
+ final Feed feed = new Feed("url", null, "title");
+ feed.setItems(new ArrayList<>());
+ for (int i = 0; i < 10; i++) {
+ FeedItem item =
+ new FeedItem(0, "item " + i, "id " + i, "link " + i, new Date(i), FeedItem.PLAYED, feed);
+ FeedMedia media = new FeedMedia(item, "download url " + i, 123, "media/mp3");
+ item.setMedia(media);
+ feed.getItems().add(item);
+ }
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
+ adapter.open();
+ adapter.setCompleteFeed(feed);
+ adapter.close();
+
+ // change the guid of the first item, but leave the download url the same
+ FeedItem item = feed.getItemAtIndex(0);
+ item.setItemIdentifier("id 0-duplicate");
+ item.setTitle("item 0 duplicate");
+ Feed newFeed = DBTasks.updateFeed(context, feed, false);
+ assertEquals(10, newFeed.getItems().size()); // id 1-duplicate replaces because the stream url is the same
+
+ Feed feedFromDB = DBReader.getFeed(newFeed.getId());
+ assertEquals(10, feedFromDB.getItems().size()); // id1-duplicate should override id 1
+
+ FeedItem updatedItem = feedFromDB.getItemAtIndex(9);
+ assertEquals("item 0 duplicate", updatedItem.getTitle());
+ assertEquals("id 0-duplicate", updatedItem.getItemIdentifier()); // Should use the new ID for sync etc
+ }
+
+
@SuppressWarnings("SameParameterValue")
private void updatedFeedTest(final Feed newFeed, long feedID, List<Long> itemIDs,
int numItemsOld, int numItemsNew) {
@@ -285,7 +317,7 @@ public class DbTasksTest {
if (numFeedItems > 0) {
List<FeedItem> items = new ArrayList<>(numFeedItems);
for (int i = 1; i <= numFeedItems; i++) {
- FeedItem item = new FeedItem(0, "item " + i + " of " + title, "id", "link",
+ FeedItem item = new FeedItem(0, "item " + i + " of " + title, "id" + title + i, "link",
new Date(), FeedItem.UNPLAYED, feed);
items.add(item);
}