From b14790457171f10551d2c90ebea31ec00eafc547 Mon Sep 17 00:00:00 2001 From: AudricV <74829229+AudricV@users.noreply.github.com> Date: Tue, 8 Aug 2023 19:03:56 +0200 Subject: [PATCH] [YouTube] Add test for interactiveTabbedHeaderRenderer channel header This test uses the Minecraft game topic channel. --- .../youtube/YoutubeChannelExtractorTest.java | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java index 832679376..1c2289e4b 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelExtractorTest.java @@ -7,6 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.schabi.newpipe.extractor.ExtractorAsserts.assertContains; import static org.schabi.newpipe.extractor.ExtractorAsserts.assertIsSecureUrl; +import static org.schabi.newpipe.extractor.ExtractorAsserts.assertNotBlank; import static org.schabi.newpipe.extractor.ExtractorAsserts.assertTabsContain; import static org.schabi.newpipe.extractor.ServiceList.YouTube; import static org.schabi.newpipe.extractor.services.DefaultTests.defaultTestGetPageInNewExtractor; @@ -710,8 +711,10 @@ public class YoutubeChannelExtractorTest { // ChannelExtractor //////////////////////////////////////////////////////////////////////////*/ + @Test @Override public void testDescription() throws ParsingException { + assertNotBlank(extractor.getDescription()); } @Test @@ -885,4 +888,109 @@ public class YoutubeChannelExtractorTest { assertTrue(extractor.getTags().isEmpty()); } } + + static class InteractiveTabbedHeader implements BaseChannelExtractorTest { + + private static ChannelExtractor extractor; + + @BeforeAll + static void setUp() throws Exception { + YoutubeTestsUtils.ensureStateless(); + NewPipe.init(DownloaderFactory.getDownloader(RESOURCE_PATH + "interactiveTabbedHeader")); + extractor = YouTube.getChannelExtractor( + "https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg"); + extractor.fetchPage(); + } + + @Test + @Override + public void testDescription() throws Exception { + final String description = extractor.getDescription(); + assertContains("Minecraft", description); + assertContains("game", description); + assertContains("Mojang", description); + } + + @Test + @Override + public void testAvatarUrl() throws Exception { + final String avatarUrl = extractor.getAvatarUrl(); + assertIsSecureUrl(avatarUrl); + assertContains("yt3", avatarUrl); + } + + @Test + @Override + public void testBannerUrl() throws Exception { + final String bannerUrl = extractor.getBannerUrl(); + assertIsSecureUrl(bannerUrl); + assertContains("yt3", bannerUrl); + } + + @Test + @Override + public void testFeedUrl() throws Exception { + assertEquals( + "https://www.youtube.com/feeds/videos.xml?channel_id=UCQvWX73GQygcwXOTSf_VDVg", + extractor.getFeedUrl()); + } + + @Test + @Override + public void testSubscriberCount() throws Exception { + // Subscriber count is not available on channels with an interactiveTabbedHeaderRenderer + assertEquals(ChannelExtractor.UNKNOWN_SUBSCRIBER_COUNT, extractor.getSubscriberCount()); + } + + @Test + @Override + public void testVerified() throws Exception { + assertTrue(extractor.isVerified()); + } + + @Test + @Override + public void testTabs() throws Exception { + // Gaming topic channels tabs are not yet supported, so an empty list should be returned + assertTrue(extractor.getTabs().isEmpty()); + } + + @Test + @Override + public void testTags() throws Exception { + assertTrue(extractor.getTags().isEmpty()); + } + + @Test + @Override + public void testServiceId() throws Exception { + assertEquals(YouTube.getServiceId(), extractor.getServiceId()); + } + + @Test + @Override + public void testName() throws Exception { + assertContains("Minecraft", extractor.getName()); + } + + @Test + @Override + public void testId() throws Exception { + assertEquals("UCQvWX73GQygcwXOTSf_VDVg", extractor.getId()); + } + + @Test + @Override + public void testUrl() throws Exception { + assertEquals("https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg", + extractor.getUrl()); + } + + @Test + @Override + public void testOriginalUrl() throws Exception { + assertEquals("https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg", + extractor.getOriginalUrl()); + } + } }