This commit is contained in:
Alon Levy 2017-02-12 06:49:01 +02:00
parent eca8c4ed73
commit 48bb508f66
2 changed files with 5 additions and 2 deletions

View file

@ -662,8 +662,8 @@ impl Default for ShapeRadius {
} }
impl Parse for ShapeRadius { impl Parse for ShapeRadius {
fn parse(context: &ParserContext, input: &mut Parser) -> Result<Self, ()> { fn parse(_: &ParserContext, input: &mut Parser) -> Result<Self, ()> {
input.try(|i| LengthOrPercentage::parse(context, i)).map(ShapeRadius::Length).or_else(|_| { input.try(|i| LengthOrPercentage::parse_non_negative(i)).map(ShapeRadius::Length).or_else(|_| {
match_ignore_ascii_case! { try!(input.expect_ident()), match_ignore_ascii_case! { try!(input.expect_ident()),
"closest-side" => Ok(ShapeRadius::ClosestSide), "closest-side" => Ok(ShapeRadius::ClosestSide),
"farthest-side" => Ok(ShapeRadius::FarthestSide), "farthest-side" => Ok(ShapeRadius::FarthestSide),

View file

@ -96,6 +96,8 @@ fn test_circle() {
assert_roundtrip_basicshape!(Circle::parse, "circle(closest-side at center)", "circle(at 50% 50%)"); assert_roundtrip_basicshape!(Circle::parse, "circle(closest-side at center)", "circle(at 50% 50%)");
assert_roundtrip_basicshape!(Circle::parse, "circle(farthest-side at center)", assert_roundtrip_basicshape!(Circle::parse, "circle(farthest-side at center)",
"circle(farthest-side at 50% 50%)"); "circle(farthest-side at 50% 50%)");
assert_roundtrip_basicshape!(Circle::parse, "circle(10px)",
"circle(10px at 50% 50%)");
assert_roundtrip_basicshape!(Circle::parse, "circle(20px at center)", "circle(20px at 50% 50%)"); assert_roundtrip_basicshape!(Circle::parse, "circle(20px at center)", "circle(20px at 50% 50%)");
assert_roundtrip_basicshape!(Circle::parse, "circle(calc(1px + 50%) at center)", assert_roundtrip_basicshape!(Circle::parse, "circle(calc(1px + 50%) at center)",
"circle(calc(1px + 50%) at 50% 50%)"); "circle(calc(1px + 50%) at 50% 50%)");
@ -114,6 +116,7 @@ fn test_circle() {
"circle(at left 5% bottom 1px)"); "circle(at left 5% bottom 1px)");
assert!(parse(Circle::parse, "circle(at top 40%)").is_err()); assert!(parse(Circle::parse, "circle(at top 40%)").is_err());
assert!(parse(Circle::parse, "circle(-10px)").is_err());
} }
#[test] #[test]