tor-browser

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

effects.rs (3791B)


      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::{perspective_origin, transform_origin};
      7 use style_traits::ToCss;
      8 
      9 #[test]
     10 fn test_clip() {
     11    use style::properties::longhands::clip;
     12 
     13    assert_roundtrip_with_context!(clip::parse, "auto");
     14    assert_roundtrip_with_context!(clip::parse, "rect(1px, 2px, 3px, 4px)");
     15    assert_roundtrip_with_context!(clip::parse, "rect(1px, auto, auto, 4px)");
     16    assert_roundtrip_with_context!(clip::parse, "rect(auto, auto, auto, auto)");
     17 
     18    // Non-standard syntax
     19    assert_roundtrip_with_context!(
     20        clip::parse,
     21        "rect(1px 2px 3px 4px)",
     22        "rect(1px, 2px, 3px, 4px)"
     23    );
     24    assert_roundtrip_with_context!(
     25        clip::parse,
     26        "rect(auto 2px 3px auto)",
     27        "rect(auto, 2px, 3px, auto)"
     28    );
     29    assert_roundtrip_with_context!(
     30        clip::parse,
     31        "rect(1px auto auto 4px)",
     32        "rect(1px, auto, auto, 4px)"
     33    );
     34    assert_roundtrip_with_context!(
     35        clip::parse,
     36        "rect(auto auto auto auto)",
     37        "rect(auto, auto, auto, auto)"
     38    );
     39 }
     40 
     41 #[test]
     42 fn test_effects_parser_exhaustion() {
     43    assert_parser_exhausted!(perspective_origin::parse, "1px 1px", true);
     44    assert_parser_exhausted!(transform_origin::parse, "1px 1px", true);
     45 
     46    assert_parser_exhausted!(perspective_origin::parse, "1px some-rubbish", false);
     47    assert_parser_exhausted!(transform_origin::parse, "1px some-rubbish", false);
     48 }
     49 
     50 #[test]
     51 fn test_parse_factor() {
     52    use parsing::parse;
     53    use style::properties::longhands::filter;
     54 
     55    assert!(parse(filter::parse, "brightness(0)").is_ok());
     56    assert!(parse(filter::parse, "brightness(55)").is_ok());
     57    assert!(parse(filter::parse, "brightness(100)").is_ok());
     58 
     59    assert!(parse(filter::parse, "contrast(0)").is_ok());
     60    assert!(parse(filter::parse, "contrast(55)").is_ok());
     61    assert!(parse(filter::parse, "contrast(100)").is_ok());
     62 
     63    assert!(parse(filter::parse, "grayscale(0)").is_ok());
     64    assert!(parse(filter::parse, "grayscale(55)").is_ok());
     65    assert!(parse(filter::parse, "grayscale(100)").is_ok());
     66 
     67    assert!(parse(filter::parse, "invert(0)").is_ok());
     68    assert!(parse(filter::parse, "invert(55)").is_ok());
     69    assert!(parse(filter::parse, "invert(100)").is_ok());
     70 
     71    assert!(parse(filter::parse, "opacity(0)").is_ok());
     72    assert!(parse(filter::parse, "opacity(55)").is_ok());
     73    assert!(parse(filter::parse, "opacity(100)").is_ok());
     74 
     75    assert!(parse(filter::parse, "sepia(0)").is_ok());
     76    assert!(parse(filter::parse, "sepia(55)").is_ok());
     77    assert!(parse(filter::parse, "sepia(100)").is_ok());
     78 
     79    assert!(parse(filter::parse, "saturate(0)").is_ok());
     80    assert!(parse(filter::parse, "saturate(55)").is_ok());
     81    assert!(parse(filter::parse, "saturate(100)").is_ok());
     82 
     83    // Negative numbers are invalid for certain filters
     84    assert!(parse(filter::parse, "brightness(-1)").is_err());
     85    assert!(parse(filter::parse, "contrast(-1)").is_err());
     86    assert!(parse(filter::parse, "grayscale(-1)").is_err());
     87    assert!(parse(filter::parse, "invert(-1)").is_err());
     88    assert!(parse(filter::parse, "opacity(-1)").is_err());
     89    assert!(parse(filter::parse, "sepia(-1)").is_err());
     90    assert!(parse(filter::parse, "saturate(-1)").is_err());
     91 }
     92 
     93 #[test]
     94 fn blur_radius_should_not_accept_negavite_values() {
     95    use style::properties::longhands::box_shadow;
     96    assert!(parse(box_shadow::parse, "1px 1px -1px").is_err()); // for -ve values
     97    assert!(parse(box_shadow::parse, "1px 1px 0").is_ok()); // for zero
     98    assert!(parse(box_shadow::parse, "1px 1px 1px").is_ok()); // for +ve value
     99 }