transition_timing_function.rs (2208B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ 4 5 use parsing::parse; 6 use style::properties::longhands::transition_timing_function; 7 use style_traits::ToCss; 8 9 #[test] 10 fn test_cubic_bezier() { 11 assert_roundtrip_with_context!( 12 transition_timing_function::parse, 13 "cubic-bezier(0, 0, 0, 0)" 14 ); 15 assert_roundtrip_with_context!( 16 transition_timing_function::parse, 17 "cubic-bezier(0.25, 0, 0.5, 0)" 18 ); 19 assert_roundtrip_with_context!( 20 transition_timing_function::parse, 21 "cubic-bezier(1, 1, 1, 1)" 22 ); 23 24 // p1x and p2x values must be in range [0, 1] 25 assert!(parse( 26 transition_timing_function::parse, 27 "cubic-bezier(-1, 0, 0, 0" 28 ) 29 .is_err()); 30 assert!(parse( 31 transition_timing_function::parse, 32 "cubic-bezier(0, 0, -1, 0" 33 ) 34 .is_err()); 35 assert!(parse( 36 transition_timing_function::parse, 37 "cubic-bezier(-1, 0, -1, 0" 38 ) 39 .is_err()); 40 41 assert!(parse(transition_timing_function::parse, "cubic-bezier(2, 0, 0, 0").is_err()); 42 assert!(parse(transition_timing_function::parse, "cubic-bezier(0, 0, 2, 0").is_err()); 43 assert!(parse(transition_timing_function::parse, "cubic-bezier(2, 0, 2, 0").is_err()); 44 } 45 46 #[test] 47 fn test_steps() { 48 assert_roundtrip_with_context!(transition_timing_function::parse, "steps(1)"); 49 assert_roundtrip_with_context!(transition_timing_function::parse, "steps( 1)", "steps(1)"); 50 assert_roundtrip_with_context!(transition_timing_function::parse, "steps(1, start)"); 51 assert_roundtrip_with_context!( 52 transition_timing_function::parse, 53 "steps(2, end) ", 54 "steps(2)" 55 ); 56 57 // Step interval value must be an integer greater than 0 58 assert!(parse(transition_timing_function::parse, "steps(0)").is_err()); 59 assert!(parse(transition_timing_function::parse, "steps(0.5)").is_err()); 60 assert!(parse(transition_timing_function::parse, "steps(-1)").is_err()); 61 assert!(parse(transition_timing_function::parse, "steps(1, middle)").is_err()); 62 }