PropertyDeclaration with CSSWideKeyword is parsed

Addresses #15401

The desired result is for `CSSWideKeyword`s to return false (they are
parsed) and other Custom declaration values to return true (they are unparsed).
This commit is contained in:
Panashe M. Fundira 2017-03-11 20:50:41 -05:00
parent 0a3b373a6a
commit ec87545774
No known key found for this signature in database
GPG key ID: ABD6E90F51BF74B5
2 changed files with 24 additions and 1 deletions

View file

@ -1174,7 +1174,9 @@ impl PropertyDeclaration {
pub fn value_is_unparsed(&self) -> bool {
match *self {
PropertyDeclaration::WithVariables(..) => true,
PropertyDeclaration::Custom(..) => true,
PropertyDeclaration::Custom(_, ref value) => {
!matches!(value.borrow(), DeclaredValue::CSSWideKeyword(..))
}
_ => false,
}
}

View file

@ -1124,4 +1124,25 @@ mod shorthand_serialization {
assert_eq!(serialization, block_text);
}
}
mod keywords {
pub use super::*;
#[test]
fn css_wide_keywords_should_be_parsed() {
let block_text = "--a:inherit;";
let block = parse_declaration_block(block_text);
let serialization = block.to_css_string();
assert_eq!(serialization, "--a: inherit;");
}
#[test]
fn non_keyword_custom_property_should_be_unparsed() {
let block_text = "--main-color: #06c;";
let block = parse_declaration_block(block_text);
let serialization = block.to_css_string();
assert_eq!(serialization, block_text);
}
}
}