#[cfg(test)]
mod tests {
use super::super::*;
use crate::CssAtomSet;
use css_parse::{assert_parse, assert_parse_error, assert_peek_false};
#[test]
fn test_writes() {
assert_parse!(CssAtomSet::ATOMS, ClipStyleValue, "auto");
assert_parse!(CssAtomSet::ATOMS, ClipStyleValue, "rect(10px,20px,30px,40px)");
assert_parse!(CssAtomSet::ATOMS, ClipStyleValue, "rect(auto,auto,auto,auto)");
assert_parse!(CssAtomSet::ATOMS, ClipStyleValue, "rect(-5px,auto,10px,0px)");
assert_parse!(CssAtomSet::ATOMS, ClipRuleStyleValue, "nonzero");
assert_parse!(CssAtomSet::ATOMS, ClipRuleStyleValue, "evenodd");
assert_parse!(CssAtomSet::ATOMS, MaskBorderModeStyleValue, "luminance");
assert_parse!(CssAtomSet::ATOMS, MaskBorderModeStyleValue, "alpha");
assert_parse!(CssAtomSet::ATOMS, MaskTypeStyleValue, "luminance");
assert_parse!(CssAtomSet::ATOMS, MaskTypeStyleValue, "alpha");
assert_parse!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "repeat-x");
assert_parse!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "repeat-y");
assert_parse!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "repeat");
assert_parse!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "no-repeat");
assert_parse!(CssAtomSet::ATOMS, MaskSizeStyleValue, "1px auto");
assert_parse!(CssAtomSet::ATOMS, MaskSizeStyleValue, "auto");
assert_parse!(CssAtomSet::ATOMS, MaskSizeStyleValue, "contain");
assert_parse!(CssAtomSet::ATOMS, MaskSizeStyleValue, "cover");
assert_parse!(CssAtomSet::ATOMS, MaskPositionStyleValue, "-20% -30px");
assert_parse!(CssAtomSet::ATOMS, MaskPositionStyleValue, "left center");
assert_parse!(CssAtomSet::ATOMS, MaskPositionStyleValue, "center center");
assert_parse!(CssAtomSet::ATOMS, MaskStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, MaskStyleValue, "url(mask.svg) luminance");
assert_parse!(
CssAtomSet::ATOMS,
MaskStyleValue,
"url(mask.svg) center / cover no-repeat border-box no-clip add alpha"
);
assert_parse!(CssAtomSet::ATOMS, MaskStyleValue, "url(a.svg), url(b.svg) add");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg)");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 fill");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 / 10px");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 / 10px / 2");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 / / 2");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 round");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(border.svg) 30 / 10px repeat alpha");
assert_parse!(CssAtomSet::ATOMS, MaskBorderStyleValue, "stretch luminance");
}
#[test]
fn test_errors() {
assert_peek_false!(CssAtomSet::ATOMS, ClipStyleValue, "none");
assert_peek_false!(CssAtomSet::ATOMS, ClipRuleStyleValue, "auto");
assert_peek_false!(CssAtomSet::ATOMS, ClipRuleStyleValue, "1");
assert_parse_error!(CssAtomSet::ATOMS, ClipStyleValue, "rect(10px)");
assert_peek_false!(CssAtomSet::ATOMS, MaskBorderModeStyleValue, "auto");
assert_parse_error!(CssAtomSet::ATOMS, MaskBorderModeStyleValue, "luminance alpha");
assert_peek_false!(CssAtomSet::ATOMS, MaskTypeStyleValue, "auto");
assert_parse_error!(CssAtomSet::ATOMS, MaskTypeStyleValue, "luminance alpha");
assert_peek_false!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "auto");
assert_peek_false!(CssAtomSet::ATOMS, MaskRepeatStyleValue, "repeat-z");
assert_parse_error!(CssAtomSet::ATOMS, MaskSizeStyleValue, "-1px");
assert_parse_error!(CssAtomSet::ATOMS, MaskSizeStyleValue, "1px 2px 3px");
assert_peek_false!(CssAtomSet::ATOMS, MaskPositionStyleValue, "auto");
assert_parse_error!(CssAtomSet::ATOMS, MaskPositionStyleValue, "1px 2px 3px");
assert_parse_error!(CssAtomSet::ATOMS, MaskPositionStyleValue, "left right");
assert_peek_false!(CssAtomSet::ATOMS, MaskStyleValue, "");
assert_parse_error!(CssAtomSet::ATOMS, MaskStyleValue, "url(a.svg) url(b.svg)");
assert_peek_false!(CssAtomSet::ATOMS, MaskBorderStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, MaskBorderStyleValue, "/ 10px");
assert_parse_error!(CssAtomSet::ATOMS, MaskBorderStyleValue, "url(a.svg) url(b.svg)");
}
}