|
4 | 4 | import org.junit.jupiter.api.Test; |
5 | 5 | import org.schabi.newpipe.downloader.DownloaderTestImpl; |
6 | 6 | import org.schabi.newpipe.extractor.NewPipe; |
| 7 | +import org.schabi.newpipe.extractor.search.filter.FilterContainer; |
| 8 | +import org.schabi.newpipe.extractor.search.filter.FilterItem; |
| 9 | +import org.schabi.newpipe.extractor.services.DefaultSearchExtractorTest; |
| 10 | +import org.schabi.newpipe.extractor.services.soundcloud.search.filter.SoundcloudFilters; |
7 | 11 |
|
8 | | -import static java.util.Arrays.asList; |
| 12 | +import static java.util.Collections.singletonList; |
9 | 13 | import static org.junit.jupiter.api.Assertions.assertEquals; |
10 | 14 | import static org.schabi.newpipe.extractor.ServiceList.SoundCloud; |
11 | | -import static org.schabi.newpipe.extractor.services.soundcloud.linkHandler.SoundcloudSearchQueryHandlerFactory.*; |
12 | 15 |
|
13 | 16 | public class SoundcloudSearchQHTest { |
14 | 17 |
|
@@ -38,37 +41,61 @@ public void testRegularValues() throws Exception { |
38 | 41 |
|
39 | 42 | @Test |
40 | 43 | public void testGetContentFilter() throws Exception { |
41 | | - assertEquals("tracks", SoundCloud.getSearchQHFactory() |
42 | | - .fromQuery("", asList(new String[]{"tracks"}), "").getContentFilters().get(0)); |
43 | | - assertEquals("users", SoundCloud.getSearchQHFactory() |
44 | | - .fromQuery("asdf", asList(new String[]{"users"}), "").getContentFilters().get(0)); |
| 44 | + final FilterItem trackFilterItem = DefaultSearchExtractorTest.getFilterItem( |
| 45 | + SoundCloud, SoundcloudFilters.ID_CF_MAIN_TRACKS); |
| 46 | + final FilterItem usersFilterItem = DefaultSearchExtractorTest.getFilterItem( |
| 47 | + SoundCloud, SoundcloudFilters.ID_CF_MAIN_USERS); |
| 48 | + |
| 49 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_TRACKS, SoundCloud.getSearchQHFactory() |
| 50 | + .fromQuery("", singletonList(trackFilterItem), null) |
| 51 | + .getContentFilters().get(0).getIdentifier()); |
| 52 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_USERS, SoundCloud.getSearchQHFactory() |
| 53 | + .fromQuery("asdf", singletonList(usersFilterItem), null) |
| 54 | + .getContentFilters().get(0).getIdentifier()); |
45 | 55 | } |
46 | 56 |
|
47 | 57 | @Test |
48 | 58 | public void testWithContentfilter() throws Exception { |
| 59 | + final FilterItem trackFilterItem = DefaultSearchExtractorTest.getFilterItem( |
| 60 | + SoundCloud, SoundcloudFilters.ID_CF_MAIN_TRACKS); |
| 61 | + final FilterItem usersFilterItem = DefaultSearchExtractorTest.getFilterItem( |
| 62 | + SoundCloud, SoundcloudFilters.ID_CF_MAIN_USERS); |
| 63 | + final FilterItem playlistsFilterItem = DefaultSearchExtractorTest.getFilterItem( |
| 64 | + SoundCloud, SoundcloudFilters.ID_CF_MAIN_PLAYLISTS); |
| 65 | + |
49 | 66 | assertEquals("https://api-v2.soundcloud.com/search/tracks?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory() |
50 | | - .fromQuery("asdf", asList(new String[]{TRACKS}), "").getUrl())); |
| 67 | + .fromQuery("asdf", singletonList(trackFilterItem), null).getUrl())); |
51 | 68 | assertEquals("https://api-v2.soundcloud.com/search/users?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory() |
52 | | - .fromQuery("asdf", asList(new String[]{USERS}), "").getUrl())); |
| 69 | + .fromQuery("asdf", singletonList(usersFilterItem), null).getUrl())); |
53 | 70 | assertEquals("https://api-v2.soundcloud.com/search/playlists?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory() |
54 | | - .fromQuery("asdf", asList(new String[]{PLAYLISTS}), "").getUrl())); |
| 71 | + .fromQuery("asdf", singletonList(playlistsFilterItem), null).getUrl())); |
55 | 72 | assertEquals("https://api-v2.soundcloud.com/search?q=asdf&limit=10&offset=0", removeClientId(SoundCloud.getSearchQHFactory() |
56 | | - .fromQuery("asdf", asList(new String[]{"fjiijie"}), "").getUrl())); |
| 73 | + .fromQuery("asdf", singletonList(null), null).getUrl())); |
57 | 74 | } |
58 | 75 |
|
59 | 76 | @Test |
60 | 77 | public void testGetAvailableContentFilter() { |
61 | | - final String[] contentFilter = SoundCloud.getSearchQHFactory().getAvailableContentFilter(); |
62 | | - assertEquals(4, contentFilter.length); |
63 | | - assertEquals("all", contentFilter[0]); |
64 | | - assertEquals("tracks", contentFilter[1]); |
65 | | - assertEquals("users", contentFilter[2]); |
66 | | - assertEquals("playlists", contentFilter[3]); |
| 78 | + final FilterContainer contentFilter = |
| 79 | + SoundCloud.getSearchQHFactory().getAvailableContentFilter(); |
| 80 | + final int noOfContentFilters = DefaultSearchExtractorTest.getNoOfFilterItems(contentFilter); |
| 81 | + |
| 82 | + assertEquals(4, noOfContentFilters); |
| 83 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_ALL, |
| 84 | + contentFilter.getFilterGroups()[0].getFilterItems()[0].getIdentifier()); |
| 85 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_TRACKS, |
| 86 | + contentFilter.getFilterGroups()[0].getFilterItems()[1].getIdentifier()); |
| 87 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_USERS, |
| 88 | + contentFilter.getFilterGroups()[0].getFilterItems()[2].getIdentifier()); |
| 89 | + assertEquals(SoundcloudFilters.ID_CF_MAIN_PLAYLISTS, |
| 90 | + contentFilter.getFilterGroups()[0].getFilterItems()[3].getIdentifier()); |
67 | 91 | } |
68 | 92 |
|
69 | 93 | @Test |
70 | 94 | public void testGetAvailableSortFilter() { |
71 | | - final String[] contentFilter = SoundCloud.getSearchQHFactory().getAvailableSortFilter(); |
72 | | - assertEquals(0, contentFilter.length); |
| 95 | + final FilterContainer contentFilterContainer = |
| 96 | + SoundCloud.getSearchQHFactory().getAvailableContentFilter(); |
| 97 | + final int noOfSortFilters = |
| 98 | + DefaultSearchExtractorTest.getNoOfSortFilterItems(contentFilterContainer); |
| 99 | + assertEquals(13, noOfSortFilters); |
73 | 100 | } |
74 | 101 | } |
0 commit comments