//! Tests to check for changes in HTML output. //! //! To update the expected output, run the test again with the env variable //! `UPDATE_EXPECT=1` set. //! See https://docs.rs/expect-test/ for more information. use om_wikiparser::html::{detect_lang, process, process_str, HtmlError}; use expect_test::{expect_file, ExpectFile}; use scraper::Html; fn check(input: &str, expect: ExpectFile) { let html = Html::parse_document(input); let lang = detect_lang(&html).unwrap(); let html = process(html, &lang).unwrap(); let processed = html.html(); expect.assert_eq(&processed); } #[test] fn simplify_crimean_mountains() { check( include_str!("./data/Q748282-en/original.html"), expect_file!["./data/Q748282-en/output.html"], ); } #[test] fn simplify_thoor_ballylee() { check( include_str!("./data/Q4185820-en/original.html"), expect_file!["./data/Q4185820-en/output.html"], ); } #[test] fn not_redirect_crimean_mountains() { let article = include_str!("./data/Q748282-en/original.html"); assert!(process_str(article, "en").is_ok()); } #[test] fn not_redirect_thoor_ballylee() { let article = include_str!("./data/Q4185820-en/original.html"); assert!(process_str(article, "en").is_ok()); } #[test] fn is_redirect_abdalcık_aşkale() { let article = include_str!("./data/redirects/Abdalc%C4%B1k%2C%20A%C5%9Fkale.html"); assert_eq!( Err(HtmlError::Redirect("Aşkale".into())), process_str(article, "en") ); } #[test] fn is_empty_bahnstrecke_bassum_herford() { let article = include_str!("./data/redirects/Bahnstrecke%20Bassum%FF%FF%FFHerford.html"); assert_eq!(Err(HtmlError::NoText), process_str(article, "en")); }