Add test for audio stream languages.
This commit is contained in:
		
							parent
							
								
									30909da1df
								
							
						
					
					
						commit
						b16e6082e1
					
				
					 7 changed files with 1563 additions and 0 deletions
				
			
		|  | @ -23,6 +23,7 @@ package org.schabi.newpipe.extractor.services.youtube.stream; | ||||||
| import static org.junit.jupiter.api.Assertions.assertEquals; | import static org.junit.jupiter.api.Assertions.assertEquals; | ||||||
| import static org.junit.jupiter.api.Assertions.assertNotNull; | import static org.junit.jupiter.api.Assertions.assertNotNull; | ||||||
| import static org.junit.jupiter.api.Assertions.assertThrows; | import static org.junit.jupiter.api.Assertions.assertThrows; | ||||||
|  | import static org.junit.jupiter.api.Assertions.assertTrue; | ||||||
| import static org.schabi.newpipe.extractor.ServiceList.YouTube; | import static org.schabi.newpipe.extractor.ServiceList.YouTube; | ||||||
| 
 | 
 | ||||||
| import org.junit.jupiter.api.BeforeAll; | import org.junit.jupiter.api.BeforeAll; | ||||||
|  | @ -42,6 +43,7 @@ import org.schabi.newpipe.extractor.exceptions.YoutubeMusicPremiumContentExcepti | ||||||
| import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest; | import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest; | ||||||
| import org.schabi.newpipe.extractor.services.youtube.YoutubeTestsUtils; | import org.schabi.newpipe.extractor.services.youtube.YoutubeTestsUtils; | ||||||
| import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor; | import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor; | ||||||
|  | import org.schabi.newpipe.extractor.stream.AudioStream; | ||||||
| import org.schabi.newpipe.extractor.stream.Description; | import org.schabi.newpipe.extractor.stream.Description; | ||||||
| import org.schabi.newpipe.extractor.stream.StreamExtractor; | import org.schabi.newpipe.extractor.stream.StreamExtractor; | ||||||
| import org.schabi.newpipe.extractor.stream.StreamSegment; | import org.schabi.newpipe.extractor.stream.StreamSegment; | ||||||
|  | @ -464,4 +466,35 @@ public class YoutubeStreamExtractorDefaultTest { | ||||||
|             assertEquals("Creative Commons Attribution licence (reuse allowed)", extractor.getLicence()); |             assertEquals("Creative Commons Attribution licence (reuse allowed)", extractor.getLicence()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public static class AudioTrackLanguage { | ||||||
|  | 
 | ||||||
|  |         private static final String ID = "kX3nB4PpJko"; | ||||||
|  |         private static final String URL = BASE_URL + ID; | ||||||
|  |         private static StreamExtractor extractor; | ||||||
|  | 
 | ||||||
|  |         @BeforeAll | ||||||
|  |         public static void setUp() throws Exception { | ||||||
|  |             YoutubeTestsUtils.ensureStateless(); | ||||||
|  |             NewPipe.init(DownloaderFactory.getDownloader(RESOURCE_PATH + "audioTrack")); | ||||||
|  |             extractor = YouTube.getStreamExtractor(URL); | ||||||
|  |             extractor.fetchPage(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         @Test | ||||||
|  |         void testCheckAudioStreams() throws Exception { | ||||||
|  |             assertTrue(extractor.getAudioStreams().size() > 0); | ||||||
|  | 
 | ||||||
|  |             for (final AudioStream audioStream : extractor.getAudioStreams()) { | ||||||
|  |                 assertNotNull(audioStream.getAudioTrackName()); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             assertTrue( | ||||||
|  |                     extractor.getAudioStreams() | ||||||
|  |                             .stream() | ||||||
|  |                             .anyMatch(audioStream -> audioStream.getAudioTrackName().equals("English")) | ||||||
|  |             ); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,72 @@ | ||||||
|  | { | ||||||
|  |   "request": { | ||||||
|  |     "httpMethod": "GET", | ||||||
|  |     "url": "https://www.youtube.com/iframe_api", | ||||||
|  |     "headers": { | ||||||
|  |       "Accept-Language": [ | ||||||
|  |         "en-GB, en;q\u003d0.9" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "localization": { | ||||||
|  |       "languageCode": "en", | ||||||
|  |       "countryCode": "GB" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "response": { | ||||||
|  |     "responseCode": 200, | ||||||
|  |     "responseMessage": "", | ||||||
|  |     "responseHeaders": { | ||||||
|  |       "alt-svc": [ | ||||||
|  |         "h3\u003d\":443\"; ma\u003d2592000,h3-29\u003d\":443\"; ma\u003d2592000,h3-Q050\u003d\":443\"; ma\u003d2592000,h3-Q046\u003d\":443\"; ma\u003d2592000,h3-Q043\u003d\":443\"; ma\u003d2592000,quic\u003d\":443\"; ma\u003d2592000; v\u003d\"46,43\"" | ||||||
|  |       ], | ||||||
|  |       "cache-control": [ | ||||||
|  |         "private, max-age\u003d0" | ||||||
|  |       ], | ||||||
|  |       "content-type": [ | ||||||
|  |         "text/javascript; charset\u003dutf-8" | ||||||
|  |       ], | ||||||
|  |       "cross-origin-opener-policy-report-only": [ | ||||||
|  |         "same-origin; report-to\u003d\"youtube_main\"" | ||||||
|  |       ], | ||||||
|  |       "cross-origin-resource-policy": [ | ||||||
|  |         "cross-origin" | ||||||
|  |       ], | ||||||
|  |       "date": [ | ||||||
|  |         "Sun, 13 Nov 2022 23:10:02 GMT" | ||||||
|  |       ], | ||||||
|  |       "expires": [ | ||||||
|  |         "Sun, 13 Nov 2022 23:10:02 GMT" | ||||||
|  |       ], | ||||||
|  |       "p3p": [ | ||||||
|  |         "CP\u003d\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl\u003den-GB for more info.\"" | ||||||
|  |       ], | ||||||
|  |       "permissions-policy": [ | ||||||
|  |         "ch-ua-arch\u003d*, ch-ua-bitness\u003d*, ch-ua-full-version\u003d*, ch-ua-full-version-list\u003d*, ch-ua-model\u003d*, ch-ua-wow64\u003d*, ch-ua-platform\u003d*, ch-ua-platform-version\u003d*" | ||||||
|  |       ], | ||||||
|  |       "report-to": [ | ||||||
|  |         "{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}" | ||||||
|  |       ], | ||||||
|  |       "server": [ | ||||||
|  |         "ESF" | ||||||
|  |       ], | ||||||
|  |       "set-cookie": [ | ||||||
|  |         "YSC\u003dvUst81-3DYY; Domain\u003d.youtube.com; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone", | ||||||
|  |         "VISITOR_INFO1_LIVE\u003dvcz7Oi5zbD4; Domain\u003d.youtube.com; Expires\u003dFri, 12-May-2023 23:10:02 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone" | ||||||
|  |       ], | ||||||
|  |       "strict-transport-security": [ | ||||||
|  |         "max-age\u003d31536000" | ||||||
|  |       ], | ||||||
|  |       "x-content-type-options": [ | ||||||
|  |         "nosniff" | ||||||
|  |       ], | ||||||
|  |       "x-frame-options": [ | ||||||
|  |         "SAMEORIGIN" | ||||||
|  |       ], | ||||||
|  |       "x-xss-protection": [ | ||||||
|  |         "0" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "responseBody": "var scriptUrl \u003d \u0027https:\\/\\/www.youtube.com\\/s\\/player\\/c4225c42\\/www-widgetapi.vflset\\/www-widgetapi.js\u0027;try{var ttPolicy\u003dwindow.trustedTypes.createPolicy(\"youtube-widget-api\",{createScriptURL:function(x){return x}});scriptUrl\u003dttPolicy.createScriptURL(scriptUrl)}catch(e){}var YT;if(!window[\"YT\"])YT\u003d{loading:0,loaded:0};var YTConfig;if(!window[\"YTConfig\"])YTConfig\u003d{\"host\":\"https://www.youtube.com\"};\nif(!YT.loading){YT.loading\u003d1;(function(){var l\u003d[];YT.ready\u003dfunction(f){if(YT.loaded)f();else l.push(f)};window.onYTReady\u003dfunction(){YT.loaded\u003d1;for(var i\u003d0;i\u003cl.length;i++)try{l[i]()}catch(e$0){}};YT.setConfig\u003dfunction(c){for(var k in c)if(c.hasOwnProperty(k))YTConfig[k]\u003dc[k]};var a\u003ddocument.createElement(\"script\");a.type\u003d\"text/javascript\";a.id\u003d\"www-widgetapi-script\";a.src\u003dscriptUrl;a.async\u003dtrue;var c\u003ddocument.currentScript;if(c){var n\u003dc.nonce||c.getAttribute(\"nonce\");if(n)a.setAttribute(\"nonce\",n)}var b\u003d\ndocument.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})()};\n", | ||||||
|  |     "latestUrl": "https://www.youtube.com/iframe_api" | ||||||
|  |   } | ||||||
|  | } | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue