Auto merge of #15972 - jryans:ps-contain, r=emilio

Parsing / serialization for CSS contain

Adds parsing / serialization for CSS contain to the style package.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15955
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15972)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-03-23 13:23:51 -07:00 committed by GitHub
commit 636f8ceb50
3 changed files with 130 additions and 0 deletions

View file

@ -0,0 +1,26 @@
/* 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::stylesheets::Origin;
#[test]
fn contain_longhand_should_parse_correctly() {
use style::properties::longhands::contain;
use style::properties::longhands::contain::SpecifiedValue;
let none = parse_longhand!(contain, "none");
assert_eq!(none, SpecifiedValue::empty());
let strict = parse_longhand!(contain, "strict");
assert_eq!(strict, contain::STRICT);
let style_paint = parse_longhand!(contain, "style paint");
assert_eq!(style_paint, contain::STYLE | contain::PAINT);
// Assert that the `2px` is not consumed, which would trigger parsing failure in real use
assert_parser_exhausted!(contain, "layout 2px", false);
}

View file

@ -87,6 +87,7 @@ mod basic_shape;
mod border;
mod box_;
mod column;
mod containment;
mod effects;
mod font;
mod image;