[YouTube] Add test for interactiveTabbedHeaderRenderer channel header

This test uses the Minecraft game topic channel.
This commit is contained in:
AudricV 2023-08-08 19:03:56 +02:00
parent 1852031a0b
commit b147904571
No known key found for this signature in database
GPG Key ID: DA92EC7905614198
1 changed files with 108 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.schabi.newpipe.extractor.ExtractorAsserts.assertContains; import static org.schabi.newpipe.extractor.ExtractorAsserts.assertContains;
import static org.schabi.newpipe.extractor.ExtractorAsserts.assertIsSecureUrl; 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.ExtractorAsserts.assertTabsContain;
import static org.schabi.newpipe.extractor.ServiceList.YouTube; import static org.schabi.newpipe.extractor.ServiceList.YouTube;
import static org.schabi.newpipe.extractor.services.DefaultTests.defaultTestGetPageInNewExtractor; import static org.schabi.newpipe.extractor.services.DefaultTests.defaultTestGetPageInNewExtractor;
@ -710,8 +711,10 @@ public class YoutubeChannelExtractorTest {
// ChannelExtractor // ChannelExtractor
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
@Test
@Override @Override
public void testDescription() throws ParsingException { public void testDescription() throws ParsingException {
assertNotBlank(extractor.getDescription());
} }
@Test @Test
@ -885,4 +888,109 @@ public class YoutubeChannelExtractorTest {
assertTrue(extractor.getTags().isEmpty()); 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());
}
}
} }