Skip to content

Commit dfce024

Browse files
committed
Started fixing tests...
1 parent 183b601 commit dfce024

13 files changed

+89
-91
lines changed

extractor/src/test/java/org/schabi/newpipe/extractor/services/BaseStreamExtractorTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ public interface BaseStreamExtractorTest extends BaseExtractorTest {
2222
void testAgeLimit() throws Exception;
2323
void testErrorMessage() throws Exception;
2424
void testAudioStreams() throws Exception;
25-
void testVideoStreams() throws Exception;
25+
void testVideoOnlyStreams() throws Exception;
26+
void testVideoAudioStreams() throws Exception;
2627
void testSubtitles() throws Exception;
2728
void testGetDashMpdUrl() throws Exception;
2829
void testFrames() throws Exception;

extractor/src/test/java/org/schabi/newpipe/extractor/services/DefaultStreamExtractorTest.java

Lines changed: 64 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,20 @@
1515
import org.junit.jupiter.api.Test;
1616
import org.schabi.newpipe.extractor.ExtractorAsserts;
1717
import org.schabi.newpipe.extractor.InfoItemsCollector;
18-
import org.schabi.newpipe.extractor.MediaFormat;
1918
import org.schabi.newpipe.extractor.MetaInfo;
2019
import org.schabi.newpipe.extractor.localization.DateWrapper;
21-
import org.schabi.newpipe.extractor.stream.AudioStream;
2220
import org.schabi.newpipe.extractor.stream.Description;
2321
import org.schabi.newpipe.extractor.stream.Frameset;
2422
import org.schabi.newpipe.extractor.stream.Privacy;
2523
import org.schabi.newpipe.extractor.stream.StreamExtractor;
2624
import org.schabi.newpipe.extractor.stream.StreamType;
25+
import org.schabi.newpipe.extractor.streamdata.delivery.DASHManifestDeliveryData;
26+
import org.schabi.newpipe.extractor.streamdata.delivery.DeliveryData;
27+
import org.schabi.newpipe.extractor.streamdata.delivery.UrlBasedDeliveryData;
28+
import org.schabi.newpipe.extractor.streamdata.stream.AudioStream;
29+
import org.schabi.newpipe.extractor.streamdata.stream.SubtitleStream;
30+
import org.schabi.newpipe.extractor.streamdata.stream.VideoAudioStream;
31+
import org.schabi.newpipe.extractor.streamdata.stream.VideoStream;
2732

2833
import java.net.MalformedURLException;
2934
import java.net.URL;
@@ -42,7 +47,8 @@
4247
public abstract class DefaultStreamExtractorTest extends DefaultExtractorTest<StreamExtractor>
4348
implements BaseStreamExtractorTest {
4449

45-
public abstract StreamType expectedStreamType();
50+
public boolean expectedIsLive() { return false; }
51+
public boolean expectedIsAudioOnly() { return false; }
4652
public abstract String expectedUploaderName();
4753
public abstract String expectedUploaderUrl();
4854
public boolean expectedUploaderVerified() { return false; }
@@ -61,8 +67,9 @@ public abstract class DefaultStreamExtractorTest extends DefaultExtractorTest<St
6167
public boolean expectedHasRelatedItems() { return true; } // default: there are related videos
6268
public int expectedAgeLimit() { return StreamExtractor.NO_AGE_LIMIT; } // default: no limit
6369
@Nullable public String expectedErrorMessage() { return null; } // default: no error message
64-
public boolean expectedHasVideoStreams() { return true; } // default: there are video streams
65-
public boolean expectedHasAudioStreams() { return true; } // default: there are audio streams
70+
public boolean expectedHasVideoOnlyStreams() { return true; }
71+
public boolean expectedHasVideoAndAudioStreams() { return true; }
72+
public boolean expectedHasAudioStreams() { return true; }
6673
public boolean expectedHasSubtitles() { return true; } // default: there are subtitles streams
6774
@Nullable public String expectedDashMpdUrlContains() { return null; } // default: no dash mpd
6875
public boolean expectedHasFrames() { return true; } // default: there are frames
@@ -254,34 +261,39 @@ public void testErrorMessage() throws Exception {
254261

255262
@Test
256263
@Override
257-
public void testVideoStreams() throws Exception {
258-
final List<VideoStream> videoStreams = extractor().getVideoStreams();
264+
public void testVideoOnlyStreams() throws Exception {
259265
final List<VideoStream> videoOnlyStreams = extractor().getVideoOnlyStreams();
260-
assertNotNull(videoStreams);
261266
assertNotNull(videoOnlyStreams);
262-
videoStreams.addAll(videoOnlyStreams);
263267

264-
if (expectedHasVideoStreams()) {
265-
assertFalse(videoStreams.isEmpty());
268+
if (expectedHasVideoOnlyStreams()) {
269+
assertFalse(videoOnlyStreams.isEmpty());
266270

267-
for (final VideoStream stream : videoStreams) {
268-
if (stream.isUrl()) {
269-
assertIsSecureUrl(stream.getContent());
270-
}
271-
final StreamType streamType = extractor().getStreamType();
272-
// On some video streams, the resolution can be empty and the format be unknown,
273-
// especially on livestreams (like streams with HLS master playlists)
274-
if (streamType != StreamType.LIVE_STREAM
275-
&& streamType != StreamType.AUDIO_LIVE_STREAM) {
276-
assertFalse(stream.getResolution().isEmpty());
277-
final int formatId = stream.getFormatId();
278-
// see MediaFormat: video stream formats range from 0 to 0x100
279-
assertTrue(0 <= formatId && formatId < 0x100,
280-
"Format id does not fit a video stream: " + formatId);
281-
}
271+
for (final VideoStream stream : videoOnlyStreams) {
272+
assertNotNull(stream.mediaFormat());
273+
assertNotNull(stream.videoQualityData());
274+
checkDeliveryData(stream.deliveryData());
275+
}
276+
} else {
277+
assertTrue(videoOnlyStreams.isEmpty());
278+
}
279+
}
280+
281+
@Test
282+
@Override
283+
public void testVideoAudioStreams() throws Exception {
284+
final List<VideoAudioStream> videoAudioStreams = extractor().getVideoStreams();
285+
assertNotNull(videoAudioStreams);
286+
287+
if (expectedHasVideoAndAudioStreams()) {
288+
assertFalse(videoAudioStreams.isEmpty());
289+
290+
for (final VideoAudioStream stream : videoAudioStreams) {
291+
assertNotNull(stream.mediaFormat());
292+
assertNotNull(stream.videoQualityData());
293+
checkDeliveryData(stream.deliveryData());
282294
}
283295
} else {
284-
assertTrue(videoStreams.isEmpty());
296+
assertTrue(videoAudioStreams.isEmpty());
285297
}
286298
}
287299

@@ -295,17 +307,8 @@ public void testAudioStreams() throws Exception {
295307
assertFalse(audioStreams.isEmpty());
296308

297309
for (final AudioStream stream : audioStreams) {
298-
if (stream.isUrl()) {
299-
assertIsSecureUrl(stream.getContent());
300-
}
301-
302-
// The media format can be unknown on some audio streams
303-
if (stream.getFormat() != null) {
304-
final int formatId = stream.getFormat().id;
305-
// see MediaFormat: audio stream formats range from 0x100 to 0x1000
306-
assertTrue(0x100 <= formatId && formatId < 0x1000,
307-
"Format id does not fit an audio stream: " + formatId);
308-
}
310+
assertNotNull(stream.mediaFormat());
311+
checkDeliveryData(stream.deliveryData());
309312
}
310313
} else {
311314
assertTrue(audioStreams.isEmpty());
@@ -315,32 +318,29 @@ public void testAudioStreams() throws Exception {
315318
@Test
316319
@Override
317320
public void testSubtitles() throws Exception {
318-
final List<SubtitlesStream> subtitles = extractor().getSubtitlesDefault();
321+
final List<SubtitleStream> subtitles = extractor().getSubtitles();
319322
assertNotNull(subtitles);
320323

321324
if (expectedHasSubtitles()) {
322325
assertFalse(subtitles.isEmpty());
323326

324-
for (final SubtitlesStream stream : subtitles) {
325-
if (stream.isUrl()) {
326-
assertIsSecureUrl(stream.getContent());
327-
}
328-
329-
final int formatId = stream.getFormatId();
330-
// see MediaFormat: video stream formats range from 0x1000 to 0x10000
331-
assertTrue(0x1000 <= formatId && formatId < 0x10000,
332-
"Format id does not fit a subtitles stream: " + formatId);
327+
for (final SubtitleStream stream : subtitles) {
328+
assertNotNull(stream.languageCode());
329+
assertNotNull(stream.mediaFormat());
330+
checkDeliveryData(stream.deliveryData());
333331
}
334332
} else {
335333
assertTrue(subtitles.isEmpty());
334+
}
335+
}
336336

337-
final MediaFormat[] formats = {MediaFormat.VTT, MediaFormat.TTML, MediaFormat.SRT,
338-
MediaFormat.TRANSCRIPT1, MediaFormat.TRANSCRIPT2, MediaFormat.TRANSCRIPT3};
339-
for (final MediaFormat format : formats) {
340-
final List<SubtitlesStream> formatSubtitles = extractor().getSubtitles(format);
341-
assertNotNull(formatSubtitles);
342-
assertTrue(formatSubtitles.isEmpty());
343-
}
337+
private void checkDeliveryData(final DeliveryData deliveryData) {
338+
if (deliveryData instanceof UrlBasedDeliveryData) {
339+
assertIsSecureUrl(((UrlBasedDeliveryData) deliveryData).url());
340+
} else if (deliveryData instanceof DASHManifestDeliveryData) {
341+
final DASHManifestDeliveryData dashManifestDD =
342+
(DASHManifestDeliveryData) deliveryData;
343+
assertNotNull(dashManifestDD.getDashManifestCreator());
344344
}
345345
}
346346

@@ -455,6 +455,15 @@ public void testMetaInfo() throws Exception {
455455
assertTrue(urls.contains(expectedUrl));
456456
}
457457
}
458+
}
459+
460+
@Test
461+
public void testIsLive() throws Exception {
462+
assertEquals(expectedIsLive(), extractor().isLive());
463+
}
458464

465+
@Test
466+
public void testIsAudioOnly() throws Exception {
467+
assertEquals(expectedIsAudioOnly(), extractor().isAudioOnly());
459468
}
460469
}

extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampRadioStreamExtractorTest.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package org.schabi.newpipe.extractor.services.bandcamp;
22

3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertThrows;
6+
import static org.junit.jupiter.api.Assertions.assertTrue;
7+
import static org.schabi.newpipe.extractor.ServiceList.Bandcamp;
8+
39
import org.junit.jupiter.api.BeforeAll;
410
import org.junit.jupiter.api.Test;
511
import org.schabi.newpipe.downloader.DownloaderTestImpl;
@@ -11,17 +17,13 @@
1117
import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest;
1218
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioStreamExtractor;
1319
import org.schabi.newpipe.extractor.stream.StreamExtractor;
14-
import org.schabi.newpipe.extractor.stream.StreamType;
1520

1621
import java.io.IOException;
1722
import java.util.Calendar;
1823
import java.util.Collections;
1924
import java.util.List;
2025
import java.util.TimeZone;
2126

22-
import static org.junit.jupiter.api.Assertions.*;
23-
import static org.schabi.newpipe.extractor.ServiceList.Bandcamp;
24-
2527
public class BandcampRadioStreamExtractorTest extends DefaultStreamExtractorTest {
2628

2729
private static StreamExtractor extractor;
@@ -47,11 +49,11 @@ public void testGettingCorrectStreamExtractor() throws ExtractionException {
4749
@Override public String expectedId() throws Exception { return "230"; }
4850
@Override public String expectedUrlContains() throws Exception { return URL; }
4951
@Override public String expectedOriginalUrlContains() throws Exception { return URL; }
50-
@Override public boolean expectedHasVideoStreams() { return false; }
52+
@Override public boolean expectedHasVideoAndAudioStreams() { return false; }
5153
@Override public boolean expectedHasSubtitles() { return false; }
5254
@Override public boolean expectedHasFrames() { return false; }
5355
@Override public boolean expectedHasRelatedItems() { return false; }
54-
@Override public StreamType expectedStreamType() { return StreamType.AUDIO_STREAM; }
56+
@Override public boolean expectedIsAudioOnly() { return true; }
5557
@Override public StreamingService expectedService() { return Bandcamp; }
5658
@Override public String expectedUploaderName() { return "Andrew Jervis"; }
5759
@Override public int expectedStreamSegmentsCount() { return 30; }
@@ -80,6 +82,7 @@ public List<String> expectedDescriptionContains() {
8082

8183
@Override public String expectedUploadDate() { return "16 May 2017 00:00:00 GMT"; }
8284
@Override public String expectedTextualUploadDate() { return "16 May 2017 00:00:00 GMT"; }
85+
@Override
8386
@Test
8487
public void testUploadDate() throws ParsingException {
8588
final Calendar expectedCalendar = Calendar.getInstance();

extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamExtractorTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ public String expectedOriginalUrlContains() {
7070
}
7171

7272
@Override
73-
public StreamType expectedStreamType() {
74-
return StreamType.AUDIO_STREAM;
73+
public boolean expectedIsAudioOnly() {
74+
return true;
7575
}
7676

7777
@Override
@@ -120,7 +120,7 @@ public long expectedDislikeCountAtLeast() {
120120
}
121121

122122
@Override
123-
public boolean expectedHasVideoStreams() {
123+
public boolean expectedHasVideoAndAudioStreams() {
124124
return false;
125125
}
126126

extractor/src/test/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCStreamExtractorTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public static void setUp() throws Exception {
4343
@Override public String expectedId() { return ID; }
4444
@Override public String expectedUrlContains() { return URL; }
4545
@Override public String expectedOriginalUrlContains() { return URL; }
46-
@Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; }
4746
@Override public String expectedUploaderName() { return "gpn18"; }
4847
@Override public String expectedUploaderUrl() { return "https://media.ccc.de/c/gpn18"; }
4948
@Override public List<String> expectedDescriptionContains() { return Arrays.asList("SSH-Sessions", "\"Terminal Multiplexer\""); }
@@ -76,8 +75,8 @@ public void testUploaderAvatarUrl() throws Exception {
7675

7776
@Override
7877
@Test
79-
public void testVideoStreams() throws Exception {
80-
super.testVideoStreams();
78+
public void testVideoOnlyStreams() throws Exception {
79+
super.testVideoOnlyStreams();
8180
assertEquals(4, extractor.getVideoStreams().size());
8281
}
8382

@@ -115,7 +114,6 @@ public static void setUp() throws Exception {
115114
}
116115
@Override public String expectedUrlContains() { return URL; }
117116
@Override public String expectedOriginalUrlContains() { return URL; }
118-
@Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; }
119117
@Override public String expectedUploaderName() { return "36c3"; }
120118
@Override public String expectedUploaderUrl() { return "https://media.ccc.de/c/36c3"; }
121119
@Override public List<String> expectedDescriptionContains() { return Arrays.asList("WhatsApp", "Signal"); }
@@ -146,8 +144,8 @@ public void testUploaderAvatarUrl() throws Exception {
146144

147145
@Override
148146
@Test
149-
public void testVideoStreams() throws Exception {
150-
super.testVideoStreams();
147+
public void testVideoOnlyStreams() throws Exception {
148+
super.testVideoOnlyStreams();
151149
assertEquals(8, extractor.getVideoStreams().size());
152150
}
153151

extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeStreamExtractorTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ public void testGetLanguageInformation() throws ParsingException {
5757
@Override public String expectedUrlContains() { return INSTANCE + BASE_URL + ID; }
5858
@Override public String expectedOriginalUrlContains() { return URL; }
5959

60-
@Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; }
6160
@Override public String expectedUploaderName() { return "Framasoft"; }
6261
@Override public String expectedUploaderUrl() { return "https://framatube.org/accounts/[email protected]"; }
6362
@Override public String expectedSubChannelName() { return "A propos de PeerTube"; }
@@ -118,7 +117,6 @@ public static void setUp() throws Exception {
118117
@Override public String expectedUrlContains() { return INSTANCE + BASE_URL + ID; }
119118
@Override public String expectedOriginalUrlContains() { return URL; }
120119

121-
@Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; }
122120
@Override public String expectedUploaderName() { return "Marinauts"; }
123121
@Override public String expectedUploaderUrl() { return "https://tilvids.com/accounts/[email protected]"; }
124122
@Override public String expectedSubChannelName() { return "Main marinauts channel"; }
@@ -163,7 +161,6 @@ public static void setUp() throws Exception {
163161
@Override public String expectedUrlContains() { return INSTANCE + BASE_URL + ID; }
164162
@Override public String expectedOriginalUrlContains() { return URL; }
165163

166-
@Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; }
167164
@Override public String expectedUploaderName() { return "Résilience humaine"; }
168165
@Override public String expectedUploaderUrl() { return "https://nocensoring.net/accounts/[email protected]"; }
169166
@Override public String expectedSubChannelName() { return "SYSTEM FAILURE Quel à-venir ?"; }

0 commit comments

Comments
 (0)