mirror of
https://github.com/servo/servo.git
synced 2025-08-10 07:55:33 +01:00
Have shorthand parsing functions return values
Shorthands are responsible to set all its longhands to a proper value, rather than returning None. Fixes #15380.
This commit is contained in:
parent
2e07ce7e84
commit
f33b0b4ea3
18 changed files with 240 additions and 259 deletions
|
@ -20,15 +20,15 @@ fn background_shorthand_should_parse_all_available_properties_when_specified() {
|
|||
content-box red");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_image.unwrap(), parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
assert_eq!(result.background_position_x.unwrap(), parse_longhand!(background_position_x, "center"));
|
||||
assert_eq!(result.background_position_y.unwrap(), parse_longhand!(background_position_y, "top"));
|
||||
assert_eq!(result.background_size.unwrap(), parse_longhand!(background_size, "200px 200px"));
|
||||
assert_eq!(result.background_repeat.unwrap(), parse_longhand!(background_repeat, "repeat-x"));
|
||||
assert_eq!(result.background_attachment.unwrap(), parse_longhand!(background_attachment, "fixed"));
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "content-box"));
|
||||
assert_eq!(result.background_color.unwrap(), parse_longhand!(background_color, "red"));
|
||||
assert_eq!(result.background_image, parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
assert_eq!(result.background_position_x, parse_longhand!(background_position_x, "center"));
|
||||
assert_eq!(result.background_position_y, parse_longhand!(background_position_y, "top"));
|
||||
assert_eq!(result.background_size, parse_longhand!(background_size, "200px 200px"));
|
||||
assert_eq!(result.background_repeat, parse_longhand!(background_repeat, "repeat-x"));
|
||||
assert_eq!(result.background_attachment, parse_longhand!(background_attachment, "fixed"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "content-box"));
|
||||
assert_eq!(result.background_color, parse_longhand!(background_color, "red"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -38,27 +38,27 @@ fn background_shorthand_should_parse_when_some_fields_set() {
|
|||
let mut parser = Parser::new("14px 40px repeat-y");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_position_x.unwrap(), parse_longhand!(background_position_x, "14px"));
|
||||
assert_eq!(result.background_position_y.unwrap(), parse_longhand!(background_position_y, "40px"));
|
||||
assert_eq!(result.background_repeat.unwrap(), parse_longhand!(background_repeat, "repeat-y"));
|
||||
assert_eq!(result.background_position_x, parse_longhand!(background_position_x, "14px"));
|
||||
assert_eq!(result.background_position_y, parse_longhand!(background_position_y, "40px"));
|
||||
assert_eq!(result.background_repeat, parse_longhand!(background_repeat, "repeat-y"));
|
||||
|
||||
let mut parser = Parser::new("url(\"http://servo/test.png\") repeat blue");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_image.unwrap(), parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
assert_eq!(result.background_repeat.unwrap(), parse_longhand!(background_repeat, "repeat"));
|
||||
assert_eq!(result.background_color.unwrap(), parse_longhand!(background_color, "blue"));
|
||||
assert_eq!(result.background_image, parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
assert_eq!(result.background_repeat, parse_longhand!(background_repeat, "repeat"));
|
||||
assert_eq!(result.background_color, parse_longhand!(background_color, "blue"));
|
||||
|
||||
let mut parser = Parser::new("padding-box");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "padding-box"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "padding-box"));
|
||||
|
||||
let mut parser = Parser::new("url(\"http://servo/test.png\")");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_image.unwrap(), parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
assert_eq!(result.background_image, parse_longhand!(background_image, "url(\"http://servo/test.png\")"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -69,17 +69,17 @@ fn background_shorthand_should_parse_comma_separated_declarations() {
|
|||
center / 100% 100% no-repeat, white");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_image.unwrap(), parse_longhand!(background_image, "url(\"http://servo/test.png\"), \
|
||||
assert_eq!(result.background_image, parse_longhand!(background_image, "url(\"http://servo/test.png\"), \
|
||||
url(\"http://servo/test.png\"), none"));
|
||||
assert_eq!(result.background_position_x.unwrap(), parse_longhand!(background_position_x, "left, center, 0%"));
|
||||
assert_eq!(result.background_position_y.unwrap(), parse_longhand!(background_position_y, "top, center, 0%"));
|
||||
assert_eq!(result.background_repeat.unwrap(), parse_longhand!(background_repeat, "no-repeat, no-repeat, repeat"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "border-box, border-box, border-box"));
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box, padding-box, \
|
||||
assert_eq!(result.background_position_x, parse_longhand!(background_position_x, "left, center, 0%"));
|
||||
assert_eq!(result.background_position_y, parse_longhand!(background_position_y, "top, center, 0%"));
|
||||
assert_eq!(result.background_repeat, parse_longhand!(background_repeat, "no-repeat, no-repeat, repeat"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "border-box, border-box, border-box"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box, padding-box, \
|
||||
padding-box"));
|
||||
assert_eq!(result.background_size.unwrap(), parse_longhand!(background_size, "auto auto, 100% 100%, auto auto"));
|
||||
assert_eq!(result.background_attachment.unwrap(), parse_longhand!(background_attachment, "scroll, scroll, scroll"));
|
||||
assert_eq!(result.background_color.unwrap(), parse_longhand!(background_color, "white"));
|
||||
assert_eq!(result.background_size, parse_longhand!(background_size, "auto auto, 100% 100%, auto auto"));
|
||||
assert_eq!(result.background_attachment, parse_longhand!(background_attachment, "scroll, scroll, scroll"));
|
||||
assert_eq!(result.background_color, parse_longhand!(background_color, "white"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -89,15 +89,15 @@ fn background_shorthand_should_parse_position_and_size_correctly() {
|
|||
let mut parser = Parser::new("7px 4px");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_position_x.unwrap(), parse_longhand!(background_position_x, "7px"));
|
||||
assert_eq!(result.background_position_y.unwrap(), parse_longhand!(background_position_y, "4px"));
|
||||
assert_eq!(result.background_position_x, parse_longhand!(background_position_x, "7px"));
|
||||
assert_eq!(result.background_position_y, parse_longhand!(background_position_y, "4px"));
|
||||
|
||||
let mut parser = Parser::new("7px 4px / 30px 20px");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_position_x.unwrap(), parse_longhand!(background_position_x, "7px"));
|
||||
assert_eq!(result.background_position_y.unwrap(), parse_longhand!(background_position_y, "4px"));
|
||||
assert_eq!(result.background_size.unwrap(), parse_longhand!(background_size, "30px 20px"));
|
||||
assert_eq!(result.background_position_x, parse_longhand!(background_position_x, "7px"));
|
||||
assert_eq!(result.background_position_y, parse_longhand!(background_position_y, "4px"));
|
||||
assert_eq!(result.background_size, parse_longhand!(background_size, "30px 20px"));
|
||||
|
||||
let mut parser = Parser::new("/ 30px 20px");
|
||||
assert!(background::parse_value(&context, &mut parser).is_err());
|
||||
|
@ -113,18 +113,18 @@ fn background_shorthand_should_parse_origin_and_clip_correctly() {
|
|||
let mut parser = Parser::new("padding-box content-box");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "content-box"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "content-box"));
|
||||
|
||||
let mut parser = Parser::new("padding-box padding-box");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "padding-box"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "padding-box"));
|
||||
|
||||
let mut parser = Parser::new("padding-box");
|
||||
let result = background::parse_value(&context, &mut parser).unwrap();
|
||||
|
||||
assert_eq!(result.background_origin.unwrap(), parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip.unwrap(), parse_longhand!(background_clip, "padding-box"));
|
||||
assert_eq!(result.background_origin, parse_longhand!(background_origin, "padding-box"));
|
||||
assert_eq!(result.background_clip, parse_longhand!(background_clip, "padding-box"));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue