implement support for the width media query

failing test for correct to_css of "width"

separate test for mq and to_css

implement css serialization for Eq

remove PASS test expectation

remove FIXME

simplify serialization
This commit is contained in:
Gregory 2016-11-13 17:35:18 +08:00
parent a093b56c84
commit 84e9277771
3 changed files with 33 additions and 10 deletions

View file

@ -13,6 +13,7 @@ use style::media_queries::*;
use style::parser::ParserContextExtraData;
use style::stylesheets::{Stylesheet, Origin, CssRule};
use style::values::specified;
use style_traits::ToCss;
pub struct CSSErrorReporterTest;
@ -242,6 +243,18 @@ fn test_mq_expressions() {
}
});
test_media_rule("@media print and (width: 43px) { }", |list, css| {
assert!(list.media_queries.len() == 1, css.to_owned());
let q = &list.media_queries[0];
assert!(q.qualifier == None, css.to_owned());
assert!(q.media_type == MediaQueryType::MediaType(MediaType::Print), css.to_owned());
assert!(q.expressions.len() == 1, css.to_owned());
match q.expressions[0] {
Expression::Width(Range::Eq(w)) => assert!(w == specified::Length::Absolute(Au::from_px(43))),
_ => panic!("wrong expression type"),
}
});
test_media_rule("@media fridge and (max-width: 52px) { }", |list, css| {
assert!(list.media_queries.len() == 1, css.to_owned());
let q = &list.media_queries[0];
@ -255,6 +268,16 @@ fn test_mq_expressions() {
});
}
#[test]
fn test_to_css() {
test_media_rule("@media print and (width: 43px) { }", |list, _| {
let q = &list.media_queries[0];
let mut dest = String::new();
assert_eq!(Ok(()), q.to_css(&mut dest));
assert_eq!(dest, "print and (width: 43px)");
});
}
#[test]
fn test_mq_multiple_expressions() {
test_media_rule("@media (min-width: 100px) and (max-width: 200px) { }", |list, css| {

View file

@ -6,9 +6,5 @@
[MediaQueryList.matches for "(min-aspect-ratio: 1/1)"]
expected: FAIL
[MediaQueryList.matches for "(width: 200px)"]
expected: FAIL
[Resize iframe from 200x100 to 200x50, then to 100x50]
expected: FAIL