diff options
Diffstat (limited to 'servo/tests/unit/style/parsing/animation.rs')
-rw-r--r-- | servo/tests/unit/style/parsing/animation.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/servo/tests/unit/style/parsing/animation.rs b/servo/tests/unit/style/parsing/animation.rs new file mode 100644 index 0000000000..1c67370dd7 --- /dev/null +++ b/servo/tests/unit/style/parsing/animation.rs @@ -0,0 +1,35 @@ +/* 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 https://mozilla.org/MPL/2.0/. */ + +use parsing::parse; +use servo_atoms::Atom; +use style::parser::Parse; +use style::properties::longhands::animation_name; +use style::values::{KeyframesName, CustomIdent}; +use style::values::specified::AnimationIterationCount; +use style_traits::ToCss; + +#[test] +fn test_animation_name() { + use self::animation_name::single_value::SpecifiedValue as SingleValue; + let other_name = Atom::from("other-name"); + assert_eq!(parse_longhand!(animation_name, "none"), + animation_name::SpecifiedValue(vec![SingleValue(None)])); + assert_eq!(parse_longhand!(animation_name, "other-name, none, 'other-name', \"other-name\""), + animation_name::SpecifiedValue( + vec![SingleValue(Some(KeyframesName::Ident(CustomIdent(other_name.clone())))), + SingleValue(None), + SingleValue(Some(KeyframesName::QuotedString(other_name.clone()))), + SingleValue(Some(KeyframesName::QuotedString(other_name.clone())))])); +} + +#[test] +fn test_animation_iteration() { + assert_roundtrip_with_context!(AnimationIterationCount::parse, "0", "0"); + assert_roundtrip_with_context!(AnimationIterationCount::parse, "0.1", "0.1"); + assert_roundtrip_with_context!(AnimationIterationCount::parse, "infinite", "infinite"); + + // Negative numbers are invalid + assert!(parse(AnimationIterationCount::parse, "-1").is_err()); +} |