Fix YouTube quirk, add test

This commit is contained in:
Matthias Endler 2021-03-29 00:14:08 +02:00
parent 1e49df2e03
commit 0c0b91a727
2 changed files with 15 additions and 2 deletions

View file

@ -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);

View file

@ -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]