css_ast/rules/media/features/
horizontal_viewport_segments.rs1use super::prelude::*;
2use crate::units::CSSInt;
3
4ranged_feature!(
5 #[derive(ToCursors, ToSpan, SemanticEq, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6 #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
7 pub enum HorizontalViewportSegmentsMediaFeature{CssAtomSet::HorizontalViewportSegments | CssAtomSet::MinHorizontalViewportSegments | CssAtomSet::MaxHorizontalViewportSegments, CSSInt}
8);
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13 use crate::CssAtomSet;
14 use css_parse::{assert_parse, assert_parse_error};
15
16 #[test]
17 fn size_test() {
18 assert_eq!(std::mem::size_of::<HorizontalViewportSegmentsMediaFeature>(), 116);
19 }
20
21 #[test]
22 fn test_writes() {
23 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments:2)");
24 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments:8)");
25 assert_parse!(
26 CssAtomSet::ATOMS,
27 HorizontalViewportSegmentsMediaFeature,
28 "(min-horizontal-viewport-segments:2)"
29 );
30 assert_parse!(
31 CssAtomSet::ATOMS,
32 HorizontalViewportSegmentsMediaFeature,
33 "(max-horizontal-viewport-segments:2)"
34 );
35 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments<=3)");
36 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments>=5)");
37 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments>=8)");
38 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(horizontal-viewport-segments=16)");
39 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(6=horizontal-viewport-segments)");
40 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(2<=horizontal-viewport-segments)");
41 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(2<horizontal-viewport-segments<4)");
42 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(4>horizontal-viewport-segments<8)");
43 assert_parse!(
44 CssAtomSet::ATOMS,
45 HorizontalViewportSegmentsMediaFeature,
46 "(4>=horizontal-viewport-segments<=8)"
47 );
48 assert_parse!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(4<=horizontal-viewport-segments>8)");
49 }
50
51 #[test]
52 fn test_errors() {
53 assert_parse_error!(
54 CssAtomSet::ATOMS,
55 HorizontalViewportSegmentsMediaFeature,
56 "(horizontal-viewport-segments:)"
57 );
58 assert_parse_error!(
59 CssAtomSet::ATOMS,
60 HorizontalViewportSegmentsMediaFeature,
61 "(horizontal-viewport-segments: > 10px)"
62 );
63 assert_parse_error!(
64 CssAtomSet::ATOMS,
65 HorizontalViewportSegmentsMediaFeature,
66 "(max-horizontal-viewport-segments > 10px)"
67 );
68 assert_parse_error!(
69 CssAtomSet::ATOMS,
70 HorizontalViewportSegmentsMediaFeature,
71 "(min-horizontal-viewport-segments > 10px)"
72 );
73 assert_parse_error!(
74 CssAtomSet::ATOMS,
75 HorizontalViewportSegmentsMediaFeature,
76 "(horizontal-viewport-segments: 1px)"
77 );
78 assert_parse_error!(CssAtomSet::ATOMS, HorizontalViewportSegmentsMediaFeature, "(pointer: 1)");
79 }
80}