|
9 | 9 | import org.schabi.newpipe.extractor.exceptions.ParsingException; |
10 | 10 | import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest; |
11 | 11 | import org.schabi.newpipe.extractor.stream.StreamExtractor; |
| 12 | +import org.schabi.newpipe.extractor.stream.StreamSegment; |
12 | 13 | import org.schabi.newpipe.extractor.stream.StreamType; |
13 | 14 |
|
14 | 15 | import java.util.Arrays; |
15 | 16 | import java.util.List; |
16 | 17 |
|
17 | 18 | import javax.annotation.Nullable; |
18 | 19 |
|
19 | | -import static org.junit.Assert.fail; |
| 20 | +import static org.junit.Assert.*; |
20 | 21 | import static org.schabi.newpipe.extractor.ServiceList.YouTube; |
21 | 22 |
|
22 | 23 | /* |
@@ -96,6 +97,7 @@ public static void setUp() throws Exception { |
96 | 97 | @Nullable @Override public String expectedTextualUploadDate() { return "2019-08-24"; } |
97 | 98 | @Override public long expectedLikeCountAtLeast() { return 5212900; } |
98 | 99 | @Override public long expectedDislikeCountAtLeast() { return 30600; } |
| 100 | + @Override public int expectedStreamSegmentsCount() { return 0; } |
99 | 101 | } |
100 | 102 |
|
101 | 103 | public static class DescriptionTestUnboxing extends DefaultStreamExtractorTest { |
@@ -166,4 +168,94 @@ public static void setUp() throws Exception { |
166 | 168 | @Override public long expectedLikeCountAtLeast() { return -1; } |
167 | 169 | @Override public long expectedDislikeCountAtLeast() { return -1; } |
168 | 170 | } |
| 171 | + |
| 172 | + public static class StreamSegmentsTestOstCollection extends DefaultStreamExtractorTest { |
| 173 | + // StreamSegment example with single macro-makers panel |
| 174 | + private static final String ID = "2RYrHwnLHw0"; |
| 175 | + private static final String URL = BASE_URL + ID; |
| 176 | + private static StreamExtractor extractor; |
| 177 | + |
| 178 | + @BeforeClass |
| 179 | + public static void setUp() throws Exception { |
| 180 | + NewPipe.init(DownloaderTestImpl.getInstance()); |
| 181 | + extractor = YouTube.getStreamExtractor(URL); |
| 182 | + extractor.fetchPage(); |
| 183 | + } |
| 184 | + |
| 185 | + @Override public StreamExtractor extractor() { return extractor; } |
| 186 | + @Override public StreamingService expectedService() { return YouTube; } |
| 187 | + @Override public String expectedName() { return "1 Hour - Most Epic Anime Mix - Battle Anime OST"; } |
| 188 | + @Override public String expectedId() { return ID; } |
| 189 | + @Override public String expectedUrlContains() { return BASE_URL + ID; } |
| 190 | + @Override public String expectedOriginalUrlContains() { return URL; } |
| 191 | + |
| 192 | + @Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; } |
| 193 | + @Override public String expectedUploaderName() { return "MathCaires"; } |
| 194 | + @Override public String expectedUploaderUrl() { return "https://www.youtube.com/channel/UChFoHg6IT18SCqiwCp_KY7Q"; } |
| 195 | + @Override public List<String> expectedDescriptionContains() { |
| 196 | + return Arrays.asList("soundtracks", "9:49", "YouSeeBIGGIRLTT"); |
| 197 | + } |
| 198 | + @Override public long expectedLength() { return 3889; } |
| 199 | + @Override public long expectedViewCountAtLeast() { return 2463261; } |
| 200 | + @Nullable @Override public String expectedUploadDate() { return "2019-06-26 00:00:00.000"; } |
| 201 | + @Nullable @Override public String expectedTextualUploadDate() { return "2019-06-26"; } |
| 202 | + @Override public long expectedLikeCountAtLeast() { return 32100; } |
| 203 | + @Override public long expectedDislikeCountAtLeast() { return 750; } |
| 204 | + @Override public boolean expectedHasSubtitles() { return false; } |
| 205 | + |
| 206 | + @Override public int expectedStreamSegmentsCount() { return 17; } |
| 207 | + @Test |
| 208 | + public void testStreamSegment() throws Exception { |
| 209 | + final StreamSegment segment = extractor.getStreamSegments().get(3); |
| 210 | + assertEquals(589, segment.getStartTimeSeconds()); |
| 211 | + assertEquals("Attack on Titan S2 - YouSeeBIGGIRLTT", segment.getTitle()); |
| 212 | + assertEquals(BASE_URL + ID + "?t=589", segment.getUrl()); |
| 213 | + assertNotNull(segment.getPreviewUrl()); |
| 214 | + } |
| 215 | + } |
| 216 | + |
| 217 | + public static class StreamSegmentsTestMaiLab extends DefaultStreamExtractorTest { |
| 218 | + // StreamSegment example with macro-makers panel and transcription panel |
| 219 | + private static final String ID = "ud9d5cMDP_0"; |
| 220 | + private static final String URL = BASE_URL + ID; |
| 221 | + private static StreamExtractor extractor; |
| 222 | + |
| 223 | + @BeforeClass |
| 224 | + public static void setUp() throws Exception { |
| 225 | + NewPipe.init(DownloaderTestImpl.getInstance()); |
| 226 | + extractor = YouTube.getStreamExtractor(URL); |
| 227 | + extractor.fetchPage(); |
| 228 | + } |
| 229 | + |
| 230 | + @Override public StreamExtractor extractor() { return extractor; } |
| 231 | + @Override public StreamingService expectedService() { return YouTube; } |
| 232 | + @Override public String expectedName() { return "Vitamin D wissenschaftlich gepr\u00fcft"; } |
| 233 | + @Override public String expectedId() { return ID; } |
| 234 | + @Override public String expectedUrlContains() { return BASE_URL + ID; } |
| 235 | + @Override public String expectedOriginalUrlContains() { return URL; } |
| 236 | + |
| 237 | + @Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; } |
| 238 | + @Override public String expectedUploaderName() { return "maiLab"; } |
| 239 | + @Override public String expectedUploaderUrl() { return "https://www.youtube.com/channel/UCyHDQ5C6z1NDmJ4g6SerW8g"; } |
| 240 | + @Override public List<String> expectedDescriptionContains() { |
| 241 | + return Arrays.asList("Vitamin", "2:44", "Was ist Vitamin D?"); |
| 242 | + } |
| 243 | + @Override public long expectedLength() { return 1010; } |
| 244 | + @Override public long expectedViewCountAtLeast() { return 815500; } |
| 245 | + @Nullable @Override public String expectedUploadDate() { return "2020-11-18 00:00:00.000"; } |
| 246 | + @Nullable @Override public String expectedTextualUploadDate() { return "2020-11-18"; } |
| 247 | + @Override public long expectedLikeCountAtLeast() { return 48500; } |
| 248 | + @Override public long expectedDislikeCountAtLeast() { return 20000; } |
| 249 | + @Override public boolean expectedHasSubtitles() { return true; } |
| 250 | + |
| 251 | + @Override public int expectedStreamSegmentsCount() { return 7; } |
| 252 | + @Test |
| 253 | + public void testStreamSegment() throws Exception { |
| 254 | + final StreamSegment segment = extractor.getStreamSegments().get(1); |
| 255 | + assertEquals(164, segment.getStartTimeSeconds()); |
| 256 | + assertEquals("Was ist Vitamin D?", segment.getTitle()); |
| 257 | + assertEquals(BASE_URL + ID + "?t=164", segment.getUrl()); |
| 258 | + assertNotNull(segment.getPreviewUrl()); |
| 259 | + } |
| 260 | + } |
169 | 261 | } |
0 commit comments