diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-07-01 05:14:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-01 05:14:21 -0400 |
commit | c71c55e542c57f6ec4e5e77be750f74f50340e56 (patch) | |
tree | 730aad03158a733d126d8cabe09e92792b31e05e /tests | |
parent | 9c243a115ea4983bec5e79b06c49469354cfa1f9 (diff) | |
parent | 36495d677f6e5e928c74f8eb372caaae7a303047 (diff) | |
download | servo-c71c55e542c57f6ec4e5e77be750f74f50340e56.tar.gz servo-c71c55e542c57f6ec4e5e77be750f74f50340e56.zip |
Auto merge of #21109 - emilio:gecko-sync, r=SimonSapin
style: sync changes from mozilla-central.
See each individual commit for details..
<!-- 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/21109)
<!-- Reviewable:end -->
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/script/Cargo.toml | 1 | ||||
-rw-r--r-- | tests/unit/script/htmlimageelement.rs | 97 | ||||
-rw-r--r-- | tests/unit/script/lib.rs | 1 | ||||
-rw-r--r-- | tests/unit/style/Cargo.toml | 2 | ||||
-rw-r--r-- | tests/unit/style/lib.rs | 14 | ||||
-rw-r--r-- | tests/unit/style/media_queries.rs | 398 |
6 files changed, 1 insertions, 512 deletions
diff --git a/tests/unit/script/Cargo.toml b/tests/unit/script/Cargo.toml index f6743a7dba6..dc78113136f 100644 --- a/tests/unit/script/Cargo.toml +++ b/tests/unit/script/Cargo.toml @@ -13,4 +13,3 @@ euclid = "0.17" msg = {path = "../../../components/msg"} script = {path = "../../../components/script"} servo_url = {path = "../../../components/url"} -style = {path = "../../../components/style"} diff --git a/tests/unit/script/htmlimageelement.rs b/tests/unit/script/htmlimageelement.rs index 6d62f25a500..796e63c2e2b 100644 --- a/tests/unit/script/htmlimageelement.rs +++ b/tests/unit/script/htmlimageelement.rs @@ -2,104 +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/. */ -use script::test::DOMString; -use script::test::sizes::{parse_a_sizes_attribute, Size}; use script::test::srcset::{Descriptor, ImageSource, parse_a_srcset_attribute}; -use style::media_queries::{MediaQuery, MediaQueryType}; -use style::media_queries::Expression; -use style::servo::media_queries::{ExpressionKind, Range}; -use style::values::specified::{Length, NoCalcLength, AbsoluteLength, ViewportPercentageLength}; - -pub fn test_length_for_no_default_provided(len: f32) -> Length { - let length = Length::NoCalc(NoCalcLength::ViewportPercentage(ViewportPercentageLength::Vw(len))); - return length; -} - -#[test] -fn no_default_provided() { - let mut a = vec![]; - let length = test_length_for_no_default_provided(100f32); - let size = Size { query: None, length: length }; - a.push(size); - assert_eq!(parse_a_sizes_attribute(DOMString::new(), None), a); -} - -pub fn test_length_for_default_provided(len: f32) -> Length { - let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len))); - return length; -} - -#[test] -fn default_provided() { - let mut a = vec![]; - let length = test_length_for_default_provided(2f32); - let size = Size { query: None, length: length }; - a.push(size); - assert_eq!(parse_a_sizes_attribute(DOMString::new(), Some(2)), a); -} - -pub fn test_media_query(len: f32) -> MediaQuery { - let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len))); - let expr = Expression(ExpressionKind::Width(Range::Max(length))); - let media_query = MediaQuery { - qualifier: None, - media_type: MediaQueryType::All, - expressions: vec![expr] - }; - media_query -} - -pub fn test_length(len: f32) -> Length { - let length = Length::NoCalc(NoCalcLength::Absolute(AbsoluteLength::Px(len))); - return length; -} - -#[test] -fn one_value() { - let mut a = vec![]; - let media_query = test_media_query(200f32); - let length = test_length(545f32); - let size = Size { query: Some(media_query), length: length }; - a.push(size); - assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 200px) 545px"), None), a); -} - -#[test] -fn more_then_one_value() { - let media_query = test_media_query(900f32); - let length = test_length(1000f32); - let size = Size { query: Some(media_query), length: length }; - let media_query1 = test_media_query(900f32); - let length1 = test_length(50f32); - let size1 = Size { query: Some(media_query1), length: length1 }; - let a = &[size, size1]; - assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 900px) 1000px, (max-width: 900px) 50px"), - None), a); -} - -#[test] -fn no_extra_whitespace() { - let mut a = vec![]; - let media_query = test_media_query(200f32); - let length = test_length(545f32); - let size = Size { query: Some(media_query), length: length }; - a.push(size); - assert_eq!(parse_a_sizes_attribute(DOMString::from("(max-width: 200px) 545px"), None), a); -} - -#[test] -fn extra_whitespace() { - let media_query = test_media_query(900f32); - let length = test_length(1000f32); - let size = Size { query: Some(media_query), length: length }; - let media_query1 = test_media_query(900f32); - let length1 = test_length(50f32); - let size1 = Size { query: Some(media_query1), length: length1 }; - let a = &[size, size1]; - assert_eq!(parse_a_sizes_attribute( - DOMString::from("(max-width: 900px) 1000px, (max-width: 900px) 50px"), - None), a); -} #[test] fn no_value() { diff --git a/tests/unit/script/lib.rs b/tests/unit/script/lib.rs index 6d724db5358..069417a5911 100644 --- a/tests/unit/script/lib.rs +++ b/tests/unit/script/lib.rs @@ -6,7 +6,6 @@ #[cfg(test)] extern crate msg; #[cfg(test)] extern crate script; #[cfg(test)] extern crate servo_url; -#[cfg(test)] extern crate style; #[cfg(test)] mod origin; #[cfg(all(test, target_pointer_width = "64"))] mod size_of; diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml index 23778c73f93..77b0ac34fd1 100644 --- a/tests/unit/style/Cargo.toml +++ b/tests/unit/style/Cargo.toml @@ -12,7 +12,7 @@ doctest = false [dependencies] byteorder = "1.0" app_units = "0.6" -cssparser = "0.23.0" +cssparser = "0.24.0" euclid = "0.17" html5ever = "0.22" parking_lot = "0.5" diff --git a/tests/unit/style/lib.rs b/tests/unit/style/lib.rs index 2c46bb65063..faa15845195 100644 --- a/tests/unit/style/lib.rs +++ b/tests/unit/style/lib.rs @@ -27,7 +27,6 @@ mod attr; mod custom_properties; mod keyframes; mod logical_geometry; -mod media_queries; mod parsing; mod properties; mod rule_tree; @@ -37,16 +36,3 @@ mod str; mod stylesheets; mod stylist; mod viewport; - -mod writing_modes { - use style::logical_geometry::WritingMode; - use style::properties::INITIAL_SERVO_VALUES; - - #[test] - fn initial_writing_mode_is_empty() { - assert_eq!( - WritingMode::new(INITIAL_SERVO_VALUES.get_inherited_box()), - WritingMode::empty(), - ) - } -} diff --git a/tests/unit/style/media_queries.rs b/tests/unit/style/media_queries.rs deleted file mode 100644 index 044dee3db72..00000000000 --- a/tests/unit/style/media_queries.rs +++ /dev/null @@ -1,398 +0,0 @@ -/* 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 euclid::TypedScale; -use euclid::TypedSize2D; -use servo_arc::Arc; -use servo_url::ServoUrl; -use std::borrow::ToOwned; -use style::Atom; -use style::context::QuirksMode; -use style::media_queries::*; -use style::servo::media_queries::*; -use style::shared_lock::SharedRwLock; -use style::stylesheets::{AllRules, Stylesheet, StylesheetInDocument, Origin, CssRule}; -use style::values::{CustomIdent, specified}; -use style_traits::ToCss; - -fn test_media_rule<F>(css: &str, callback: F) -where - F: Fn(&MediaList, &str), -{ - let url = ServoUrl::parse("http://localhost").unwrap(); - let css_str = css.to_owned(); - let lock = SharedRwLock::new(); - let media_list = Arc::new(lock.wrap(MediaList::empty())); - let stylesheet = Stylesheet::from_str( - css, url, Origin::Author, media_list, lock, - None, None, QuirksMode::NoQuirks, 0); - let dummy = Device::new(MediaType::screen(), TypedSize2D::new(200.0, 100.0), TypedScale::new(1.0)); - let mut rule_count = 0; - let guard = stylesheet.shared_lock.read(); - for rule in stylesheet.iter_rules::<AllRules>(&dummy, &guard) { - if let CssRule::Media(ref lock) = *rule { - rule_count += 1; - callback(&lock.read_with(&guard).media_queries.read_with(&guard), css); - } - } - assert!(rule_count > 0, css_str); -} - -fn media_query_test(device: &Device, css: &str, expected_rule_count: usize) { - let url = ServoUrl::parse("http://localhost").unwrap(); - let lock = SharedRwLock::new(); - let media_list = Arc::new(lock.wrap(MediaList::empty())); - let ss = Stylesheet::from_str( - css, url, Origin::Author, media_list, lock, - None, None, QuirksMode::NoQuirks, 0); - let mut rule_count = 0; - ss.effective_style_rules(device, &ss.shared_lock.read(), |_| rule_count += 1); - assert!(rule_count == expected_rule_count, css.to_owned()); -} - -#[test] -fn test_mq_empty() { - test_media_rule("@media { }", |list, css| { - assert!(list.media_queries.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_screen() { - test_media_rule("@media screen { }", |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::Concrete(MediaType::screen()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media only screen { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Only), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete(MediaType::screen()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media not screen { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete(MediaType::screen()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_print() { - test_media_rule("@media print { }", |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::Concrete(MediaType::print()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media only print { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Only), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete(MediaType::print()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media not print { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete(MediaType::print()), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_unknown() { - test_media_rule("@media fridge { }", |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::Concrete( - MediaType(CustomIdent(Atom::from("fridge")))), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media only glass { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Only), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete( - MediaType(CustomIdent(Atom::from("glass")))), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media not wood { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete( - MediaType(CustomIdent(Atom::from("wood")))), css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_all() { - test_media_rule("@media all { }", |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::All, css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media only all { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Only), css.to_owned()); - assert!(q.media_type == MediaQueryType::All, css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); - - test_media_rule("@media not all { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(q.media_type == MediaQueryType::All, css.to_owned()); - assert!(q.expressions.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_or() { - test_media_rule("@media screen, print { }", |list, css| { - assert!(list.media_queries.len() == 2, css.to_owned()); - let q0 = &list.media_queries[0]; - assert!(q0.qualifier == None, css.to_owned()); - assert!(q0.media_type == MediaQueryType::Concrete(MediaType::screen()), css.to_owned()); - assert!(q0.expressions.len() == 0, css.to_owned()); - - let q1 = &list.media_queries[1]; - assert!(q1.qualifier == None, css.to_owned()); - assert!(q1.media_type == MediaQueryType::Concrete(MediaType::print()), css.to_owned()); - assert!(q1.expressions.len() == 0, css.to_owned()); - }); -} - -#[test] -fn test_mq_default_expressions() { - test_media_rule("@media (min-width: 100px) { }", |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::All, css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Min(ref w)) => assert!(*w == specified::Length::from_px(100.)), - _ => panic!("wrong expression type"), - } - }); - - test_media_rule("@media (max-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::All, css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Max(ref w)) => assert!(*w == specified::Length::from_px(43.)), - _ => panic!("wrong expression type"), - } - }); -} - -#[test] -fn test_mq_expressions() { - test_media_rule("@media screen and (min-width: 100px) { }", |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::Concrete(MediaType::screen()), css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Min(ref w)) => assert!(*w == specified::Length::from_px(100.)), - _ => panic!("wrong expression type"), - } - }); - - test_media_rule("@media print and (max-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::Concrete(MediaType::print()), css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Max(ref w)) => assert!(*w == specified::Length::from_px(43.)), - _ => panic!("wrong expression type"), - } - }); - - 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::Concrete(MediaType::print()), css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Eq(ref w)) => assert!(*w == specified::Length::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]; - assert!(q.qualifier == None, css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete( - MediaType(CustomIdent(Atom::from("fridge")))), css.to_owned()); - assert!(q.expressions.len() == 1, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Max(ref w)) => assert!(*w == specified::Length::from_px(52.)), - _ => panic!("wrong expression type"), - } - }); -} - -#[test] -fn test_to_css() { - test_media_rule("@media print and (width: 43px) { }", |list, _| { - let q = &list.media_queries[0]; - let dest = q.to_css_string(); - 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| { - 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::All, css.to_owned()); - assert!(q.expressions.len() == 2, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Min(ref w)) => assert!(*w == specified::Length::from_px(100.)), - _ => panic!("wrong expression type"), - } - match *q.expressions[1].kind_for_testing() { - ExpressionKind::Width(Range::Max(ref w)) => assert!(*w == specified::Length::from_px(200.)), - _ => panic!("wrong expression type"), - } - }); - - test_media_rule("@media not screen and (min-width: 100px) and (max-width: 200px) { }", |list, css| { - assert!(list.media_queries.len() == 1, css.to_owned()); - let q = &list.media_queries[0]; - assert!(q.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(q.media_type == MediaQueryType::Concrete(MediaType::screen()), css.to_owned()); - assert!(q.expressions.len() == 2, css.to_owned()); - match *q.expressions[0].kind_for_testing() { - ExpressionKind::Width(Range::Min(ref w)) => assert!(*w == specified::Length::from_px(100.)), - _ => panic!("wrong expression type"), - } - match *q.expressions[1].kind_for_testing() { - ExpressionKind::Width(Range::Max(ref w)) => assert!(*w == specified::Length::from_px(200.)), - _ => panic!("wrong expression type"), - } - }); -} - -#[test] -fn test_mq_malformed_expressions() { - fn check_malformed_expr(list: &MediaList, css: &str) { - assert!(!list.media_queries.is_empty(), css.to_owned()); - for mq in &list.media_queries { - assert!(mq.qualifier == Some(Qualifier::Not), css.to_owned()); - assert!(mq.media_type == MediaQueryType::All, css.to_owned()); - assert!(mq.expressions.is_empty(), css.to_owned()); - } - } - - for rule in &[ - "@media (min-width: 100blah) and (max-width: 200px) { }", - "@media screen and (height: 200px) { }", - "@media (min-width: 30em foo bar) {}", - "@media not {}", - "@media not (min-width: 300px) {}", - "@media , {}", - ] { - test_media_rule(rule, check_malformed_expr); - } -} - -#[test] -fn test_matching_simple() { - let device = Device::new(MediaType::screen(), TypedSize2D::new(200.0, 100.0), TypedScale::new(1.0)); - - media_query_test(&device, "@media not all { a { color: red; } }", 0); - media_query_test(&device, "@media not screen { a { color: red; } }", 0); - media_query_test(&device, "@media not print { a { color: red; } }", 1); - - media_query_test(&device, "@media unknown { a { color: red; } }", 0); - media_query_test(&device, "@media not unknown { a { color: red; } }", 1); - - media_query_test(&device, "@media { a { color: red; } }", 1); - media_query_test(&device, "@media screen { a { color: red; } }", 1); - media_query_test(&device, "@media print { a { color: red; } }", 0); -} - -#[test] -fn test_matching_width() { - let device = Device::new(MediaType::screen(), TypedSize2D::new(200.0, 100.0), TypedScale::new(1.0)); - - media_query_test(&device, "@media { a { color: red; } }", 1); - - media_query_test(&device, "@media (min-width: 50px) { a { color: red; } }", 1); - media_query_test(&device, "@media (min-width: 150px) { a { color: red; } }", 1); - media_query_test(&device, "@media (min-width: 300px) { a { color: red; } }", 0); - - media_query_test(&device, "@media screen and (min-width: 50px) { a { color: red; } }", 1); - media_query_test(&device, "@media screen and (min-width: 150px) { a { color: red; } }", 1); - media_query_test(&device, "@media screen and (min-width: 300px) { a { color: red; } }", 0); - - media_query_test(&device, "@media not screen and (min-width: 50px) { a { color: red; } }", 0); - media_query_test(&device, "@media not screen and (min-width: 150px) { a { color: red; } }", 0); - media_query_test(&device, "@media not screen and (min-width: 300px) { a { color: red; } }", 1); - - media_query_test(&device, "@media (max-width: 50px) { a { color: red; } }", 0); - media_query_test(&device, "@media (max-width: 150px) { a { color: red; } }", 0); - media_query_test(&device, "@media (max-width: 300px) { a { color: red; } }", 1); - - media_query_test(&device, "@media screen and (min-width: 50px) and (max-width: 100px) { a { color: red; } }", 0); - media_query_test(&device, "@media screen and (min-width: 250px) and (max-width: 300px) { a { color: red; } }", 0); - media_query_test(&device, "@media screen and (min-width: 50px) and (max-width: 250px) { a { color: red; } }", 1); - - media_query_test( - &device, "@media not screen and (min-width: 50px) and (max-width: 100px) { a { color: red; } }", 1); - media_query_test( - &device, "@media not screen and (min-width: 250px) and (max-width: 300px) { a { color: red; } }", 1); - media_query_test( - &device, "@media not screen and (min-width: 50px) and (max-width: 250px) { a { color: red; } }", 0); - - media_query_test( - &device, "@media not screen and (min-width: 3.1em) and (max-width: 6em) { a { color: red; } }", 1); - media_query_test( - &device, "@media not screen and (min-width: 16em) and (max-width: 19.75em) { a { color: red; } }", 1); - media_query_test( - &device, "@media not screen and (min-width: 3em) and (max-width: 250px) { a { color: red; } }", 0); -} - -#[test] -fn test_matching_invalid() { - let device = Device::new(MediaType::screen(), TypedSize2D::new(200.0, 100.0), TypedScale::new(1.0)); - - media_query_test(&device, "@media fridge { a { color: red; } }", 0); - media_query_test(&device, "@media screen and (height: 100px) { a { color: red; } }", 0); - media_query_test(&device, "@media not print and (width: 100) { a { color: red; } }", 0); -} |