#[cfg(test)]
mod tests {
use super::super::*;
use crate::CssAtomSet;
use css_parse::{assert_parse, assert_parse_error, assert_peek_false};
#[test]
fn test_text_underline_position() {
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "auto");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "from-font");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "under");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "from-font left");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "right under");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "left");
assert_parse!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "right");
assert_peek_false!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextUnderlinePositionStyleValue, "1px");
}
#[test]
fn test_text_emphasis_style() {
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "filled");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "open");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "dot");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "circle");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "double-circle");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "triangle");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "sesame");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "filled dot");
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisStyleStyleValue, "auto");
}
#[test]
fn test_text_emphasis() {
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "filled");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "dot");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "red");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "#ff0000");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "filled red");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "dot blue");
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisStyleValue, "invalid");
}
#[test]
fn test_text_decoration_line() {
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "underline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "overline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "line-through");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "underline overline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "underline line-through overline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "spelling-error");
assert_parse!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "grammar-error");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "");
assert_parse_error!(CssAtomSet::ATOMS, TextDecorationLineStyleValue, "none underline");
}
#[test]
fn test_text_decoration_skip_self() {
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "auto");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "skip-all");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "no-skip");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "skip-underline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "skip-overline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "skip-line-through");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "skip-underline skip-overline");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationSkipSelfStyleValue, "left");
}
#[test]
fn test_text_decoration_skip_spaces() {
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "none");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "all");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "start");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "end");
assert_parse!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "start end");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationSkipSpacesStyleValue, "left");
}
#[test]
fn test_text_decoration() {
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "underline");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "solid");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "red");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "2px");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "underline solid");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "underline solid red");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "underline dotted red 2px");
assert_parse!(CssAtomSet::ATOMS, TextDecorationStyleValue, "red underline");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationStyleValue, "");
assert_peek_false!(CssAtomSet::ATOMS, TextDecorationStyleValue, "invalid");
}
#[test]
fn test_writes() {
assert_parse!(CssAtomSet::ATOMS, TextDecorationInsetStyleValue, "1px 2px");
assert_parse!(CssAtomSet::ATOMS, TextDecorationInsetStyleValue, "auto");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "spaces");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "punctuation");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "symbols");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "narrow");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "narrow symbols");
assert_parse!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "punctuation symbols spaces narrow");
}
#[test]
fn test_errors() {
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "");
assert_parse_error!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "spaces spaces");
assert_parse_error!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "punctuation punctuation");
assert_peek_false!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "foo");
assert_parse_error!(CssAtomSet::ATOMS, TextEmphasisSkipStyleValue, "punctuation bar narrow");
}
}