diff options
author | Herbert Reiter <46045854+damoasda@users.noreply.github.com> | 2021-01-02 16:53:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-02 16:53:39 +0100 |
commit | a52beda1f1b533fb4cd5ee6b1383824ecf1dcda5 (patch) | |
tree | a2da19e7687bc2f0b1e7e596eb61591921adfe4b /core/src/test | |
parent | 0b715d549483840de1f12c07892904092c49c3e9 (diff) | |
download | AntennaPod-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.java | 126 | ||||
-rw-r--r-- | core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java | 45 |
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 |