// ██████╗ █████╗ ███████╗███████╗██╗███╗ ██╗ ██████╗ // ██╔══██╗██╔══██╗██╔════╝██╔════╝██║████╗ ██║██╔════╝ // ██████╔╝███████║███████╗███████╗██║██╔██╗ ██║██║ ███╗ // ██╔═══╝ ██╔══██║╚════██║╚════██║██║██║╚██╗██║██║ ██║ // ██║ ██║ ██║███████║███████║██║██║ ╚████║╚██████╔╝ // ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝ #[cfg(test)] mod passing { use monolith::html; #[test] fn meta_content_type() { let html = "<!doctype html> <html> <head> <meta http-equiv=\"content-type\" content=\"text/html;charset=GB2312\" /> </head> <body> </body> </html>"; let dom = html::html_to_dom(&html.as_bytes().to_vec(), "".to_string()); assert_eq!(html::get_charset(&dom.document), Some("GB2312".to_string())); } #[test] fn meta_charset() { let html = "<!doctype html> <html> <head> <meta charset=\"GB2312\" /> </head> <body> </body> </html>"; let dom = html::html_to_dom(&html.as_bytes().to_vec(), "".to_string()); assert_eq!(html::get_charset(&dom.document), Some("GB2312".to_string())); } #[test] fn multiple_conflicting_meta_charset_first() { let html = "<!doctype html> <html> <head> <meta charset=\"utf-8\" /> <meta http-equiv=\"content-type\" content=\"text/html;charset=GB2312\" /> </head> <body> </body> </html>"; let dom = html::html_to_dom(&html.as_bytes().to_vec(), "".to_string()); assert_eq!(html::get_charset(&dom.document), Some("utf-8".to_string())); } #[test] fn multiple_conflicting_meta_content_type_first() { let html = "<!doctype html> <html> <head> <meta http-equiv=\"content-type\" content=\"text/html;charset=GB2312\" /> <meta charset=\"utf-8\" /> </head> <body> </body> </html>"; let dom = html::html_to_dom(&html.as_bytes().to_vec(), "".to_string()); assert_eq!(html::get_charset(&dom.document), Some("GB2312".to_string())); } }