Skip to content

Commit 379e551

Browse files
committed
Create YouTubeChannelHelperTest
1 parent 6f13741 commit 379e551

7 files changed

Lines changed: 1794 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.schabi.newpipe.extractor.services.youtube;
2+
3+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
import static org.junit.jupiter.api.Assertions.assertThrows;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.params.ParameterizedTest;
9+
import org.junit.jupiter.params.provider.ValueSource;
10+
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
11+
12+
class YouTubeChannelHelperTest implements InitYoutubeTest {
13+
14+
@ParameterizedTest
15+
@ValueSource(strings = {
16+
"@TheDailyShow",
17+
"thedailyshow",
18+
"channel/UCwWhs_6x42TyRM4Wstoq8HA",
19+
"UCwWhs_6x42TyRM4Wstoq8HA"
20+
})
21+
void resolveSuccessfulTheDailyShow(final String idOrPath) {
22+
final String id = assertDoesNotThrow(
23+
() -> YoutubeChannelHelper.resolveChannelId(idOrPath));
24+
assertEquals("UCwWhs_6x42TyRM4Wstoq8HA", id);
25+
}
26+
27+
@Test
28+
void resolveFailNonExistingTag() {
29+
assertThrows(ExtractionException.class, () -> YoutubeChannelHelper.resolveChannelId(
30+
"@nonExistingHandleThatWillNeverExist15464"));
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
{
2+
"request": {
3+
"httpMethod": "GET",
4+
"url": "https://www.youtube.com/sw.js",
5+
"headers": {
6+
"Origin": [
7+
"https://www.youtube.com"
8+
],
9+
"Referer": [
10+
"https://www.youtube.com"
11+
],
12+
"Accept-Language": [
13+
"en-GB, en;q\u003d0.9"
14+
]
15+
},
16+
"localization": {
17+
"languageCode": "en",
18+
"countryCode": "GB"
19+
}
20+
},
21+
"response": {
22+
"responseCode": 200,
23+
"responseMessage": "",
24+
"responseHeaders": {
25+
"access-control-allow-credentials": [
26+
"true"
27+
],
28+
"access-control-allow-origin": [
29+
"https://www.youtube.com"
30+
],
31+
"alt-svc": [
32+
"h3\u003d\":443\"; ma\u003d2592000,h3-29\u003d\":443\"; ma\u003d2592000"
33+
],
34+
"cache-control": [
35+
"private, max-age\u003d0"
36+
],
37+
"content-security-policy": [
38+
"require-trusted-types-for \u0027script\u0027"
39+
],
40+
"content-security-policy-report-only": [
41+
"script-src \u0027unsafe-eval\u0027 \u0027self\u0027 \u0027unsafe-inline\u0027 https://www.google.com https://apis.google.com https://ssl.gstatic.com https://www.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com https://*.youtube.com https://*.google.com https://*.gstatic.com https://youtube.com https://www.youtube.com https://google.com https://*.doubleclick.net https://*.googleapis.com https://www.googleadservices.com https://tpc.googlesyndication.com https://www.youtubekids.com;report-uri /cspreport/allowlist"
42+
],
43+
"content-type": [
44+
"text/javascript; charset\u003dutf-8"
45+
],
46+
"cross-origin-opener-policy": [
47+
"same-origin; report-to\u003d\"youtube_main\""
48+
],
49+
"date": [
50+
"Sat, 26 Jul 2025 15:04:13 GMT"
51+
],
52+
"document-policy": [
53+
"include-js-call-stacks-in-crash-reports"
54+
],
55+
"expires": [
56+
"Sat, 26 Jul 2025 15:04:13 GMT"
57+
],
58+
"origin-trial": [
59+
"AmhMBR6zCLzDDxpW+HfpP67BqwIknWnyMOXOQGfzYswFmJe+fgaI6XZgAzcxOrzNtP7hEDsOo1jdjFnVr2IdxQ4AAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTc1ODA2NzE5OSwiaXNTdWJkb21haW4iOnRydWV9"
60+
],
61+
"p3p": [
62+
"CP\u003d\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl\u003den-GB for more info.\""
63+
],
64+
"permissions-policy": [
65+
"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-form-factors\u003d*, ch-ua-platform\u003d*, ch-ua-platform-version\u003d*"
66+
],
67+
"report-to": [
68+
"{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}"
69+
],
70+
"reporting-endpoints": [
71+
"default\u003d\"/web-reports?context\u003deJwNzllIlHEUBfD-nhJnvnG-796iVUisaB2x0VFohUKTyDQqsrSc1Bmz1KlxZprMCEptQaKwzXZ7yDCnDQrKrB6EIlog66GasAUqSdMeMsnM7sPv6ZxzueanI5rGblGvY7eogqFSNTm9TG0ze9T1XdtU7lSvSn1RrjJG-1Rtmk_1XfKpUItPdcUGVE5cQJ18HVDn3wVUSUdQDXwOqnNGdoR7fHZEUDhjsiNa1pnhdpvxq96Mn2Ezgj1m5MzUYI3X0L5UQ9dyDbcbNbTc1PD-qwZ_jgW9TguS_BZ4-izozIpGa300XrZHY9YqK-bVWnH5jhVZj6w4Ior-WvFj0Irk-TquLtERcOnQAjpOHdAx-4SOJSKqQUdco44xT3S0TjYQ5TRgFo5jBl6eNuAJGTBdM3DmmYHwbwNz_xhYP5Lgn0G4l0RwOgjJcwhVCwlnVhOa1xPe5xEyigg3igkFmwkXdxB6KwiVldIT-dWyrSU8F4sOEXrqCPajhAXHCQ-aCKOuEFY2E96GCBOuEjJvEwbvEobuE0yPCSNfSfaG8K2DENNJaOwipPQQPvUTNg3IP0OEw8MYmmJYTYzScYw7ExgnJzJOiy9xjMxJjNZpjCnTGYmJDIeIdDD-zWE0LmZUpDFuibdiVjpjaClj3TJGrtggnCJfFAq32CQ2ixJRJrYKr_CJgAiKClEpzmbKvSxGzQrG9zWMj7nSz2MUFcleDIhgOcPkZ6RuZ4SDjOSdjIO7Gf17GE17GX1VDFXN-FHDmL-P0S6q9jPW1jGGn2CkC1e9ZKcY3RcYHQ2MDyEGW6K6w3VtkcbDlra7Ks62w-P3-fNd8dtd-Ta311Pms7nKCm0F3mJfccHGkjx7gt2RkGJPjJ-dkLc14T85h9pr\""
72+
],
73+
"server": [
74+
"ESF"
75+
],
76+
"set-cookie": [
77+
"YSC\u003dONMo6mfB3bA; Domain\u003d.youtube.com; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
78+
"VISITOR_INFO1_LIVE\u003d; Domain\u003d.youtube.com; Expires\u003dSun, 30-Oct-2022 15:04:13 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone"
79+
],
80+
"strict-transport-security": [
81+
"max-age\u003d31536000"
82+
],
83+
"x-content-type-options": [
84+
"nosniff"
85+
],
86+
"x-frame-options": [
87+
"SAMEORIGIN"
88+
],
89+
"x-xss-protection": [
90+
"0"
91+
]
92+
},
93+
"responseBody": "\n self.addEventListener(\u0027install\u0027, event \u003d\u003e {\n event.waitUntil(self.skipWaiting());\n });\n self.addEventListener(\u0027activate\u0027, event \u003d\u003e {\n event.waitUntil(\n self.clients.claim().then(() \u003d\u003e self.registration.unregister()));\n });\n ",
94+
"latestUrl": "https://www.youtube.com/sw.js"
95+
}
96+
}

extractor/src/test/resources/mocks/v1/org/schabi/newpipe/extractor/services/youtube/youtubechannelhelper/generated_mock_1.json

Lines changed: 92 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)