use ::parse_non_negative instead of ::parse for background_size parsing

This commit is contained in:
Julien Levesy 2017-02-08 14:13:52 +01:00
parent 8ca1383c41
commit 3da559488d
3 changed files with 23 additions and 3 deletions

View file

@ -373,7 +373,7 @@ ${helpers.single_keyword("background-origin",
})
}
pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue,()> {
pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue,()> {
let width;
if let Ok(value) = input.try(|input| {
match input.next() {
@ -389,7 +389,7 @@ ${helpers.single_keyword("background-origin",
}) {
return Ok(value)
} else {
width = try!(specified::LengthOrPercentageOrAuto::parse(context, input))
width = try!(specified::LengthOrPercentageOrAuto::parse_non_negative(input))
}
let height;
@ -401,7 +401,7 @@ ${helpers.single_keyword("background-origin",
}) {
height = value
} else {
height = try!(specified::LengthOrPercentageOrAuto::parse(context, input));
height = try!(specified::LengthOrPercentageOrAuto::parse_non_negative(input));
}
Ok(SpecifiedValue::Explicit(ExplicitSize {

View file

@ -0,0 +1,19 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::Parser;
use media_queries::CSSErrorReporterTest;
use style::parser::ParserContext;
use style::properties::longhands::background_size;
use style::stylesheets::Origin;
#[test]
fn background_size_should_reject_negative_values() {
let url = ::servo_url::ServoUrl::parse("http://localhost").unwrap();
let context = ParserContext::new(Origin::Author, &url, Box::new(CSSErrorReporterTest));
let parse_result = background_size::parse(&context, &mut Parser::new("-40% -40%"));
assert_eq!(parse_result.is_err(), true);
}

View file

@ -2,6 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
mod background;
mod scaffolding;
mod serialization;
mod viewport;