diff options
author | Rakhi Sharma <rakhish1994@gmail.com> | 2017-09-21 07:07:51 +0000 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2017-10-02 20:31:06 +0200 |
commit | c31b0e4bd2777aaaa822ffa9e7df6e80c793f2db (patch) | |
tree | 473e3039cf722e8a9e1b3e4efe428465017f3290 /tests/unit/script/htmlimageelement.rs | |
parent | 8397c5b0a210a33a0991d369e88016dd51f521fd (diff) | |
download | servo-c31b0e4bd2777aaaa822ffa9e7df6e80c793f2db.tar.gz servo-c31b0e4bd2777aaaa822ffa9e7df6e80c793f2db.zip |
Parse sizes attribute values.
Diffstat (limited to 'tests/unit/script/htmlimageelement.rs')
-rw-r--r-- | tests/unit/script/htmlimageelement.rs | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/tests/unit/script/htmlimageelement.rs b/tests/unit/script/htmlimageelement.rs new file mode 100644 index 00000000000..5c9106b6c0f --- /dev/null +++ b/tests/unit/script/htmlimageelement.rs @@ -0,0 +1,101 @@ +/* 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 script::test::DOMString; +use script::test::sizes::{parse_a_sizes_attribute, Size}; +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); +} |