summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-05-08 15:31:02 +0100
committerGitHub <noreply@github.com>2026-05-08 15:31:02 +0100
commitb94f1498542be0e83fe8060a50bce5ff2d5a1c39 (patch)
tree8bddcfc9f8504817d5778136ec8c7c05d881c852 /tests
parenta6a0cc308c827557d04cb3e4c3b5d258de0411e6 (diff)
config: allow hashes for parsing colors (#14337)
Diffstat (limited to 'tests')
-rw-r--r--tests/config/shared/ParserUtils.cpp69
-rw-r--r--tests/helpers/MiscFunctions.cpp46
2 files changed, 69 insertions, 46 deletions
diff --git a/tests/config/shared/ParserUtils.cpp b/tests/config/shared/ParserUtils.cpp
new file mode 100644
index 00000000..76b516b4
--- /dev/null
+++ b/tests/config/shared/ParserUtils.cpp
@@ -0,0 +1,69 @@
+
+#include <config/shared/parserUtils/ParserUtils.hpp>
+
+#include <gtest/gtest.h>
+
+using namespace Config;
+
+TEST(ParserUtils, parseIntDecimal) {
+ EXPECT_EQ(ParserUtils::parseInt("42").value(), 42);
+ EXPECT_EQ(ParserUtils::parseInt("0").value(), 0);
+ EXPECT_EQ(ParserUtils::parseInt("-1").value(), -1);
+}
+
+TEST(ParserUtils, parseIntHex) {
+ EXPECT_EQ(ParserUtils::parseInt("0xFF").value(), 255);
+ EXPECT_EQ(ParserUtils::parseInt("0x00").value(), 0);
+ EXPECT_EQ(ParserUtils::parseInt("0x10").value(), 16);
+}
+
+TEST(ParserUtils, parseIntBooleanStrings) {
+ // "true", "yes", "on" -> 1; "false", "no", "off" -> 0
+ EXPECT_EQ(ParserUtils::parseInt("true").value(), 1);
+ EXPECT_EQ(ParserUtils::parseInt("yes").value(), 1);
+ EXPECT_EQ(ParserUtils::parseInt("on").value(), 1);
+ EXPECT_EQ(ParserUtils::parseInt("false").value(), 0);
+ EXPECT_EQ(ParserUtils::parseInt("no").value(), 0);
+ EXPECT_EQ(ParserUtils::parseInt("off").value(), 0);
+}
+
+TEST(ParserUtils, parseIntInvalid) {
+ EXPECT_FALSE(ParserUtils::parseInt("").has_value());
+ EXPECT_FALSE(ParserUtils::parseInt("abc").has_value());
+ EXPECT_FALSE(ParserUtils::parseInt("rgba(20,20,20,5)").has_value());
+ EXPECT_FALSE(ParserUtils::parseInt("#fff").has_value());
+}
+
+TEST(ParserUtils, parseColor) {
+ EXPECT_EQ(ParserUtils::parseColor("0xDEADBEEF").value_or(0), 0xDEADBEEF);
+ EXPECT_EQ(ParserUtils::parseColor("rgba(20, 21, 22, 0.5)").value_or(0), 0x7F141516);
+ EXPECT_EQ(ParserUtils::parseColor("rgb(20, 21, 22)").value_or(0), 0xFF141516);
+ EXPECT_EQ(ParserUtils::parseColor("rgb(141516)").value_or(0), 0xFF141516);
+ EXPECT_EQ(ParserUtils::parseColor("rgba(1415167f)").value_or(0), 0x7F141516);
+ EXPECT_EQ(ParserUtils::parseColor("4279506198").value_or(0), 0xFF141516);
+ EXPECT_EQ(ParserUtils::parseColor("1").value_or(0), 0x1);
+ EXPECT_EQ(ParserUtils::parseColor("#fed").value_or(0), 0xFFFFEEDD);
+ EXPECT_EQ(ParserUtils::parseColor("#FED").value_or(0), 0xFFFFEEDD);
+ EXPECT_EQ(ParserUtils::parseColor("#deffad").value_or(0), 0xFFDEFFAD);
+ EXPECT_EQ(ParserUtils::parseColor("#DEFFaD").value_or(0), 0xFFDEFFAD);
+ EXPECT_EQ(ParserUtils::parseColor("#DEFFaDAA").value_or(0), 0xAADEFFAD);
+ EXPECT_EQ(ParserUtils::parseColor("#DEFFaDaa").value_or(0), 0xAADEFFAD);
+}
+
+TEST(ParserUtils, parseColorBad) {
+ EXPECT_FALSE(!!ParserUtils::parseColor("mak"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("true"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("on"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("fucker"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("I sniff glue"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("0DEADBEEF"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("6270000000"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("rgba(20, 21, 22)"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("rgb(20, 21, 22, 0.2)"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#afed"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#FE"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#defd"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#DEFFD"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#DEFFaDAAe"));
+ EXPECT_FALSE(!!ParserUtils::parseColor("#DEFFaDa"));
+} \ No newline at end of file
diff --git a/tests/helpers/MiscFunctions.cpp b/tests/helpers/MiscFunctions.cpp
index e0857987..4eefb5d3 100644
--- a/tests/helpers/MiscFunctions.cpp
+++ b/tests/helpers/MiscFunctions.cpp
@@ -97,49 +97,3 @@ TEST(Helpers, truthyFalse) {
EXPECT_FALSE(truthy(""));
EXPECT_FALSE(truthy("random"));
}
-
-// configStringToInt
-
-TEST(Helpers, configStringToIntDecimal) {
- EXPECT_EQ(configStringToInt("42").value(), 42);
- EXPECT_EQ(configStringToInt("0").value(), 0);
- EXPECT_EQ(configStringToInt("-1").value(), -1);
-}
-
-TEST(Helpers, configStringToIntHex) {
- EXPECT_EQ(configStringToInt("0xFF").value(), 255);
- EXPECT_EQ(configStringToInt("0x00").value(), 0);
- EXPECT_EQ(configStringToInt("0x10").value(), 16);
-}
-
-TEST(Helpers, configStringToIntRgba) {
- auto result = configStringToInt("rgba(255, 0, 0, 1.0)");
- EXPECT_TRUE(result.has_value());
-}
-
-TEST(Helpers, configStringToIntBooleanStrings) {
- // "true", "yes", "on" -> 1; "false", "no", "off" -> 0
- EXPECT_EQ(configStringToInt("true").value(), 1);
- EXPECT_EQ(configStringToInt("yes").value(), 1);
- EXPECT_EQ(configStringToInt("on").value(), 1);
- EXPECT_EQ(configStringToInt("false").value(), 0);
- EXPECT_EQ(configStringToInt("no").value(), 0);
- EXPECT_EQ(configStringToInt("off").value(), 0);
-}
-
-TEST(Helpers, configStringToIntInvalid) {
- EXPECT_FALSE(configStringToInt("").has_value());
- EXPECT_FALSE(configStringToInt("abc").has_value());
-}
-
-// configStringToVector2D
-
-TEST(Helpers, configStringToVector2DValid) {
- EXPECT_EQ(configStringToVector2D("1920 1080"), Vector2D(1920, 1080));
- EXPECT_EQ(configStringToVector2D("0 0"), Vector2D(0, 0));
-}
-
-TEST(Helpers, configStringToVector2DInvalid) {
- EXPECT_THROW(configStringToVector2D("notvalid"), std::invalid_argument);
- EXPECT_THROW(configStringToVector2D(""), std::invalid_argument);
-}