OSDN Git Service

Added test cases for clean_file_name() function.
authorLoRd_MuldeR <mulder2@gmx.de>
Thu, 15 Dec 2016 21:42:22 +0000 (22:42 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Thu, 15 Dec 2016 21:42:22 +0000 (22:42 +0100)
test/src/MUtilitiesTest.cpp

index 4fb0cd6..baa116d 100644 (file)
 #define ASSERT_QSTR(X,Y) ASSERT_EQ((X).compare(QLatin1String(Y)), 0);
 
 //===========================================================================
-// Trim String
+// GLOBAL
 //===========================================================================
 
+//-----------------------------------------------------------------
+// Trim String
+//-----------------------------------------------------------------
+
+#define TEST_TRIM_STR(X,Y,Z) do \
+{ \
+       { \
+               QString test((Y)); \
+               MUtils::trim_##X(test); \
+               ASSERT_QSTR(test, (Z)); \
+       } \
+       { \
+               const QString test((Y)); \
+               ASSERT_QSTR(MUtils::trim_##X(test), (Z)); \
+       } \
+} \
+while(0)
+
 TEST(Global, TrimStringLeft)
 {
-       {
-               QString test("");
-               MUtils::trim_left(test);
-               ASSERT_QSTR(test, "");
-       }
-       {
-               QString test("   ");
-               MUtils::trim_left(test);
-               ASSERT_QSTR(test, "");
-       }
-       {
-               QString test("!   test   !");
-               MUtils::trim_left(test);
-               ASSERT_QSTR(test, "!   test   !");
-       }
-       {
-               QString test("   test   ");
-               MUtils::trim_left(test);
-               ASSERT_QSTR(test, "test   ");
-       }
-       {
-               QString test("   !   test   !   ");
-               MUtils::trim_left(test);
-               ASSERT_QSTR(test, "!   test   !   ");
-       }
-       {
-               const QString test("   test   ");
-               ASSERT_QSTR(MUtils::trim_left(test), "test   ");
-       }
+       TEST_TRIM_STR(left, "", "");
+       TEST_TRIM_STR(left, "   ", "");
+       TEST_TRIM_STR(left, "!   test   !", "!   test   !");
+       TEST_TRIM_STR(left, "   test   ", "test   ");
+       TEST_TRIM_STR(left, "   !   test   !   ", "!   test   !   ");
 }
 
 TEST(Global, TrimStringRight)
 {
-       {
-               QString test("");
-               MUtils::trim_right(test);
-               ASSERT_QSTR(test, "");
-       }
-       {
-               QString test("   ");
-               MUtils::trim_right(test);
-               ASSERT_QSTR(test, "");
-       }
-       {
-               QString test("!   test   !");
-               MUtils::trim_right(test);
-               ASSERT_QSTR(test, "!   test   !");
-       }
-       {
-               QString test("   test   ");
-               MUtils::trim_right(test);
-               ASSERT_QSTR(test, "   test");
-       }
-       {
-               QString test("   !   test   !   ");
-               MUtils::trim_right(test);
-               ASSERT_QSTR(test, "   !   test   !");
-       }
-       {
-               const QString test("   test   ");
-               ASSERT_QSTR(MUtils::trim_right(test), "   test");
-       }
+       TEST_TRIM_STR(right, "", "");
+       TEST_TRIM_STR(right, "   ", "");
+       TEST_TRIM_STR(right, "!   test   !", "!   test   !");
+       TEST_TRIM_STR(right, "   test   ", "   test");
+       TEST_TRIM_STR(right, "   !   test   !   ", "   !   test   !");
+}
+
+#undef TEST_TRIM_STR
+
+//-----------------------------------------------------------------
+// Clean File Path
+//-----------------------------------------------------------------
+
+#define TEST_CLEAN_FILE(X,Y,Z) do \
+{ \
+       ASSERT_QSTR(MUtils::clean_file_##X((Y)), (Z)); \
+} \
+while(0)
+
+TEST(Global, CleanFileName)
+{
+       static const char *const VALID_CHARS = "!#$%&'()+,-.0123456789;=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{}~";
+       TEST_CLEAN_FILE(name, "", "");
+       TEST_CLEAN_FILE(name, VALID_CHARS, VALID_CHARS);
+       TEST_CLEAN_FILE(name, "example.txt", "example.txt");
+       TEST_CLEAN_FILE(name, " example.txt", " example.txt");
+       TEST_CLEAN_FILE(name, "example.txt ", "example.txt");
+       TEST_CLEAN_FILE(name, ".example.txt", ".example.txt");
+       TEST_CLEAN_FILE(name, "example.txt.", "example.txt");
+       TEST_CLEAN_FILE(name, "foo<>:\"/\\|?*\t\r\n.bar", "foo____________.bar");
+       TEST_CLEAN_FILE(name, "NUL", "___");
+       TEST_CLEAN_FILE(name, "NUL.txt", "___.txt");
+       TEST_CLEAN_FILE(name, "NULx.txt", "NULx.txt");
+       TEST_CLEAN_FILE(name, "xNUL.txt", "xNUL.txt");
 }
 
 //===========================================================================