#[test]
fn test_comparison() {
- let x = r#"
+ let origin = r#"
@a {
b {}
+ c {}
}
"#;
- let y = r#"
+ let against = r#"
@a {
b {}
- c {}
}
"#;
- let against = load_css_paths(y).unwrap();
- let other = load_css_paths(x).unwrap();
+ 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);
+ get_differences(&origin, &against, &mut ret);
assert_eq!(ret, vec![" Missing rule `c`".to_owned()]);
}
x: y;
}
}
+
+@media (max-width: 1001px) {
+ b {
+ x: y;
+ }
+}
"#;
let paths = load_css_paths(text).unwrap();
- eprintln!("{:?}", paths);
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()));
}