Skip to content

Commit 2af610e

Browse files
committed
Add tests for other YT Music search types
1 parent c7f7bd2 commit 2af610e

2 files changed

Lines changed: 91 additions & 1 deletion

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeSearchQueryHandlerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public String[] getAvailableContentFilter() {
6767
MUSIC_SONGS,
6868
MUSIC_VIDEOS,
6969
MUSIC_ALBUMS,
70-
MUSIC_PLAYLISTS,
70+
MUSIC_PLAYLISTS
7171
// MUSIC_ARTISTS
7272
};
7373
}

extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeMusicSearchExtractorTest.java

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.schabi.newpipe.extractor.services.youtube.search;
22

33
import org.junit.BeforeClass;
4+
import org.junit.Ignore;
45
import org.schabi.newpipe.DownloaderTestImpl;
56
import org.schabi.newpipe.extractor.InfoItem;
67
import org.schabi.newpipe.extractor.NewPipe;
@@ -39,6 +40,95 @@ public static void setUp() throws Exception {
3940
@Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.STREAM; }
4041
}
4142

43+
public static class MusicVideos extends DefaultSearchExtractorTest {
44+
private static SearchExtractor extractor;
45+
private static final String QUERY = "fresku";
46+
47+
@BeforeClass
48+
public static void setUp() throws Exception {
49+
NewPipe.init(DownloaderTestImpl.getInstance());
50+
extractor = YouTube.getSearchExtractor(QUERY, singletonList(YoutubeSearchQueryHandlerFactory.MUSIC_VIDEOS), "");
51+
extractor.fetchPage();
52+
}
53+
54+
@Override public SearchExtractor extractor() { return extractor; }
55+
@Override public StreamingService expectedService() { return YouTube; }
56+
@Override public String expectedName() { return QUERY; }
57+
@Override public String expectedId() { return QUERY; }
58+
@Override public String expectedUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
59+
@Override public String expectedOriginalUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
60+
@Override public String expectedSearchString() { return QUERY; }
61+
@Nullable @Override public String expectedSearchSuggestion() { return null; }
62+
@Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.STREAM; }
63+
}
64+
65+
public static class MusicAlbums extends DefaultSearchExtractorTest {
66+
private static SearchExtractor extractor;
67+
private static final String QUERY = "johnny sellah";
68+
69+
@BeforeClass
70+
public static void setUp() throws Exception {
71+
NewPipe.init(DownloaderTestImpl.getInstance());
72+
extractor = YouTube.getSearchExtractor(QUERY, singletonList(YoutubeSearchQueryHandlerFactory.MUSIC_ALBUMS), "");
73+
extractor.fetchPage();
74+
}
75+
76+
@Override public SearchExtractor extractor() { return extractor; }
77+
@Override public StreamingService expectedService() { return YouTube; }
78+
@Override public String expectedName() { return QUERY; }
79+
@Override public String expectedId() { return QUERY; }
80+
@Override public String expectedUrlContains() { return "music.youtube.com/search?q=" + URLEncoder.encode(QUERY); }
81+
@Override public String expectedOriginalUrlContains() { return "music.youtube.com/search?q=" + URLEncoder.encode(QUERY); }
82+
@Override public String expectedSearchString() { return QUERY; }
83+
@Nullable @Override public String expectedSearchSuggestion() { return null; }
84+
@Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.PLAYLIST; }
85+
}
86+
87+
public static class MusicPlaylists extends DefaultSearchExtractorTest {
88+
private static SearchExtractor extractor;
89+
private static final String QUERY = "louivos";
90+
91+
@BeforeClass
92+
public static void setUp() throws Exception {
93+
NewPipe.init(DownloaderTestImpl.getInstance());
94+
extractor = YouTube.getSearchExtractor(QUERY, singletonList(YoutubeSearchQueryHandlerFactory.MUSIC_PLAYLISTS), "");
95+
extractor.fetchPage();
96+
}
97+
98+
@Override public SearchExtractor extractor() { return extractor; }
99+
@Override public StreamingService expectedService() { return YouTube; }
100+
@Override public String expectedName() { return QUERY; }
101+
@Override public String expectedId() { return QUERY; }
102+
@Override public String expectedUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
103+
@Override public String expectedOriginalUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
104+
@Override public String expectedSearchString() { return QUERY; }
105+
@Nullable @Override public String expectedSearchSuggestion() { return null; }
106+
@Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.PLAYLIST; }
107+
}
108+
109+
@Ignore
110+
public static class MusicArtists extends DefaultSearchExtractorTest {
111+
private static SearchExtractor extractor;
112+
private static final String QUERY = "kevin";
113+
114+
@BeforeClass
115+
public static void setUp() throws Exception {
116+
NewPipe.init(DownloaderTestImpl.getInstance());
117+
extractor = YouTube.getSearchExtractor(QUERY, singletonList(YoutubeSearchQueryHandlerFactory.MUSIC_ARTISTS), "");
118+
extractor.fetchPage();
119+
}
120+
121+
@Override public SearchExtractor extractor() { return extractor; }
122+
@Override public StreamingService expectedService() { return YouTube; }
123+
@Override public String expectedName() { return QUERY; }
124+
@Override public String expectedId() { return QUERY; }
125+
@Override public String expectedUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
126+
@Override public String expectedOriginalUrlContains() { return "music.youtube.com/search?q=" + QUERY; }
127+
@Override public String expectedSearchString() { return QUERY; }
128+
@Nullable @Override public String expectedSearchSuggestion() { return null; }
129+
@Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.CHANNEL; }
130+
}
131+
42132
public static class Suggestion extends DefaultSearchExtractorTest {
43133
private static SearchExtractor extractor;
44134
private static final String QUERY = "megaman x3";

0 commit comments

Comments
 (0)