mirror of
https://github.com/servo/servo.git
synced 2025-08-17 11:25:35 +01:00
Box large components of Longhands structs.
This commit is contained in:
parent
5c57ff890c
commit
e4f241389e
17 changed files with 124 additions and 87 deletions
|
@ -4,22 +4,34 @@
|
|||
|
||||
use parsing::parse;
|
||||
use style::parser::Parse;
|
||||
use style::properties::MaybeBoxed;
|
||||
use style::properties::longhands::{border_image_outset, border_image_repeat, border_image_slice};
|
||||
use style::properties::longhands::{border_image_source, border_image_width};
|
||||
use style::properties::shorthands::border_image;
|
||||
use style_traits::ToCss;
|
||||
|
||||
macro_rules! assert_longhand {
|
||||
($parsed_shorthand: expr, $prop: ident, $value_string: expr) => {
|
||||
assert_eq!($parsed_shorthand.$prop, parse_longhand!($prop, $value_string).maybe_boxed())
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! assert_initial {
|
||||
($parsed_shorthand: expr, $prop: ident) => {
|
||||
assert_eq!($parsed_shorthand.$prop, $prop::get_initial_specified_value().maybe_boxed())
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn border_image_shorthand_should_parse_when_all_properties_specified() {
|
||||
let input = "linear-gradient(red, blue) 30 30% 45 fill / 20px 40px / 10px round stretch";
|
||||
let result = parse(border_image::parse_value, input).unwrap();
|
||||
|
||||
assert_eq!(result.border_image_source,
|
||||
parse_longhand!(border_image_source, "linear-gradient(red, blue)"));
|
||||
assert_eq!(result.border_image_slice, parse_longhand!(border_image_slice, "30 30% 45 fill"));
|
||||
assert_eq!(result.border_image_width, parse_longhand!(border_image_width, "20px 40px"));
|
||||
assert_eq!(result.border_image_outset, parse_longhand!(border_image_outset, "10px"));
|
||||
assert_eq!(result.border_image_repeat, parse_longhand!(border_image_repeat, "round stretch"));
|
||||
assert_longhand!(result, border_image_source, "linear-gradient(red, blue)");
|
||||
assert_longhand!(result, border_image_slice, "30 30% 45 fill");
|
||||
assert_longhand!(result, border_image_width, "20px 40px");
|
||||
assert_longhand!(result, border_image_outset, "10px");
|
||||
assert_longhand!(result, border_image_repeat, "round stretch");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -27,12 +39,11 @@ fn border_image_shorthand_should_parse_without_width() {
|
|||
let input = "linear-gradient(red, blue) 30 30% 45 fill / / 10px round stretch";
|
||||
let result = parse(border_image::parse_value, input).unwrap();
|
||||
|
||||
assert_eq!(result.border_image_source,
|
||||
parse_longhand!(border_image_source, "linear-gradient(red, blue)"));
|
||||
assert_eq!(result.border_image_slice, parse_longhand!(border_image_slice, "30 30% 45 fill"));
|
||||
assert_eq!(result.border_image_outset, parse_longhand!(border_image_outset, "10px"));
|
||||
assert_eq!(result.border_image_repeat, parse_longhand!(border_image_repeat, "round stretch"));
|
||||
assert_eq!(result.border_image_width, border_image_width::get_initial_specified_value());
|
||||
assert_longhand!(result, border_image_source, "linear-gradient(red, blue)");
|
||||
assert_longhand!(result, border_image_slice, "30 30% 45 fill");
|
||||
assert_longhand!(result, border_image_outset, "10px");
|
||||
assert_longhand!(result, border_image_repeat, "round stretch");
|
||||
assert_initial!(result, border_image_width);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -40,12 +51,11 @@ fn border_image_shorthand_should_parse_without_outset() {
|
|||
let input = "linear-gradient(red, blue) 30 30% 45 fill / 20px 40px round";
|
||||
let result = parse(border_image::parse_value, input).unwrap();
|
||||
|
||||
assert_eq!(result.border_image_source,
|
||||
parse_longhand!(border_image_source, "linear-gradient(red, blue)"));
|
||||
assert_eq!(result.border_image_slice, parse_longhand!(border_image_slice, "30 30% 45 fill"));
|
||||
assert_eq!(result.border_image_width, parse_longhand!(border_image_width, "20px 40px"));
|
||||
assert_eq!(result.border_image_repeat, parse_longhand!(border_image_repeat, "round"));
|
||||
assert_eq!(result.border_image_outset, border_image_outset::get_initial_specified_value());
|
||||
assert_longhand!(result, border_image_source, "linear-gradient(red, blue)");
|
||||
assert_longhand!(result, border_image_slice, "30 30% 45 fill");
|
||||
assert_longhand!(result, border_image_width, "20px 40px");
|
||||
assert_longhand!(result, border_image_repeat, "round");
|
||||
assert_initial!(result, border_image_outset);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -53,24 +63,22 @@ fn border_image_shorthand_should_parse_without_width_or_outset() {
|
|||
let input = "linear-gradient(red, blue) 30 30% 45 fill round";
|
||||
let result = parse(border_image::parse_value, input).unwrap();
|
||||
|
||||
assert_eq!(result.border_image_source,
|
||||
parse_longhand!(border_image_source, "linear-gradient(red, blue)"));
|
||||
assert_eq!(result.border_image_slice, parse_longhand!(border_image_slice, "30 30% 45 fill"));
|
||||
assert_eq!(result.border_image_repeat, parse_longhand!(border_image_repeat, "round"));
|
||||
assert_eq!(result.border_image_width, border_image_width::get_initial_specified_value());
|
||||
assert_eq!(result.border_image_outset, border_image_outset::get_initial_specified_value());
|
||||
assert_longhand!(result, border_image_source, "linear-gradient(red, blue)");
|
||||
assert_longhand!(result, border_image_slice, "30 30% 45 fill");
|
||||
assert_longhand!(result, border_image_repeat, "round");
|
||||
assert_initial!(result, border_image_width);
|
||||
assert_initial!(result, border_image_outset);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn border_image_shorthand_should_parse_with_just_source() {
|
||||
let result = parse(border_image::parse_value, "linear-gradient(red, blue)").unwrap();
|
||||
|
||||
assert_eq!(result.border_image_source,
|
||||
parse_longhand!(border_image_source, "linear-gradient(red, blue)"));
|
||||
assert_eq!(result.border_image_slice, border_image_slice::get_initial_specified_value());
|
||||
assert_eq!(result.border_image_width, border_image_width::get_initial_specified_value());
|
||||
assert_eq!(result.border_image_outset, border_image_outset::get_initial_specified_value());
|
||||
assert_eq!(result.border_image_repeat, border_image_repeat::get_initial_specified_value());
|
||||
assert_longhand!(result, border_image_source, "linear-gradient(red, blue)");
|
||||
assert_initial!(result, border_image_slice);
|
||||
assert_initial!(result, border_image_width);
|
||||
assert_initial!(result, border_image_outset);
|
||||
assert_initial!(result, border_image_repeat);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue