fixed the wrong behavior of border-spacing

This commit is contained in:
Huxley 2017-02-17 14:29:07 +08:00
parent 11396b4dd3
commit 06650f8428
3 changed files with 22 additions and 6 deletions

View file

@ -139,3 +139,12 @@ fn test_border_style() {
assert_roundtrip_with_context!(BorderStyle::parse, r#"inset"#);
assert_roundtrip_with_context!(BorderStyle::parse, r#"outset"#);
}
#[test]
fn test_border_spacing() {
use style::properties::longhands::border_spacing;
assert_parser_exhausted!(border_spacing, "1px rubbish", false);
assert_parser_exhausted!(border_spacing, "1px", true);
assert_parser_exhausted!(border_spacing, "1px 2px", true);
}

View file

@ -58,6 +58,17 @@ macro_rules! assert_roundtrip {
}
}
macro_rules! assert_parser_exhausted {
($name:ident, $string:expr, $should_exhausted:expr) => {{
let url = ::servo_url::ServoUrl::parse("http://localhost").unwrap();
let context = ParserContext::new(Origin::Author, &url, Box::new(CSSErrorReporterTest));
let mut parser = Parser::new($string);
let parsed = $name::parse(&context, &mut parser);
assert_eq!(parsed.is_ok(), true);
assert_eq!(parser.is_exhausted(), $should_exhausted);
}}
}
macro_rules! parse_longhand {
($name:ident, $s:expr) => {{
let url = ::servo_url::ServoUrl::parse("http://localhost").unwrap();