MCPcopy Create free account
hub / github.com/Snapchat/Valdi / TEST

Function TEST

valdi/test/runtime/AttributeParser_tests.cpp:17–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15namespace ValdiTest {
16
17TEST(AttributeParser, canParseColor) {
18 ColorPalette colorPalette;
19
20 AttributeParser parser("red rgba(0, 255, 0, 1.0) #0000ff #0000ff10 #f5a rgba(50, 25, 100, 0.5) rgba(25%, 10%, 5%, "
21 "0.1) rgba(255, 255, 255, 5%)");
22
23 auto c = parser.parseColor(colorPalette);
24
25 ASSERT_TRUE(c);
26 ASSERT_EQ(Color::rgba(255, 0, 0, 1.0), c.value());
27 ASSERT_EQ(static_cast<size_t>(3), parser.position());
28 ASSERT_FALSE(parser.hasError());
29 ASSERT_FALSE(parser.isAtEnd());
30
31 c = parser.parseColor(colorPalette);
32
33 ASSERT_TRUE(c);
34 ASSERT_EQ(Color::rgba(0, 255, 0, 1.0), c.value());
35 ASSERT_EQ(static_cast<size_t>(24), parser.position());
36 ASSERT_FALSE(parser.hasError());
37 ASSERT_FALSE(parser.isAtEnd());
38
39 c = parser.parseColor(colorPalette);
40
41 ASSERT_TRUE(c);
42 ASSERT_EQ(Color::rgba(0, 0, 255, 1.0), c.value());
43 ASSERT_EQ(static_cast<size_t>(32), parser.position());
44 ASSERT_FALSE(parser.hasError());
45 ASSERT_FALSE(parser.isAtEnd());
46
47 c = parser.parseColor(colorPalette);
48
49 ASSERT_TRUE(c);
50 ASSERT_EQ(Color::rgba(0, 0, 255, 16 / 255.0), c.value());
51 ASSERT_EQ(static_cast<size_t>(42), parser.position());
52 ASSERT_FALSE(parser.hasError());
53 ASSERT_FALSE(parser.isAtEnd());
54
55 c = parser.parseColor(colorPalette);
56
57 ASSERT_TRUE(c);
58 ASSERT_EQ(Color::rgba(255, 85, 170, 1.0), c.value());
59 ASSERT_EQ(static_cast<size_t>(47), parser.position());
60 ASSERT_FALSE(parser.hasError());
61 ASSERT_FALSE(parser.isAtEnd());
62
63 c = parser.parseColor(colorPalette);
64
65 ASSERT_TRUE(c);
66 ASSERT_EQ(Color::rgba(50, 25, 100, 0.5), c.value());
67 ASSERT_EQ(static_cast<size_t>(70), parser.position());
68 ASSERT_FALSE(parser.hasError());
69 ASSERT_FALSE(parser.isAtEnd());
70
71 c = parser.parseColor(colorPalette);
72
73 ASSERT_TRUE(c);
74 ASSERT_EQ(Color::rgba(63, 25, 12, 25 / 255.0), c.value());

Callers

nothing calls this directly

Calls 8

parseColorMethod · 0.80
parseAngleMethod · 0.80
parseDimensionMethod · 0.80
valueMethod · 0.65
DimensionClass · 0.50
positionMethod · 0.45
hasErrorMethod · 0.45
isAtEndMethod · 0.45

Tested by

no test coverage detected