1+ package org .schabi .newpipe .extractor .services .youtube ;
2+
3+ import org .junit .BeforeClass ;
4+ import org .junit .Test ;
5+ import org .schabi .newpipe .Downloader ;
6+ import org .schabi .newpipe .extractor .NewPipe ;
7+ import org .schabi .newpipe .extractor .exceptions .ParsingException ;
8+ import org .schabi .newpipe .extractor .services .youtube .linkHandler .YoutubePlaylistLinkHandlerFactory ;
9+ import org .schabi .newpipe .extractor .utils .Localization ;
10+
11+ import static org .junit .Assert .*;
12+
13+ /**
14+ * Test for {@link YoutubePlaylistLinkHandlerFactory}
15+ */
16+ public class YoutubePlaylistLinkHandlerFactoryTest {
17+ private static YoutubePlaylistLinkHandlerFactory linkHandler ;
18+
19+ @ BeforeClass
20+ public static void setUp () {
21+ linkHandler = YoutubePlaylistLinkHandlerFactory .getInstance ();
22+ NewPipe .init (Downloader .getInstance (), new Localization ("GB" , "en" ));
23+ }
24+
25+ @ Test (expected = IllegalArgumentException .class )
26+ public void getIdWithNullAsUrl () throws ParsingException {
27+ linkHandler .fromId (null );
28+ }
29+
30+ @ Test
31+ public void getIdfromYt () throws Exception {
32+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
33+ assertEquals ("PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" , linkHandler .fromUrl ("https://www.youtube.com/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ).getId ());
34+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
35+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://WWW.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
36+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("HTTPS://www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
37+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.youtube.com/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
38+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("http://www.youtube.com/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
39+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://m.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
40+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
41+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
42+ assertEquals ("PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" , linkHandler .fromUrl ("www.youtube.com/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ).getId ());
43+ }
44+
45+ @ Test
46+ public void testAcceptYtUrl () throws ParsingException {
47+ assertTrue (linkHandler .acceptUrl ("https://www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
48+ assertTrue (linkHandler .acceptUrl ("https://www.youtube.com/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
49+ assertTrue (linkHandler .acceptUrl ("https://WWW.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dCI" ));
50+ assertTrue (linkHandler .acceptUrl ("HTTPS://www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
51+ assertTrue (linkHandler .acceptUrl ("https://www.youtube.com/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
52+ assertTrue (linkHandler .acceptUrl ("http://www.youtube.com/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
53+ assertTrue (linkHandler .acceptUrl ("https://m.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
54+ assertTrue (linkHandler .acceptUrl ("https://youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
55+ assertTrue (linkHandler .acceptUrl ("www.youtube.com/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
56+ assertTrue (linkHandler .acceptUrl ("www.youtube.com/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
57+ }
58+
59+ @ Test
60+ public void testDeniesInvalidYtUrl () throws ParsingException {
61+ assertFalse (linkHandler .acceptUrl ("https://www.youtube.com/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
62+ assertFalse (linkHandler .acceptUrl ("https://www.youtube.com/feed/subscriptions?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
63+ assertFalse (linkHandler .acceptUrl ("ftp://www.youtube.com/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
64+ assertFalse (linkHandler .acceptUrl ("www.youtube.com:22/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
65+ assertFalse (linkHandler .acceptUrl ("youtube . com/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
66+ assertFalse (linkHandler .acceptUrl ("?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
67+ }
68+
69+ @ Test
70+ public void testAcceptInvidioUrl () throws ParsingException {
71+ assertTrue (linkHandler .acceptUrl ("https://www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
72+ assertTrue (linkHandler .acceptUrl ("https://www.invidio.us/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
73+ assertTrue (linkHandler .acceptUrl ("https://WWW.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dCI" ));
74+ assertTrue (linkHandler .acceptUrl ("HTTPS://www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
75+ assertTrue (linkHandler .acceptUrl ("https://www.invidio.us/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
76+ assertTrue (linkHandler .acceptUrl ("http://www.invidio.us/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
77+ assertTrue (linkHandler .acceptUrl ("https://invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
78+ assertTrue (linkHandler .acceptUrl ("www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ));
79+ assertTrue (linkHandler .acceptUrl ("www.invidio.us/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
80+ }
81+
82+ @ Test
83+ public void testDeniesInvalidInvidioUrl () throws ParsingException {
84+ assertFalse (linkHandler .acceptUrl ("https://invidio.us/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
85+ assertFalse (linkHandler .acceptUrl ("https://invidio.us/feed/subscriptions?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
86+ assertFalse (linkHandler .acceptUrl ("ftp:/invidio.us/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
87+ assertFalse (linkHandler .acceptUrl ("invidio.us:22/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
88+ assertFalse (linkHandler .acceptUrl ("invidio . us/feed/trending?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
89+ assertFalse (linkHandler .acceptUrl ("?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ));
90+ }
91+
92+ @ Test
93+ public void testGetInvidioIdfromUrl () throws ParsingException {
94+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
95+ assertEquals ("PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" , linkHandler .fromUrl ("https://www.invidio.us/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ).getId ());
96+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
97+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://WWW.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
98+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("HTTPS://www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC&t=100" ).getId ());
99+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://www.invidio.us/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
100+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("http://www.invidio.us/watch?v=0JFM3PRZH-k&index=8&list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
101+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("https://invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
102+ assertEquals ("PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" , linkHandler .fromUrl ("www.invidio.us/playlist?list=PLW5y1tjAOzI3orQNF1yGGVL5x-pR2K1dC" ).getId ());
103+ assertEquals ("PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" , linkHandler .fromUrl ("www.invidio.us/playlist?list=PLz8YL4HVC87WJQDzVoY943URKQCsHS9XV" ).getId ());
104+ }
105+ }
0 commit comments