mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Fix parsing/serialization bug in contain property
This commit is contained in:
parent
86aa4e89c5
commit
05a4febc40
2 changed files with 17 additions and 5 deletions
|
@ -2096,8 +2096,10 @@ ${helpers.single_keyword("transform-style",
|
||||||
const LAYOUT = 0x02,
|
const LAYOUT = 0x02,
|
||||||
const STYLE = 0x04,
|
const STYLE = 0x04,
|
||||||
const PAINT = 0x08,
|
const PAINT = 0x08,
|
||||||
const STRICT = SIZE.bits | LAYOUT.bits | STYLE.bits | PAINT.bits,
|
const STRICT = 0x10,
|
||||||
const CONTENT = LAYOUT.bits | STYLE.bits | PAINT.bits,
|
const STRICT_BITS = SIZE.bits | LAYOUT.bits | STYLE.bits | PAINT.bits,
|
||||||
|
const CONTENT = 0x20,
|
||||||
|
const CONTENT_BITS = LAYOUT.bits | STYLE.bits | PAINT.bits,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2148,11 +2150,11 @@ ${helpers.single_keyword("transform-style",
|
||||||
return Ok(result)
|
return Ok(result)
|
||||||
}
|
}
|
||||||
if input.try(|input| input.expect_ident_matching("strict")).is_ok() {
|
if input.try(|input| input.expect_ident_matching("strict")).is_ok() {
|
||||||
result.insert(STRICT);
|
result.insert(STRICT | STRICT_BITS);
|
||||||
return Ok(result)
|
return Ok(result)
|
||||||
}
|
}
|
||||||
if input.try(|input| input.expect_ident_matching("content")).is_ok() {
|
if input.try(|input| input.expect_ident_matching("content")).is_ok() {
|
||||||
result.insert(CONTENT);
|
result.insert(CONTENT | CONTENT_BITS);
|
||||||
return Ok(result)
|
return Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use parsing::parse;
|
use parsing::parse;
|
||||||
|
use style_traits::ToCss;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn contain_longhand_should_parse_correctly() {
|
fn contain_longhand_should_parse_correctly() {
|
||||||
|
@ -13,11 +14,20 @@ fn contain_longhand_should_parse_correctly() {
|
||||||
assert_eq!(none, SpecifiedValue::empty());
|
assert_eq!(none, SpecifiedValue::empty());
|
||||||
|
|
||||||
let strict = parse_longhand!(contain, "strict");
|
let strict = parse_longhand!(contain, "strict");
|
||||||
assert_eq!(strict, contain::STRICT);
|
assert_eq!(strict, contain::STRICT | contain::STRICT_BITS);
|
||||||
|
|
||||||
|
let strict = parse_longhand!(contain, "content");
|
||||||
|
assert_eq!(strict, contain::CONTENT | contain::CONTENT_BITS);
|
||||||
|
|
||||||
let style_paint = parse_longhand!(contain, "style paint");
|
let style_paint = parse_longhand!(contain, "style paint");
|
||||||
assert_eq!(style_paint, contain::STYLE | contain::PAINT);
|
assert_eq!(style_paint, contain::STYLE | contain::PAINT);
|
||||||
|
|
||||||
|
assert_roundtrip_with_context!(contain::parse, "strict");
|
||||||
|
assert_roundtrip_with_context!(contain::parse, "size layout style paint");
|
||||||
|
|
||||||
|
assert_roundtrip_with_context!(contain::parse, "content");
|
||||||
|
assert_roundtrip_with_context!(contain::parse, "layout style paint");
|
||||||
|
|
||||||
// Assert that the `2px` is not consumed, which would trigger parsing failure in real use
|
// Assert that the `2px` is not consumed, which would trigger parsing failure in real use
|
||||||
assert_parser_exhausted!(contain::parse, "layout 2px", false);
|
assert_parser_exhausted!(contain::parse, "layout 2px", false);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue