From 0c0b91a727b85358f75c760b1e890040551750ab Mon Sep 17 00:00:00 2001 From: Matthias Endler Date: Mon, 29 Mar 2021 00:14:08 +0200 Subject: [PATCH] Fix YouTube quirk, add test --- src/client.rs | 14 ++++++++++++++ src/quirks/mod.rs | 3 +-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/client.rs b/src/client.rs index 1cda953..af9c84f 100644 --- a/src/client.rs +++ b/src/client.rs @@ -391,6 +391,20 @@ mod test { assert!(res.is_failure()); } + #[tokio::test] + async fn test_youtube() { + // This is applying a quirk. See the quirks module. + let client: Client = ClientBuilder::default().build().unwrap(); + assert!(client.check("https://www.youtube.com/watch?v=NlKuICiT470&list=PLbWDhxwM_45mPVToqaIZNbZeIzFchsKKQ&index=7") + .await + .unwrap() + .status.is_success()); + assert!(client.check("https://www.youtube.com/watch?v=invalidNlKuICiT470&list=PLbWDhxwM_45mPVToqaIZNbZeIzFchsKKQ&index=7") + .await + .unwrap() + .status.is_failure()); + } + #[tokio::test] async fn test_non_github() { let template = ResponseTemplate::new(200); diff --git a/src/quirks/mod.rs b/src/quirks/mod.rs index 6bd7b65..2eaf08f 100644 --- a/src/quirks/mod.rs +++ b/src/quirks/mod.rs @@ -38,7 +38,6 @@ impl Default for Quirks { let urlencoded: String = url::form_urlencoded::byte_serialize(original_url.as_str().as_bytes()) .collect(); - *out.method_mut() = Method::HEAD; let mut url = Url::parse("https://www.youtube.com/oembed").unwrap(); url.set_query(Some(&format!("url={}", urlencoded))); *out.url_mut() = url; @@ -91,7 +90,7 @@ mod tests { let modified = quirks.apply(request); let expected_url = Url::parse("https://www.youtube.com/oembed?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNlKuICiT470%26list%3DPLbWDhxwM_45mPVToqaIZNbZeIzFchsKKQ%26index%3D7").unwrap(); assert_eq!(modified.url(), &expected_url); - assert_eq!(modified.method(), Method::HEAD); + assert_eq!(modified.method(), Method::GET); } #[test]