mirror of
https://github.com/servo/servo.git
synced 2025-08-12 00:45:33 +01:00
Allow empty keyframe and keyframes with non-animatable properties.
We need to create CSS animations that have empty keyframe or keyframes which have only invalid properties or non-animatable properties to fire animation events for such animations.
This commit is contained in:
parent
8421ae6077
commit
a80725c91b
4 changed files with 67 additions and 31 deletions
40
tests/unit/style/keyframes.rs
Normal file
40
tests/unit/style/keyframes.rs
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* 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 parking_lot::RwLock;
|
||||
use std::sync::Arc;
|
||||
use style::keyframes::{Keyframe, KeyframesAnimation, KeyframePercentage, KeyframeSelector};
|
||||
use style::properties::PropertyDeclarationBlock;
|
||||
|
||||
#[test]
|
||||
fn test_empty_keyframe() {
|
||||
let keyframes = vec![];
|
||||
let animation = KeyframesAnimation::from_keyframes(&keyframes);
|
||||
let expected = KeyframesAnimation {
|
||||
steps: vec![],
|
||||
properties_changed: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(format!("{:#?}", animation), format!("{:#?}", expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_no_property_in_keyframe() {
|
||||
let keyframes = vec![
|
||||
Arc::new(RwLock::new(Keyframe {
|
||||
selector: KeyframeSelector::new_for_unit_testing(vec![KeyframePercentage::new(1.)]),
|
||||
block: Arc::new(RwLock::new(PropertyDeclarationBlock {
|
||||
declarations: vec![],
|
||||
important_count: 0,
|
||||
}))
|
||||
})),
|
||||
];
|
||||
let animation = KeyframesAnimation::from_keyframes(&keyframes);
|
||||
let expected = KeyframesAnimation {
|
||||
steps: vec![],
|
||||
properties_changed: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(format!("{:#?}", animation), format!("{:#?}", expected));
|
||||
}
|
|
@ -25,6 +25,7 @@ extern crate test;
|
|||
mod animated_properties;
|
||||
mod attr;
|
||||
mod cache;
|
||||
mod keyframes;
|
||||
mod logical_geometry;
|
||||
mod media_queries;
|
||||
mod owning_handle;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue