diff --git a/tests/unit/style/parsing/transition_timing_function.rs b/tests/unit/style/parsing/transition_timing_function.rs index d9f93668625..c00bad94487 100644 --- a/tests/unit/style/parsing/transition_timing_function.rs +++ b/tests/unit/style/parsing/transition_timing_function.rs @@ -25,11 +25,15 @@ fn test_cubic_bezier() { #[test] fn test_steps() { assert_roundtrip_with_context!(transition_timing_function::parse, "steps(1)"); + assert_roundtrip_with_context!(transition_timing_function::parse, "steps( 1)", "steps(1)"); + assert_roundtrip_with_context!(transition_timing_function::parse, "steps(1, start)"); + assert_roundtrip_with_context!(transition_timing_function::parse, "steps(2, end) ", "steps(2)"); // Step interval value must be an integer greater than 0 assert!(parse(transition_timing_function::parse, "steps(0)").is_err()); assert!(parse(transition_timing_function::parse, "steps(0.5)").is_err()); assert!(parse(transition_timing_function::parse, "steps(-1)").is_err()); + assert!(parse(transition_timing_function::parse, "steps(1, middle)").is_err()); } #[test] diff --git a/tests/unit/style/properties/serialization.rs b/tests/unit/style/properties/serialization.rs index 01d8e894ff6..2446e15e121 100644 --- a/tests/unit/style/properties/serialization.rs +++ b/tests/unit/style/properties/serialization.rs @@ -1210,6 +1210,19 @@ mod shorthand_serialization { assert_eq!(serialization, block_text); } + #[test] + fn transition_should_serialize_acceptable_step_timing_function() { + let block_text = "transition-property: margin-left; \ + transition-duration: 3s; \ + transition-delay: 4s; \ + transition-timing-function: steps(2, start);"; + let block = parse(|c, i| Ok(parse_property_declaration_list(c, i)), block_text).unwrap(); + + let serialization = block.to_css_string(); + + assert_eq!(serialization, "transition: margin-left 3s steps(2, start) 4s;"); + } + #[test] fn transition_should_serialize_acceptable_frames_timing_function() { let block_text = "transition-property: margin-left; \