| 15 | namespace ValdiTest { |
| 16 | |
| 17 | TEST(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()); |
nothing calls this directly
no test coverage detected