diff options
Diffstat (limited to 'src/librustdoc/theme')
-rw-r--r-- | src/librustdoc/theme/tests.rs | 120 |
1 files changed, 95 insertions, 25 deletions
diff --git a/src/librustdoc/theme/tests.rs b/src/librustdoc/theme/tests.rs index ae8f43c6d..08a174d27 100644 --- a/src/librustdoc/theme/tests.rs +++ b/src/librustdoc/theme/tests.rs @@ -44,11 +44,7 @@ rule j end {} "#; let mut ret = Vec::new(); - get_differences( - &load_css_paths(against.as_bytes()), - &load_css_paths(text.as_bytes()), - &mut ret, - ); + get_differences(&load_css_paths(against).unwrap(), &load_css_paths(text).unwrap(), &mut ret); assert!(ret.is_empty()); } @@ -61,46 +57,45 @@ a c // sdf d {} "#; - let paths = load_css_paths(text.as_bytes()); - assert!(paths.children.contains(&CssPath::new("a b c d".to_owned()))); + let paths = load_css_paths(text).unwrap(); + assert!(paths.contains_key(&"a b c d".to_owned())); } #[test] fn test_comparison() { - let x = r#" -a { - b { - c {} - } + let origin = r#" +@a { + b {} + c {} } "#; - let y = r#" -a { + let against = r#" +@a { b {} } "#; - let against = load_css_paths(y.as_bytes()); - let other = load_css_paths(x.as_bytes()); + let origin = load_css_paths(origin).unwrap(); + let against = load_css_paths(against).unwrap(); let mut ret = Vec::new(); - get_differences(&against, &other, &mut ret); + get_differences(&against, &origin, &mut ret); assert!(ret.is_empty()); - get_differences(&other, &against, &mut ret); - assert_eq!(ret, vec![" Missing \"c\" rule".to_owned()]); + get_differences(&origin, &against, &mut ret); + assert_eq!(ret, vec![" Missing rule `c`".to_owned()]); } #[test] fn check_empty_css() { - let events = load_css_events(&[]); - assert_eq!(events.len(), 0); + let paths = load_css_paths("").unwrap(); + assert_eq!(paths.len(), 0); } #[test] fn check_invalid_css() { - let events = load_css_events(b"*"); - assert_eq!(events.len(), 0); + let paths = load_css_paths("*").unwrap(); + assert_eq!(paths.len(), 0); } #[test] @@ -108,10 +103,85 @@ fn test_with_minification() { let text = include_str!("../html/static/css/themes/dark.css"); let minified = minifier::css::minify(&text).expect("CSS minification failed").to_string(); - let against = load_css_paths(text.as_bytes()); - let other = load_css_paths(minified.as_bytes()); + let against = load_css_paths(text).unwrap(); + let other = load_css_paths(&minified).unwrap(); + + let mut ret = Vec::new(); + get_differences(&against, &other, &mut ret); + assert!(ret.is_empty()); +} + +#[test] +fn test_media() { + let text = r#" +@media (min-width: 701px) { + a:hover { + color: #fff; + } + + b { + x: y; + } +} + +@media (max-width: 1001px) { + b { + x: y; + } +} +"#; + + let paths = load_css_paths(text).unwrap(); + let p = paths.get("@media (min-width:701px)"); + assert!(p.is_some()); + let p = p.unwrap(); + assert!(p.children.get("a:hover").is_some()); + assert!(p.children.get("b").is_some()); + + let p = paths.get("@media (max-width:1001px)"); + assert!(p.is_some()); + let p = p.unwrap(); + assert!(p.children.get("b").is_some()); +} + +#[test] +fn test_css_variables() { + let x = r#" +:root { + --a: #fff; +} +"#; + + let y = r#" +:root { + --a: #fff; + --b: #fff; +} +"#; + + let against = load_css_paths(x).unwrap(); + let other = load_css_paths(y).unwrap(); let mut ret = Vec::new(); get_differences(&against, &other, &mut ret); assert!(ret.is_empty()); + get_differences(&other, &against, &mut ret); + assert_eq!(ret, vec![" Missing CSS variable `--b` in `:root`".to_owned()]); +} + +#[test] +fn test_weird_rule_value() { + let x = r#" +a[text=("a")] { + b: url({;}.png); + c: #fff +} +"#; + + let paths = load_css_paths(&x).unwrap(); + let p = paths.get("a[text=(\"a\")]"); + assert!(p.is_some()); + let p = p.unwrap(); + assert_eq!(p.rules.get("b"), Some(&"url({;}.png)".to_owned())); + assert_eq!(p.rules.get("c"), Some(&"#fff".to_owned())); } |