summaryrefslogtreecommitdiff
path: root/core/src/test
diff options
context:
space:
mode:
authorHerbert Reiter <46045854+damoasda@users.noreply.github.com>2021-01-02 16:53:39 +0100
committerGitHub <noreply@github.com>2021-01-02 16:53:39 +0100
commita52beda1f1b533fb4cd5ee6b1383824ecf1dcda5 (patch)
treea2da19e7687bc2f0b1e7e596eb61591921adfe4b /core/src/test
parent0b715d549483840de1f12c07892904092c49c3e9 (diff)
downloadAntennaPod-a52beda1f1b533fb4cd5ee6b1383824ecf1dcda5.zip
Run FeedFilterTest and FeedItemTest without Android emulator (#4807)
Diffstat (limited to 'core/src/test')
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedFilterTest.java126
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java45
2 files changed, 168 insertions, 3 deletions
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedFilterTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedFilterTest.java
new file mode 100644
index 000000000..8b4a13473
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedFilterTest.java
@@ -0,0 +1,126 @@
+package de.danoeh.antennapod.core.feed;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class FeedFilterTest {
+
+ @Test
+ public void testNullFilter() {
+ FeedFilter filter = new FeedFilter();
+ FeedItem item = new FeedItem();
+ item.setTitle("Hello world");
+
+ assertFalse(filter.excludeOnly());
+ assertFalse(filter.includeOnly());
+ assertEquals("", filter.getExcludeFilter());
+ assertEquals("", filter.getIncludeFilter());
+ assertTrue(filter.shouldAutoDownload(item));
+ }
+
+ @Test
+ public void testBasicIncludeFilter() {
+ String includeFilter = "Hello";
+ FeedFilter filter = new FeedFilter(includeFilter, "");
+ FeedItem item = new FeedItem();
+ item.setTitle("Hello world");
+
+ FeedItem item2 = new FeedItem();
+ item2.setTitle("Don't include me");
+
+ assertFalse(filter.excludeOnly());
+ assertTrue(filter.includeOnly());
+ assertEquals("", filter.getExcludeFilter());
+ assertEquals(includeFilter, filter.getIncludeFilter());
+ assertTrue(filter.shouldAutoDownload(item));
+ assertFalse(filter.shouldAutoDownload(item2));
+ }
+
+ @Test
+ public void testBasicExcludeFilter() {
+ String excludeFilter = "Hello";
+ FeedFilter filter = new FeedFilter("", excludeFilter);
+ FeedItem item = new FeedItem();
+ item.setTitle("Hello world");
+
+ FeedItem item2 = new FeedItem();
+ item2.setTitle("Item2");
+
+ assertTrue(filter.excludeOnly());
+ assertFalse(filter.includeOnly());
+ assertEquals(excludeFilter, filter.getExcludeFilter());
+ assertEquals("", filter.getIncludeFilter());
+ assertFalse(filter.shouldAutoDownload(item));
+ assertTrue(filter.shouldAutoDownload(item2));
+ }
+
+ @Test
+ public void testComplexIncludeFilter() {
+ String includeFilter = "Hello \n\"Two words\"";
+ FeedFilter filter = new FeedFilter(includeFilter, "");
+ FeedItem item = new FeedItem();
+ item.setTitle("hello world");
+
+ FeedItem item2 = new FeedItem();
+ item2.setTitle("Two three words");
+
+ FeedItem item3 = new FeedItem();
+ item3.setTitle("One two words");
+
+ assertFalse(filter.excludeOnly());
+ assertTrue(filter.includeOnly());
+ assertEquals("", filter.getExcludeFilter());
+ assertEquals(includeFilter, filter.getIncludeFilter());
+ assertTrue(filter.shouldAutoDownload(item));
+ assertFalse(filter.shouldAutoDownload(item2));
+ assertTrue(filter.shouldAutoDownload(item3));
+ }
+
+ @Test
+ public void testComplexExcludeFilter() {
+ String excludeFilter = "Hello \"Two words\"";
+ FeedFilter filter = new FeedFilter("", excludeFilter);
+ FeedItem item = new FeedItem();
+ item.setTitle("hello world");
+
+ FeedItem item2 = new FeedItem();
+ item2.setTitle("One three words");
+
+ FeedItem item3 = new FeedItem();
+ item3.setTitle("One two words");
+
+ assertTrue(filter.excludeOnly());
+ assertFalse(filter.includeOnly());
+ assertEquals(excludeFilter, filter.getExcludeFilter());
+ assertEquals("", filter.getIncludeFilter());
+ assertFalse(filter.shouldAutoDownload(item));
+ assertTrue(filter.shouldAutoDownload(item2));
+ assertFalse(filter.shouldAutoDownload(item3));
+ }
+
+ @Test
+ public void testComboFilter() {
+ String includeFilter = "Hello world";
+ String excludeFilter = "dislike";
+ FeedFilter filter = new FeedFilter(includeFilter, excludeFilter);
+
+ FeedItem download = new FeedItem();
+ download.setTitle("Hello everyone!");
+ // because, while it has words from the include filter it also has exclude words
+ FeedItem doNotDownload = new FeedItem();
+ doNotDownload.setTitle("I dislike the world");
+ // because it has no words from the include filter
+ FeedItem doNotDownload2 = new FeedItem();
+ doNotDownload2.setTitle("no words to include");
+
+ assertTrue(filter.hasExcludeFilter());
+ assertTrue(filter.hasIncludeFilter());
+ assertTrue(filter.shouldAutoDownload(download));
+ assertFalse(filter.shouldAutoDownload(doNotDownload));
+ assertFalse(filter.shouldAutoDownload(doNotDownload2));
+ }
+
+}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java
index 6bd753561..5bcbed97a 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java
@@ -2,16 +2,23 @@ package de.danoeh.antennapod.core.feed;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
import java.text.SimpleDateFormat;
import java.util.Date;
+import de.danoeh.antennapod.core.storage.DBReader;
+
import static de.danoeh.antennapod.core.feed.FeedItemMother.anyFeedItemWithImage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
public class FeedItemTest {
+ private static final String TEXT_LONG = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
+ private static final String TEXT_SHORT = "Lorem ipsum";
+
private FeedItem original;
private FeedItem changedFeedItem;
@@ -22,21 +29,21 @@ public class FeedItemTest {
}
@Test
- public void testUpdateFromOther_feedItemImageDownloadUrlChanged() throws Exception {
+ public void testUpdateFromOther_feedItemImageDownloadUrlChanged() {
setNewFeedItemImageDownloadUrl();
original.updateFromOther(changedFeedItem);
assertFeedItemImageWasUpdated();
}
@Test
- public void testUpdateFromOther_feedItemImageRemoved() throws Exception {
+ public void testUpdateFromOther_feedItemImageRemoved() {
feedItemImageRemoved();
original.updateFromOther(changedFeedItem);
assertFeedItemImageWasNotUpdated();
}
@Test
- public void testUpdateFromOther_feedItemImageAdded() throws Exception {
+ public void testUpdateFromOther_feedItemImageAdded() {
original.setImageUrl(null);
setNewFeedItemImageDownloadUrl();
original.updateFromOther(changedFeedItem);
@@ -102,4 +109,36 @@ public class FeedItemTest {
assertEquals(anyFeedItemWithImage().getImageUrl(), original.getImageUrl());
}
+ /**
+ * If one of `description` or `content:encoded` is null, use the other one.
+ */
+ @Test
+ public void testShownotesNullValues() throws Exception {
+ testShownotes(null, TEXT_LONG);
+ testShownotes(TEXT_LONG, null);
+ }
+
+ /**
+ * If `description` is reasonably longer than `content:encoded`, use `description`.
+ */
+ @Test
+ public void testShownotesLength() throws Exception {
+ testShownotes(TEXT_SHORT, TEXT_LONG);
+ testShownotes(TEXT_LONG, TEXT_SHORT);
+ }
+
+ /**
+ * Checks if the shownotes equal TEXT_LONG, using the given `description` and `content:encoded`.
+ *
+ * @param description Description of the feed item
+ * @param contentEncoded `content:encoded` of the feed item
+ */
+ private void testShownotes(String description, String contentEncoded) throws Exception {
+ try (MockedStatic<DBReader> ignore = Mockito.mockStatic(DBReader.class)) {
+ FeedItem item = new FeedItem();
+ item.setDescription(description);
+ item.setContentEncoded(contentEncoded);
+ assertEquals(TEXT_LONG, item.loadShownotes().call());
+ }
+ }
} \ No newline at end of file