Skip to content

Commit aeb8138

Browse files
committed
fix search querry tests
1 parent 701666f commit aeb8138

11 files changed

Lines changed: 120 additions & 109 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ public String toString() {
6767
////////////////////////////////////////////
6868
// Url Id handler
6969
////////////////////////////////////////////
70-
public abstract LinkHandlerFactory getStreamUIHFactory();
71-
public abstract ListLinkHandlerFactory getChannelUIHFactory();
72-
public abstract ListLinkHandlerFactory getPlaylistUIHFactory();
73-
public abstract SearchQueryHandlerFactory getSearchQIHFactory();
70+
public abstract LinkHandlerFactory getStreamLHFactory();
71+
public abstract ListLinkHandlerFactory getChannelLHFactory();
72+
public abstract ListLinkHandlerFactory getPlaylistLHFactory();
73+
public abstract SearchQueryHandlerFactory getSearchQHFactory();
7474

7575

7676
////////////////////////////////////////////
@@ -86,31 +86,31 @@ public String toString() {
8686
public abstract StreamExtractor getStreamExtractor(LinkHandler UIHFactory) throws ExtractionException;
8787

8888
public SearchExtractor getSearchExtractor(String query, List<String> contentFilter, String sortFilter, String contentCountry) throws ExtractionException {
89-
return getSearchExtractor(getSearchQIHFactory().fromQuery(query, contentFilter, sortFilter), contentCountry);
89+
return getSearchExtractor(getSearchQHFactory().fromQuery(query, contentFilter, sortFilter), contentCountry);
9090
}
9191

9292
public ChannelExtractor getChannelExtractor(String id, List<String> contentFilter, String sortFilter) throws ExtractionException {
93-
return getChannelExtractor(getChannelUIHFactory().fromQuery(id, contentFilter, sortFilter));
93+
return getChannelExtractor(getChannelLHFactory().fromQuery(id, contentFilter, sortFilter));
9494
}
9595

9696
public PlaylistExtractor getPlaylistExtractor(String id, List<String> contentFilter, String sortFilter) throws ExtractionException {
97-
return getPlaylistExtractor(getPlaylistUIHFactory().fromQuery(id, contentFilter, sortFilter));
97+
return getPlaylistExtractor(getPlaylistLHFactory().fromQuery(id, contentFilter, sortFilter));
9898
}
9999

100100
public SearchExtractor getSearchExtractor(String query, String contentCountry) throws ExtractionException {
101-
return getSearchExtractor(getSearchQIHFactory().fromQuery(query), contentCountry);
101+
return getSearchExtractor(getSearchQHFactory().fromQuery(query), contentCountry);
102102
}
103103

104104
public ChannelExtractor getChannelExtractor(String url) throws ExtractionException {
105-
return getChannelExtractor(getChannelUIHFactory().fromUrl(url));
105+
return getChannelExtractor(getChannelLHFactory().fromUrl(url));
106106
}
107107

108108
public PlaylistExtractor getPlaylistExtractor(String url) throws ExtractionException {
109-
return getPlaylistExtractor(getPlaylistUIHFactory().fromUrl(url));
109+
return getPlaylistExtractor(getPlaylistLHFactory().fromUrl(url));
110110
}
111111

112112
public StreamExtractor getStreamExtractor(String url) throws ExtractionException {
113-
return getStreamExtractor(getStreamUIHFactory().fromUrl(url));
113+
return getStreamExtractor(getStreamLHFactory().fromUrl(url));
114114
}
115115

116116

@@ -119,9 +119,9 @@ public StreamExtractor getStreamExtractor(String url) throws ExtractionException
119119
* figure out where the link is pointing to (a channel, video, playlist, etc.)
120120
*/
121121
public final LinkType getLinkTypeByUrl(String url) throws ParsingException {
122-
LinkHandlerFactory sH = getStreamUIHFactory();
123-
LinkHandlerFactory cH = getChannelUIHFactory();
124-
LinkHandlerFactory pH = getPlaylistUIHFactory();
122+
LinkHandlerFactory sH = getStreamLHFactory();
123+
LinkHandlerFactory cH = getChannelLHFactory();
124+
LinkHandlerFactory pH = getPlaylistLHFactory();
125125

126126
if (sH.acceptUrl(url)) {
127127
return LinkType.STREAM;

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ public SearchExtractor getSearchExtractor(SearchQueryHandler queryHandler, Strin
2626
}
2727

2828
@Override
29-
public SearchQueryHandlerFactory getSearchQIHFactory() {
29+
public SearchQueryHandlerFactory getSearchQHFactory() {
3030
return new SoundcloudSearchQueryHandlerFactory();
3131
}
3232

3333
@Override
34-
public LinkHandlerFactory getStreamUIHFactory() {
34+
public LinkHandlerFactory getStreamLHFactory() {
3535
return SoundcloudStreamLinkHandlerFactory.getInstance();
3636
}
3737

3838
@Override
39-
public ListLinkHandlerFactory getChannelUIHFactory() {
39+
public ListLinkHandlerFactory getChannelLHFactory() {
4040
return SoundcloudChannelLinkHandlerFactory.getInstance();
4141
}
4242

4343
@Override
44-
public ListLinkHandlerFactory getPlaylistUIHFactory() {
44+
public ListLinkHandlerFactory getPlaylistLHFactory() {
4545
return SoundcloudPlaylistLinkHandlerFactory.getInstance();
4646
}
4747

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudSubscriptionExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public List<SubscriptionItem> fromChannelUrl(String channelUrl) throws IOExcepti
3131

3232
String id;
3333
try {
34-
id = service.getChannelUIHFactory().fromUrl(getUrlFrom(channelUrl)).getId();
34+
id = service.getChannelLHFactory().fromUrl(getUrlFrom(channelUrl)).getId();
3535
} catch (ExtractionException e) {
3636
throw new InvalidSourceException(e);
3737
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,22 @@ public SearchExtractor getSearchExtractor(SearchQueryHandler query, String conte
4949
}
5050

5151
@Override
52-
public LinkHandlerFactory getStreamUIHFactory() {
52+
public LinkHandlerFactory getStreamLHFactory() {
5353
return YoutubeStreamLinkHandlerFactory.getInstance();
5454
}
5555

5656
@Override
57-
public ListLinkHandlerFactory getChannelUIHFactory() {
57+
public ListLinkHandlerFactory getChannelLHFactory() {
5858
return YoutubeChannelLinkHandlerFactory.getInstance();
5959
}
6060

6161
@Override
62-
public ListLinkHandlerFactory getPlaylistUIHFactory() {
62+
public ListLinkHandlerFactory getPlaylistLHFactory() {
6363
return YoutubePlaylistLinkHandlerFactory.getInstance();
6464
}
6565

6666
@Override
67-
public SearchQueryHandlerFactory getSearchQIHFactory() {
67+
public SearchQueryHandlerFactory getSearchQHFactory() {
6868
return YoutubeSearchQueryHandlerFactory.getInstance();
6969
}
7070

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ private String getNextPageUrlFrom(Document d) throws ParsingException {
175175
private void collectStreamsFrom(StreamInfoItemsCollector collector, Element element) {
176176
collector.reset();
177177

178-
final LinkHandlerFactory streamLinkHandlerFactory = getService().getStreamUIHFactory();
178+
final LinkHandlerFactory streamLinkHandlerFactory = getService().getStreamLHFactory();
179179
for (final Element li : element.children()) {
180180
if(isDeletedItem(li)) {
181181
continue;

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistInfoItemExtractor.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,22 @@ public String getName() throws ParsingException {
4848

4949
@Override
5050
public String getUrl() throws ParsingException {
51-
String url;
52-
5351
try {
54-
final Element href = el.select("div[class=\"yt-lockup-meta\"]").first()
55-
.select("a").first();
52+
final Element div = el.select("div[class=\"yt-lockup-meta\"]").first();
53+
54+
if(div != null) {
55+
final Element a = div.select("a").first();
56+
return a.attr("abs:href");
57+
}
58+
59+
// this is for yt premium playlists
60+
return el.select("h3[class=\"yt-lockup-title\"").first()
61+
.select("a").first()
62+
.attr("abs:href");
5663

57-
url = href.attr("abs:href");
5864
} catch (Exception e) {
5965
throw new ParsingException("Failed to extract playlist url", e);
6066
}
61-
62-
return url;
6367
}
6468

6569
@Override

extractor/src/test/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudSubscriptionExtractorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class SoundcloudSubscriptionExtractorTest {
2727
public static void setupClass() {
2828
NewPipe.init(Downloader.getInstance());
2929
subscriptionExtractor = new SoundcloudSubscriptionExtractor(ServiceList.SoundCloud);
30-
urlHandler = ServiceList.SoundCloud.getChannelUIHFactory();
30+
urlHandler = ServiceList.SoundCloud.getChannelLHFactory();
3131
}
3232

3333
@Test

extractor/src/test/java/org/schabi/newpipe/extractor/services/soundcloud/search/SoundcloudSearchQUHTest.java renamed to extractor/src/test/java/org/schabi/newpipe/extractor/services/soundcloud/search/SoundcloudSearchQHTest.java

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88
import static java.util.Arrays.asList;
99
import static org.junit.Assert.assertEquals;
1010
import static org.schabi.newpipe.extractor.ServiceList.SoundCloud;
11+
import static org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSearchQueryHandlerFactory.PLAYLISTS;
12+
import static org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSearchQueryHandlerFactory.TRACKS;
13+
import static org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSearchQueryHandlerFactory.USERS;
1114

12-
public class SoundcloudSearchQUHTest {
15+
public class SoundcloudSearchQHTest {
1316

1417
@BeforeClass
1518
public static void setUpClass() throws Exception {
@@ -24,50 +27,50 @@ private static String removeClientId(String url) {
2427
@Test
2528
public void testRegularValues() throws Exception {
2629
assertEquals("https://api-v2.soundcloud.com/search?q=asdf&limit=10&offset=0",
27-
removeClientId(SoundCloud.getSearchQIHFactory().fromQuery("asdf").getUrl()));
30+
removeClientId(SoundCloud.getSearchQHFactory().fromQuery("asdf").getUrl()));
2831
assertEquals("https://api-v2.soundcloud.com/search?q=hans&limit=10&offset=0",
29-
removeClientId(SoundCloud.getSearchQIHFactory().fromQuery("hans").getUrl()));
32+
removeClientId(SoundCloud.getSearchQHFactory().fromQuery("hans").getUrl()));
3033
assertEquals("https://api-v2.soundcloud.com/search?q=Poifj%26jaijf&limit=10&offset=0",
31-
removeClientId(SoundCloud.getSearchQIHFactory().fromQuery("Poifj&jaijf").getUrl()));
34+
removeClientId(SoundCloud.getSearchQHFactory().fromQuery("Poifj&jaijf").getUrl()));
3235
assertEquals("https://api-v2.soundcloud.com/search?q=G%C3%BCl%C3%BCm&limit=10&offset=0",
33-
removeClientId(SoundCloud.getSearchQIHFactory().fromQuery("Gülüm").getUrl()));
36+
removeClientId(SoundCloud.getSearchQHFactory().fromQuery("Gülüm").getUrl()));
3437
assertEquals("https://api-v2.soundcloud.com/search?q=%3Fj%24%29H%C2%A7B&limit=10&offset=0",
35-
removeClientId(SoundCloud.getSearchQIHFactory().fromQuery("?j$)H§B").getUrl()));
38+
removeClientId(SoundCloud.getSearchQHFactory().fromQuery("?j$)H§B").getUrl()));
3639
}
3740

3841
@Test
3942
public void testGetContentFilter() throws Exception {
40-
assertEquals("tracks", SoundCloud.getSearchQIHFactory()
43+
assertEquals("tracks", SoundCloud.getSearchQHFactory()
4144
.fromQuery("", asList(new String[]{"tracks"}), "").getContentFilters().get(0));
42-
assertEquals("users", SoundCloud.getSearchQIHFactory()
45+
assertEquals("users", SoundCloud.getSearchQHFactory()
4346
.fromQuery("asdf", asList(new String[]{"users"}), "").getContentFilters().get(0));
4447
}
4548

4649
@Test
4750
public void testWithContentfilter() throws Exception {
48-
assertEquals("https://api-v2.soundcloud.com/search/tracks?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQIHFactory()
49-
.fromQuery("asdf", asList(new String[]{"tracks"}), "").getUrl()));
50-
assertEquals("https://api-v2.soundcloud.com/search/users?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQIHFactory()
51-
.fromQuery("asdf", asList(new String[]{"users"}), "").getUrl()));
52-
assertEquals("https://api-v2.soundcloud.com/search/playlists?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQIHFactory()
53-
.fromQuery("asdf", asList(new String[]{"playlist"}), "").getUrl()));
54-
assertEquals("https://api-v2.soundcloud.com/search?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQIHFactory()
51+
assertEquals("https://api-v2.soundcloud.com/search/tracks?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory()
52+
.fromQuery("asdf", asList(new String[]{TRACKS}), "").getUrl()));
53+
assertEquals("https://api-v2.soundcloud.com/search/users?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory()
54+
.fromQuery("asdf", asList(new String[]{USERS}), "").getUrl()));
55+
assertEquals("https://api-v2.soundcloud.com/search/playlists?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory()
56+
.fromQuery("asdf", asList(new String[]{PLAYLISTS}), "").getUrl()));
57+
assertEquals("https://api-v2.soundcloud.com/search?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory()
5558
.fromQuery("asdf", asList(new String[]{"fjiijie"}), "").getUrl()));
5659
}
5760

5861
@Test
5962
public void testGetAvailableContentFilter() {
60-
final String[] contentFilter = SoundCloud.getSearchQIHFactory().getAvailableContentFilter();
63+
final String[] contentFilter = SoundCloud.getSearchQHFactory().getAvailableContentFilter();
6164
assertEquals(4, contentFilter.length);
62-
assertEquals("tracks", contentFilter[0]);
63-
assertEquals("users", contentFilter[1]);
64-
assertEquals("playlist", contentFilter[2]);
65-
assertEquals("any", contentFilter[3]);
65+
assertEquals("all", contentFilter[0]);
66+
assertEquals("tracks", contentFilter[1]);
67+
assertEquals("users", contentFilter[2]);
68+
assertEquals("playlists", contentFilter[3]);
6669
}
6770

6871
@Test
6972
public void testGetAvailableSortFilter() {
70-
final String[] contentFilter = SoundCloud.getSearchQIHFactory().getAvailableSortFilter();
73+
final String[] contentFilter = SoundCloud.getSearchQHFactory().getAvailableSortFilter();
7174
assertEquals(0, contentFilter.length);
7275
}
7376
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class YoutubeSubscriptionExtractorTest {
2929
public static void setupClass() {
3030
NewPipe.init(Downloader.getInstance());
3131
subscriptionExtractor = new YoutubeSubscriptionExtractor(ServiceList.YouTube);
32-
urlHandler = ServiceList.YouTube.getChannelUIHFactory();
32+
urlHandler = ServiceList.YouTube.getChannelLHFactory();
3333
}
3434

3535
@Test
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package org.schabi.newpipe.extractor.services.youtube.search;
2+
3+
import org.junit.Test;
4+
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory;
5+
6+
import static java.util.Arrays.asList;
7+
import static org.junit.Assert.assertEquals;
8+
import static org.schabi.newpipe.extractor.ServiceList.YouTube;
9+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.CHANNELS;
10+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.PLAYLISTS;
11+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.VIDEOS;
12+
13+
public class YoutubeSearchQHTest {
14+
15+
@Test
16+
public void testRegularValues() throws Exception {
17+
assertEquals("https://www.youtube.com/results?q=asdf", YouTube.getSearchQHFactory().fromQuery("asdf").getUrl());
18+
assertEquals("https://www.youtube.com/results?q=hans",YouTube.getSearchQHFactory().fromQuery("hans").getUrl());
19+
assertEquals("https://www.youtube.com/results?q=Poifj%26jaijf", YouTube.getSearchQHFactory().fromQuery("Poifj&jaijf").getUrl());
20+
assertEquals("https://www.youtube.com/results?q=G%C3%BCl%C3%BCm", YouTube.getSearchQHFactory().fromQuery("Gülüm").getUrl());
21+
assertEquals("https://www.youtube.com/results?q=%3Fj%24%29H%C2%A7B", YouTube.getSearchQHFactory().fromQuery("?j$)H§B").getUrl());
22+
}
23+
24+
@Test
25+
public void testGetContentFilter() throws Exception {
26+
assertEquals(VIDEOS, YouTube.getSearchQHFactory()
27+
.fromQuery("", asList(new String[]{VIDEOS}), "").getContentFilters().get(0));
28+
assertEquals(CHANNELS, YouTube.getSearchQHFactory()
29+
.fromQuery("asdf", asList(new String[]{CHANNELS}), "").getContentFilters().get(0));
30+
}
31+
32+
@Test
33+
public void testWithContentfilter() throws Exception {
34+
assertEquals("https://www.youtube.com/results?q=asdf&sp=EgIQAVAU", YouTube.getSearchQHFactory()
35+
.fromQuery("asdf", asList(new String[]{VIDEOS}), "").getUrl());
36+
assertEquals("https://www.youtube.com/results?q=asdf&sp=EgIQAlAU", YouTube.getSearchQHFactory()
37+
.fromQuery("asdf", asList(new String[]{CHANNELS}), "").getUrl());
38+
assertEquals("https://www.youtube.com/results?q=asdf&sp=EgIQA1AU", YouTube.getSearchQHFactory()
39+
.fromQuery("asdf", asList(new String[]{PLAYLISTS}), "").getUrl());
40+
assertEquals("https://www.youtube.com/results?q=asdf", YouTube.getSearchQHFactory()
41+
.fromQuery("asdf", asList(new String[]{"fjiijie"}), "").getUrl());
42+
}
43+
44+
@Test
45+
public void testGetAvailableContentFilter() {
46+
final String[] contentFilter = YouTube.getSearchQHFactory().getAvailableContentFilter();
47+
assertEquals(4, contentFilter.length);
48+
assertEquals("all", contentFilter[0]);
49+
assertEquals("videos", contentFilter[1]);
50+
assertEquals("channels", contentFilter[2]);
51+
assertEquals("playlists", contentFilter[3]);
52+
}
53+
54+
@Test
55+
public void testGetAvailableSortFilter() {
56+
final String[] contentFilter = YouTube.getSearchQHFactory().getAvailableSortFilter();
57+
assertEquals(0, contentFilter.length);
58+
}
59+
}

0 commit comments

Comments
 (0)