css_ast/rules/media/features/
horizontal_viewport_segments.rs

1use 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}