Skip to content

Commit c6d9063

Browse files
committed
Fixed YoutubeDashManifestCreatorsTest
1 parent 786d0c7 commit c6d9063

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreator/YoutubeProgressiveDashManifestCreator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ public String generateManifest() {
5757
protected void generateBaseUrlElement(@Nonnull final String baseUrl)
5858
throws DashManifestCreationException {
5959
try {
60-
final Element representationElement = getFirstElementByName(REPRESENTATION);
60+
final Element baseURLElement = createElement(BASE_URL);
6161

62-
appendNewAttrWithValue(representationElement, BASE_URL, baseUrl);
62+
baseURLElement.setTextContent(baseUrl);
63+
64+
getFirstElementByName(REPRESENTATION).appendChild(baseURLElement);
6365
} catch (final DOMException e) {
6466
throw DashManifestCreationException.couldNotAddElement(BASE_URL, e);
6567
}

extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeDashManifestCreatorsTest.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@
3333
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor;
3434
import org.schabi.newpipe.extractor.streamdata.delivery.DASHManifestDeliveryData;
3535
import org.schabi.newpipe.extractor.streamdata.delivery.dashmanifestcreator.DashManifestCreator;
36+
import org.schabi.newpipe.extractor.streamdata.stream.AudioStream;
3637
import org.schabi.newpipe.extractor.streamdata.stream.BaseAudioStream;
3738
import org.schabi.newpipe.extractor.streamdata.stream.Stream;
39+
import org.schabi.newpipe.extractor.streamdata.stream.VideoAudioStream;
3840
import org.schabi.newpipe.extractor.streamdata.stream.VideoStream;
41+
import org.schabi.newpipe.extractor.streamdata.stream.quality.VideoQualityData;
3942
import org.w3c.dom.Document;
4043
import org.w3c.dom.Element;
4144
import org.w3c.dom.NodeList;
@@ -45,7 +48,10 @@
4548
import java.util.ArrayList;
4649
import java.util.Arrays;
4750
import java.util.Collection;
51+
import java.util.LinkedHashMap;
4852
import java.util.List;
53+
import java.util.Map;
54+
import java.util.stream.Collectors;
4955
import java.util.stream.IntStream;
5056

5157
import javax.annotation.Nonnull;
@@ -84,8 +90,8 @@
8490
*/
8591
class YoutubeDashManifestCreatorsTest {
8692
// Setting a higher number may let Google video servers return 403s
87-
private static final int MAX_STREAMS_TO_TEST_PER_METHOD = 3;
88-
private static final String url = "https://www.youtube.com/watch?v=DJ8GQUNUXGM";
93+
private static final int MAX_STREAMS_TO_TEST_PER_METHOD = 5;
94+
private static final String URL = "https://www.youtube.com/watch?v=DJ8GQUNUXGM";
8995

9096
private static final String RESOURCE_PATH =
9197
DownloaderFactory.RESOURCE_PATH + "services/youtube/extractor/dashmanifest/";
@@ -97,28 +103,38 @@ public static void setUp() throws Exception {
97103
YoutubeTestsUtils.ensureStateless();
98104
NewPipe.init(DownloaderFactory.getDownloader(RESOURCE_PATH));
99105

100-
extractor = (YoutubeStreamExtractor) YouTube.getStreamExtractor(url);
106+
extractor = (YoutubeStreamExtractor) YouTube.getStreamExtractor(URL);
101107
extractor.fetchPage();
102108
}
103109

104110
@Test
105111
void testVideoOnlyStreams() throws ExtractionException {
106-
checkStreams(extractor.getVideoOnlyStreams());
112+
final List<VideoStream> videoStreams = getDashStreams(extractor.getVideoOnlyStreams());
113+
assertTrue(videoStreams.size() > 0);
114+
checkDashStreams(videoStreams);
107115
}
108116

109117
@Test
110118
void testVideoStreams() throws ExtractionException {
111-
checkStreams(extractor.getVideoStreams());
119+
List<VideoAudioStream> videoAudioStreams = getDashStreams(extractor.getVideoStreams());
120+
assertEquals(0, videoAudioStreams.size(), "There should be no dash streams for video-audio streams");
112121
}
113122

114123
@Test
115124
void testAudioStreams() throws ExtractionException {
116-
checkStreams(extractor.getAudioStreams());
125+
final List<AudioStream> audioStreams = getDashStreams(extractor.getAudioStreams());
126+
assertTrue(audioStreams.size() > 0);
127+
checkDashStreams(audioStreams);
117128
}
118129

119-
private <S extends Stream<?>> void checkStreams(final Collection<S> streams) {
120-
assertAll(streams.stream()
130+
private <S extends Stream<?>> List<S> getDashStreams(final List<S> streams) {
131+
return streams.stream()
121132
.filter(s -> s.deliveryData() instanceof DASHManifestDeliveryData)
133+
.collect(Collectors.toList());
134+
}
135+
136+
private <S extends Stream<?>> void checkDashStreams(final Collection<S> streams) {
137+
assertAll(streams.stream()
122138
.limit(MAX_STREAMS_TO_TEST_PER_METHOD)
123139
.map(s ->
124140
() -> checkManifest(s,

0 commit comments

Comments
 (0)