Add UTF and other utility unit tests
authorest31 <MTest31@outlook.com>
Sun, 14 Jun 2015 10:00:06 +0000 (12:00 +0200)
committerest31 <MTest31@outlook.com>
Sun, 14 Jun 2015 10:07:51 +0000 (12:07 +0200)
src/unittest/test_utilities.cpp

index 07108706a5c9ef4803fa7f17d67d6d4421dff59c..6a731c662a2d1b6e42d7ce2054c8b6f03f1aec25 100644 (file)
@@ -37,11 +37,13 @@ public:
        void testUrlEncode();
        void testUrlDecode();
        void testPadString();
+       void testStartsWith();
        void testStrEqual();
        void testStringTrim();
        void testStrToIntConversion();
        void testStringReplace();
        void testStringAllowed();
+       void testUTF8();
        void testWrapRows();
        void testIsNumber();
        void testIsPowerOfTwo();
@@ -60,11 +62,13 @@ void TestUtilities::runTests(IGameDef *gamedef)
        TEST(testUrlEncode);
        TEST(testUrlDecode);
        TEST(testPadString);
+       TEST(testStartsWith);
        TEST(testStrEqual);
        TEST(testStringTrim);
        TEST(testStrToIntConversion);
        TEST(testStringReplace);
        TEST(testStringAllowed);
+       TEST(testUTF8);
        TEST(testWrapRows);
        TEST(testIsNumber);
        TEST(testIsPowerOfTwo);
@@ -123,6 +127,8 @@ void TestUtilities::testLowercase()
 
 void TestUtilities::testTrim()
 {
+       UASSERT(trim("") == "");
+       UASSERT(trim("dirt_with_grass") == "dirt_with_grass");
        UASSERT(trim("\n \t\r  Foo bAR  \r\n\t\t  ") == "Foo bAR");
        UASSERT(trim("\n \t\r    \r\n\t\t  ") == "");
 }
@@ -169,6 +175,19 @@ void TestUtilities::testPadString()
        UASSERT(padStringRight("hello", 8) == "hello   ");
 }
 
+void TestUtilities::testStartsWith()
+{
+       UASSERT(str_starts_with(std::string(), std::string()) == true);
+       UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+               std::string()) == true);
+       UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+               std::string("the")) == true);
+       UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+               std::string("The")) == false);
+       UASSERT(str_starts_with(std::string("the sharp pickaxe"),
+               std::string("The"), true) == true);
+       UASSERT(str_starts_with(std::string("T"), std::string("The")) == false);
+}
 
 void TestUtilities::testStrEqual()
 {
@@ -213,6 +232,12 @@ void TestUtilities::testStringAllowed()
        UASSERT(string_allowed_blacklist("hello123", "123") == false);
 }
 
+void TestUtilities::testUTF8()
+{
+       UASSERT(wide_to_utf8(utf8_to_wide("")) == "");
+       UASSERT(wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!"))
+               == "the shovel dug a crumbly node!");
+}
 
 void TestUtilities::testWrapRows()
 {