tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }