From 48bb508f667a2de4e1107fa3e5574892aa321620 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Sun, 12 Feb 2017 06:49:01 +0200 Subject: [PATCH] fix #15492 --- components/style/values/specified/basic_shape.rs | 4 ++-- tests/unit/style/parsing/basic_shape.rs | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/components/style/values/specified/basic_shape.rs b/components/style/values/specified/basic_shape.rs index 7f77337218c..3d6399cefc5 100644 --- a/components/style/values/specified/basic_shape.rs +++ b/components/style/values/specified/basic_shape.rs @@ -662,8 +662,8 @@ impl Default for ShapeRadius { } impl Parse for ShapeRadius { - fn parse(context: &ParserContext, input: &mut Parser) -> Result { - input.try(|i| LengthOrPercentage::parse(context, i)).map(ShapeRadius::Length).or_else(|_| { + fn parse(_: &ParserContext, input: &mut Parser) -> Result { + input.try(|i| LengthOrPercentage::parse_non_negative(i)).map(ShapeRadius::Length).or_else(|_| { match_ignore_ascii_case! { try!(input.expect_ident()), "closest-side" => Ok(ShapeRadius::ClosestSide), "farthest-side" => Ok(ShapeRadius::FarthestSide), diff --git a/tests/unit/style/parsing/basic_shape.rs b/tests/unit/style/parsing/basic_shape.rs index 342d732b5c2..ecac5679980 100644 --- a/tests/unit/style/parsing/basic_shape.rs +++ b/tests/unit/style/parsing/basic_shape.rs @@ -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(farthest-side at center)", "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(calc(1px + 50%) at center)", "circle(calc(1px + 50%) at 50% 50%)"); @@ -114,6 +116,7 @@ fn test_circle() { "circle(at left 5% bottom 1px)"); assert!(parse(Circle::parse, "circle(at top 40%)").is_err()); + assert!(parse(Circle::parse, "circle(-10px)").is_err()); } #[test]