|
7 | 7 | import static org.junit.jupiter.api.Assertions.assertTrue; |
8 | 8 | import static org.schabi.newpipe.extractor.ExtractorAsserts.assertContains; |
9 | 9 | import static org.schabi.newpipe.extractor.ExtractorAsserts.assertIsSecureUrl; |
| 10 | +import static org.schabi.newpipe.extractor.ExtractorAsserts.assertNotBlank; |
10 | 11 | import static org.schabi.newpipe.extractor.ExtractorAsserts.assertTabsContain; |
11 | 12 | import static org.schabi.newpipe.extractor.ServiceList.YouTube; |
12 | 13 | import static org.schabi.newpipe.extractor.services.DefaultTests.defaultTestGetPageInNewExtractor; |
@@ -710,8 +711,10 @@ public void testOriginalUrl() throws ParsingException { |
710 | 711 | // ChannelExtractor |
711 | 712 | //////////////////////////////////////////////////////////////////////////*/ |
712 | 713 |
|
| 714 | + @Test |
713 | 715 | @Override |
714 | 716 | public void testDescription() throws ParsingException { |
| 717 | + assertNotBlank(extractor.getDescription()); |
715 | 718 | } |
716 | 719 |
|
717 | 720 | @Test |
@@ -885,4 +888,109 @@ public void testTags() throws Exception { |
885 | 888 | assertTrue(extractor.getTags().isEmpty()); |
886 | 889 | } |
887 | 890 | } |
| 891 | + |
| 892 | + static class InteractiveTabbedHeader implements BaseChannelExtractorTest { |
| 893 | + |
| 894 | + private static ChannelExtractor extractor; |
| 895 | + |
| 896 | + @BeforeAll |
| 897 | + static void setUp() throws Exception { |
| 898 | + YoutubeTestsUtils.ensureStateless(); |
| 899 | + NewPipe.init(DownloaderFactory.getDownloader(RESOURCE_PATH + "interactiveTabbedHeader")); |
| 900 | + extractor = YouTube.getChannelExtractor( |
| 901 | + "https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg"); |
| 902 | + extractor.fetchPage(); |
| 903 | + } |
| 904 | + |
| 905 | + @Test |
| 906 | + @Override |
| 907 | + public void testDescription() throws Exception { |
| 908 | + final String description = extractor.getDescription(); |
| 909 | + assertContains("Minecraft", description); |
| 910 | + assertContains("game", description); |
| 911 | + assertContains("Mojang", description); |
| 912 | + } |
| 913 | + |
| 914 | + @Test |
| 915 | + @Override |
| 916 | + public void testAvatarUrl() throws Exception { |
| 917 | + final String avatarUrl = extractor.getAvatarUrl(); |
| 918 | + assertIsSecureUrl(avatarUrl); |
| 919 | + assertContains("yt3", avatarUrl); |
| 920 | + } |
| 921 | + |
| 922 | + @Test |
| 923 | + @Override |
| 924 | + public void testBannerUrl() throws Exception { |
| 925 | + final String bannerUrl = extractor.getBannerUrl(); |
| 926 | + assertIsSecureUrl(bannerUrl); |
| 927 | + assertContains("yt3", bannerUrl); |
| 928 | + } |
| 929 | + |
| 930 | + @Test |
| 931 | + @Override |
| 932 | + public void testFeedUrl() throws Exception { |
| 933 | + assertEquals( |
| 934 | + "https://www.youtube.com/feeds/videos.xml?channel_id=UCQvWX73GQygcwXOTSf_VDVg", |
| 935 | + extractor.getFeedUrl()); |
| 936 | + } |
| 937 | + |
| 938 | + @Test |
| 939 | + @Override |
| 940 | + public void testSubscriberCount() throws Exception { |
| 941 | + // Subscriber count is not available on channels with an interactiveTabbedHeaderRenderer |
| 942 | + assertEquals(ChannelExtractor.UNKNOWN_SUBSCRIBER_COUNT, extractor.getSubscriberCount()); |
| 943 | + } |
| 944 | + |
| 945 | + @Test |
| 946 | + @Override |
| 947 | + public void testVerified() throws Exception { |
| 948 | + assertTrue(extractor.isVerified()); |
| 949 | + } |
| 950 | + |
| 951 | + @Test |
| 952 | + @Override |
| 953 | + public void testTabs() throws Exception { |
| 954 | + // Gaming topic channels tabs are not yet supported, so an empty list should be returned |
| 955 | + assertTrue(extractor.getTabs().isEmpty()); |
| 956 | + } |
| 957 | + |
| 958 | + @Test |
| 959 | + @Override |
| 960 | + public void testTags() throws Exception { |
| 961 | + assertTrue(extractor.getTags().isEmpty()); |
| 962 | + } |
| 963 | + |
| 964 | + @Test |
| 965 | + @Override |
| 966 | + public void testServiceId() throws Exception { |
| 967 | + assertEquals(YouTube.getServiceId(), extractor.getServiceId()); |
| 968 | + } |
| 969 | + |
| 970 | + @Test |
| 971 | + @Override |
| 972 | + public void testName() throws Exception { |
| 973 | + assertContains("Minecraft", extractor.getName()); |
| 974 | + } |
| 975 | + |
| 976 | + @Test |
| 977 | + @Override |
| 978 | + public void testId() throws Exception { |
| 979 | + assertEquals("UCQvWX73GQygcwXOTSf_VDVg", extractor.getId()); |
| 980 | + } |
| 981 | + |
| 982 | + @Test |
| 983 | + @Override |
| 984 | + public void testUrl() throws Exception { |
| 985 | + assertEquals("https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg", |
| 986 | + extractor.getUrl()); |
| 987 | + } |
| 988 | + |
| 989 | + @Test |
| 990 | + @Override |
| 991 | + public void testOriginalUrl() throws Exception { |
| 992 | + assertEquals("https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg", |
| 993 | + extractor.getOriginalUrl()); |
| 994 | + } |
| 995 | + } |
888 | 996 | } |
0 commit comments