From c9eb790d1c80ae49454cebf2fffa743d20bfe712 Mon Sep 17 00:00:00 2001 From: Coffeemakr Date: Sat, 25 Nov 2017 03:13:26 +0100 Subject: [PATCH] Some tests extension --- .../newpipe/extractor/ExtractorAsserts.java | 14 ++++++++ .../youtube/YoutubeChannelExtractorTest.java | 11 ++++--- .../youtube/YoutubePlaylistExtractorTest.java | 32 +++++++++++++++---- .../YoutubeStreamExtractorRestrictedTest.java | 2 +- 4 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java diff --git a/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java b/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java new file mode 100644 index 000000000..140fbaf86 --- /dev/null +++ b/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java @@ -0,0 +1,14 @@ +package org.schabi.newpipe.extractor; + +import java.util.List; + +public class ExtractorAsserts { + public static void assertEmptyErrors(String message, List errors) { + if(!errors.isEmpty()) { + for (Throwable throwable : errors) { + message += "\n * " + throwable.getMessage(); + } + throw new AssertionError(message, errors.get(0)); + } + } +} diff --git a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java index b57f61bad..df8515ca6 100644 --- a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java +++ b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java @@ -7,7 +7,10 @@ import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.channel.ChannelExtractor; +import java.util.List; + import static org.junit.Assert.*; +import static org.schabi.newpipe.extractor.ExtractorAsserts.assertEmptyErrors; import static org.schabi.newpipe.extractor.ServiceList.YouTube; /* @@ -35,12 +38,12 @@ import static org.schabi.newpipe.extractor.ServiceList.YouTube; */ public class YoutubeChannelExtractorTest { - ChannelExtractor extractor; + YoutubeChannelExtractor extractor; @Before public void setUp() throws Exception { NewPipe.init(Downloader.getInstance()); - extractor = YouTube.getService() + extractor = (YoutubeChannelExtractor) YouTube.getService() .getChannelExtractor("https://www.youtube.com/user/Gronkh"); } @@ -91,7 +94,7 @@ public class YoutubeChannelExtractorTest { @Test public void testGetStreamsErrors() throws Exception { - assertTrue("errors during stream list extraction", extractor.getStreams().getErrors().isEmpty()); + assertEmptyErrors("errors during stream list extraction", extractor.getStreams().getErrors()); } @Test @@ -112,7 +115,7 @@ public class YoutubeChannelExtractorTest { extractor.getStreams(); ListExtractor.NextItemsResult nextItemsResult = extractor.getNextStreams(); assertTrue("extractor didn't have next streams", !nextItemsResult.nextItemsList.isEmpty()); - assertTrue("errors occurred during extraction of the next streams", nextItemsResult.errors.isEmpty()); + assertEmptyErrors("errors occurred during extraction of the next streams", nextItemsResult.errors); assertTrue("extractor didn't have more streams after getNextStreams", extractor.hasMoreStreams()); } } diff --git a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java index 384f67f4c..c7d5b973f 100644 --- a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java +++ b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java @@ -6,21 +6,29 @@ import org.schabi.newpipe.Downloader; import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; +import org.schabi.newpipe.extractor.stream.StreamInfoItem; + +import java.util.List; import static org.junit.Assert.*; +import static org.schabi.newpipe.extractor.ExtractorAsserts.assertEmptyErrors; import static org.schabi.newpipe.extractor.ServiceList.YouTube; /** - * Test for {@link PlaylistExtractor} + * Test for {@link YoutubePlaylistExtractor} */ - public class YoutubePlaylistExtractorTest { - private PlaylistExtractor extractor; + private YoutubePlaylistExtractor extractor; + + private static void assertNotEmpty(String message, String value) { + assertNotNull(message, value); + assertFalse(message, value.isEmpty()); + } @Before public void setUp() throws Exception { NewPipe.init(Downloader.getInstance()); - extractor = YouTube.getService() + extractor = (YoutubePlaylistExtractor) YouTube.getService() .getPlaylistExtractor("https://www.youtube.com/playlist?list=PL7XlqX4npddfrdpMCxBnNZXg2GFll7t5y"); } @@ -71,12 +79,22 @@ public class YoutubePlaylistExtractorTest { @Test public void testGetStreams() throws Exception { - assertTrue("no streams are received", !extractor.getStreams().getItemList().isEmpty()); + List streams = extractor.getStreams().getItemList(); + assertFalse("no streams are received", streams.isEmpty()); + assertTrue(streams.size() > 60); + assertFalse(streams.contains(null)); + for(StreamInfoItem item: streams) { + assertEquals("Service id doesn't match", YouTube.getId(), item.getServiceId()); + assertNotNull("Stream type not set: " + item, item.getStreamType()); + //assertNotEmpty("Upload date not set: " + item, item.getUploadDate()); + assertNotEmpty("Uploader name not set: " + item, item.getUploaderName()); + assertNotEmpty("Uploader url not set: " + item, item.getUploaderUrl()); + } } @Test public void testGetStreamsErrors() throws Exception { - assertTrue("errors during stream list extraction", extractor.getStreams().getErrors().isEmpty()); + assertEmptyErrors("errors during stream list extraction", extractor.getStreams().getErrors()); } @Test @@ -92,7 +110,7 @@ public class YoutubePlaylistExtractorTest { extractor.getStreams(); ListExtractor.NextItemsResult nextItemsResult = extractor.getNextStreams(); assertTrue("extractor didn't have next streams", !nextItemsResult.nextItemsList.isEmpty()); - assertTrue("errors occurred during extraction of the next streams", nextItemsResult.errors.isEmpty()); + assertEmptyErrors("errors occurred during extraction of the next streams", nextItemsResult.errors); assertTrue("extractor didn't have more streams after getNextStreams", extractor.hasMoreStreams()); } diff --git a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java index 1c362d5d3..3018884c2 100644 --- a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java +++ b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java @@ -44,7 +44,7 @@ public class YoutubeStreamExtractorRestrictedTest { @Test public void testGetAgeLimit() throws ParsingException { - assertTrue(extractor.getAgeLimit() == 18); + assertEquals(18, extractor.getAgeLimit()); } @Test