From 8baec046117d919788aef81ffc15b306464cc08d Mon Sep 17 00:00:00 2001 From: AudricV <74829229+AudricV@users.noreply.github.com> Date: Sun, 16 Jul 2023 20:39:56 +0200 Subject: [PATCH] [Bandcamp] Implement link handlers and channels tabs and tags changes on tests Tests in BandcampChannelExtractorTest and BandcampChannelLinkHandlerFactoryTest have been also fixed. Co-authored-by: ThetaDev --- .../BandcampChannelExtractorTest.java | 34 ++--- ...BandcampChannelLinkHandlerFactoryTest.java | 7 +- .../BandcampChannelTabExtractorTest.java | 128 ++++++++++++++++++ ...andcampCommentsLinkHandlerFactoryTest.java | 2 +- ...andcampFeaturedLinkHandlerFactoryTest.java | 4 +- ...andcampPlaylistLinkHandlerFactoryTest.java | 2 +- .../BandcampStreamLinkHandlerFactoryTest.java | 4 +- 7 files changed, 152 insertions(+), 29 deletions(-) create mode 100644 extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelTabExtractorTest.java diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelExtractorTest.java index 8e4f56cc1..3d34bd062 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelExtractorTest.java @@ -7,12 +7,11 @@ import org.junit.jupiter.api.Test; import org.schabi.newpipe.downloader.DownloaderTestImpl; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.channel.ChannelExtractor; -import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; import org.schabi.newpipe.extractor.services.BaseChannelExtractorTest; -import java.io.IOException; - import static org.junit.jupiter.api.Assertions.*; +import static org.schabi.newpipe.extractor.ExtractorAsserts.assertTabsContained; import static org.schabi.newpipe.extractor.ServiceList.Bandcamp; public class BandcampChannelExtractorTest implements BaseChannelExtractorTest { @@ -27,12 +26,7 @@ public class BandcampChannelExtractorTest implements BaseChannelExtractorTest { } @Test - public void testLength() throws ExtractionException, IOException { - assertTrue(extractor.getInitialPage().getItems().size() >= 0); - } - @Override - @Test public void testDescription() throws Exception { assertEquals("making music:)", extractor.getDescription()); } @@ -62,16 +56,6 @@ public class BandcampChannelExtractorTest implements BaseChannelExtractorTest { assertFalse(extractor.isVerified()); } - @Override - public void testRelatedItems() throws Exception { - // not implemented - } - - @Override - public void testMoreRelatedItems() throws Exception { - // not implemented - } - @Override public void testServiceId() { assertEquals(Bandcamp.getServiceId(), extractor.getServiceId()); @@ -84,7 +68,7 @@ public class BandcampChannelExtractorTest implements BaseChannelExtractorTest { @Override public void testId() throws Exception { - assertEquals("https://toupie.bandcamp.com/", extractor.getId()); + assertEquals("2450875064", extractor.getId()); } @Override @@ -96,4 +80,16 @@ public class BandcampChannelExtractorTest implements BaseChannelExtractorTest { public void testOriginalUrl() throws Exception { assertEquals("https://toupie.bandcamp.com", extractor.getUrl()); } + + @Test + @Override + public void testTabs() throws Exception { + assertTabsContained(extractor.getTabs(), ChannelTabs.ALBUMS); + } + + @Test + @Override + public void testTags() throws Exception { + assertTrue(extractor.getTags().isEmpty()); + } } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelLinkHandlerFactoryTest.java index baf4bf354..9c9473cf4 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelLinkHandlerFactoryTest.java @@ -19,7 +19,7 @@ public class BandcampChannelLinkHandlerFactoryTest { @BeforeAll public static void setUp() { - linkHandler = new BandcampChannelLinkHandlerFactory(); + linkHandler = BandcampChannelLinkHandlerFactory.getInstance(); NewPipe.init(DownloaderTestImpl.getInstance()); } @@ -55,7 +55,7 @@ public class BandcampChannelLinkHandlerFactoryTest { public void testGetId() throws ParsingException { assertEquals("1196681540", linkHandler.getId("https://macbenson.bandcamp.com/")); assertEquals("1196681540", linkHandler.getId("http://macbenson.bandcamp.com/")); - assertEquals("1581461772", linkHandler.getId("https://interovgm.bandcamp.com/releases")); + assertEquals("1581461772", linkHandler.getId("https://shirakumon.bandcamp.com/releases")); assertEquals("3321800855", linkHandler.getId("https://infiniteammo.bandcamp.com/")); assertEquals("3775652329", linkHandler.getId("https://npet.bandcamp.com/")); @@ -67,7 +67,7 @@ public class BandcampChannelLinkHandlerFactoryTest { @Test public void testGetUrl() throws ParsingException { assertEquals("https://macbenson.bandcamp.com", linkHandler.getUrl("1196681540")); - assertEquals("https://interovgm.bandcamp.com", linkHandler.getUrl("1581461772")); + assertEquals("https://shirakumon.bandcamp.com", linkHandler.getUrl("1581461772")); assertEquals("https://infiniteammo.bandcamp.com", linkHandler.getUrl("3321800855")); assertEquals("https://lobstertheremin.com", linkHandler.getUrl("2735462545")); @@ -82,5 +82,4 @@ public class BandcampChannelLinkHandlerFactoryTest { public void testGetIdWithInvalidUrl() { assertThrows(ParsingException.class, () -> linkHandler.getUrl("https://bandcamp.com")); } - } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelTabExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelTabExtractorTest.java new file mode 100644 index 000000000..f3ade32eb --- /dev/null +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampChannelTabExtractorTest.java @@ -0,0 +1,128 @@ +package org.schabi.newpipe.extractor.services.bandcamp; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.schabi.newpipe.downloader.DownloaderTestImpl; +import org.schabi.newpipe.extractor.NewPipe; +import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; +import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.exceptions.ParsingException; +import org.schabi.newpipe.extractor.services.BaseListExtractorTest; +import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampChannelTabExtractor; + +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.schabi.newpipe.extractor.ServiceList.Bandcamp; +import static org.schabi.newpipe.extractor.services.DefaultTests.defaultTestRelatedItems; + +class BandcampChannelTabExtractorTest { + + static class Tracks implements BaseListExtractorTest { + private static BandcampChannelTabExtractor extractor; + + @BeforeAll + static void setUp() throws IOException, ExtractionException { + NewPipe.init(DownloaderTestImpl.getInstance()); + extractor = (BandcampChannelTabExtractor) Bandcamp + .getChannelTabExtractorFromId("2464198920", ChannelTabs.TRACKS); + extractor.fetchPage(); + } + + @Test + @Override + public void testServiceId() throws Exception { + assertEquals(Bandcamp.getServiceId(), extractor.getServiceId()); + } + + @Test + @Override + public void testName() throws Exception { + assertEquals(ChannelTabs.TRACKS, extractor.getName()); + } + + @Test + @Override + public void testId() throws ParsingException { + assertEquals("2464198920", extractor.getId()); + } + + @Test + @Override + public void testUrl() throws ParsingException { + assertEquals("https://wintergatan.bandcamp.com/track", extractor.getUrl()); + } + + @Test + @Override + public void testOriginalUrl() throws Exception { + assertEquals("https://wintergatan.bandcamp.com/track", extractor.getOriginalUrl()); + } + + @Test + @Override + public void testRelatedItems() throws Exception { + defaultTestRelatedItems(extractor); + } + + @Test + @Override + public void testMoreRelatedItems() throws Exception { + // Bandcamp only return a single page + } + } + + static class Albums implements BaseListExtractorTest { + private static BandcampChannelTabExtractor extractor; + + @BeforeAll + static void setUp() throws IOException, ExtractionException { + NewPipe.init(DownloaderTestImpl.getInstance()); + extractor = (BandcampChannelTabExtractor) Bandcamp + .getChannelTabExtractorFromId("2450875064", ChannelTabs.ALBUMS); + extractor.fetchPage(); + } + + @Test + @Override + public void testServiceId() { + assertEquals(Bandcamp.getServiceId(), extractor.getServiceId()); + } + + @Test + @Override + public void testName() throws Exception { + assertEquals(ChannelTabs.ALBUMS, extractor.getName()); + } + + @Test + @Override + public void testId() throws ParsingException { + assertEquals("2450875064", extractor.getId()); + } + + @Test + @Override + public void testUrl() throws ParsingException { + assertEquals("https://toupie.bandcamp.com/album", extractor.getUrl()); + } + + @Test + @Override + public void testOriginalUrl() throws Exception { + assertEquals("https://toupie.bandcamp.com/album", extractor.getOriginalUrl()); + } + + @Test + @Override + public void testRelatedItems() throws Exception { + defaultTestRelatedItems(extractor); + } + + @Test + @Override + public void testMoreRelatedItems() throws Exception { + // Bandcamp only return a single page + } + } +} \ No newline at end of file diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampCommentsLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampCommentsLinkHandlerFactoryTest.java index b783463dc..94361bbf6 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampCommentsLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampCommentsLinkHandlerFactoryTest.java @@ -20,7 +20,7 @@ public class BandcampCommentsLinkHandlerFactoryTest { @BeforeAll public static void setUp() { - linkHandler = new BandcampCommentsLinkHandlerFactory(); + linkHandler = BandcampCommentsLinkHandlerFactory.getInstance(); NewPipe.init(DownloaderTestImpl.getInstance()); } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampFeaturedLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampFeaturedLinkHandlerFactoryTest.java index 9e2984a6c..16d5fabca 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampFeaturedLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampFeaturedLinkHandlerFactoryTest.java @@ -18,7 +18,7 @@ public class BandcampFeaturedLinkHandlerFactoryTest { @BeforeAll public static void setUp() { - linkHandler = new BandcampFeaturedLinkHandlerFactory(); + linkHandler = BandcampFeaturedLinkHandlerFactory.getInstance(); } @@ -42,7 +42,7 @@ public class BandcampFeaturedLinkHandlerFactoryTest { } @Test - public void testGetId() { + public void testGetId() throws ParsingException { assertEquals("Featured", linkHandler.getId("http://bandcamp.com/api/mobile/24/bootstrap_data")); assertEquals("Featured", linkHandler.getId("https://bandcamp.com/api/mobile/24/bootstrap_data")); assertEquals("Radio", linkHandler.getId("http://bandcamp.com/?show=1")); diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampPlaylistLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampPlaylistLinkHandlerFactoryTest.java index 3fc3ba67c..3d9368f6f 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampPlaylistLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampPlaylistLinkHandlerFactoryTest.java @@ -21,7 +21,7 @@ public class BandcampPlaylistLinkHandlerFactoryTest { @BeforeAll public static void setUp() { - linkHandler = new BandcampPlaylistLinkHandlerFactory(); + linkHandler = BandcampPlaylistLinkHandlerFactory.getInstance(); NewPipe.init(DownloaderTestImpl.getInstance()); } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java index 72ab38830..f895dd351 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java @@ -20,12 +20,12 @@ public class BandcampStreamLinkHandlerFactoryTest { @BeforeAll public static void setUp() { - linkHandler = new BandcampStreamLinkHandlerFactory(); + linkHandler = BandcampStreamLinkHandlerFactory.getInstance(); NewPipe.init(DownloaderTestImpl.getInstance()); } @Test - public void testGetRadioUrl() { + public void testGetRadioUrl() throws ParsingException { assertEquals("https://bandcamp.com/?show=1", linkHandler.getUrl("1")); }