diff --git a/apps/openmw_test_suite/CMakeLists.txt b/apps/openmw_test_suite/CMakeLists.txt index 113a0b61ec..106837a67d 100644 --- a/apps/openmw_test_suite/CMakeLists.txt +++ b/apps/openmw_test_suite/CMakeLists.txt @@ -75,6 +75,7 @@ file(GLOB UNITTEST_SRC_FILES esmloader/record.cpp files/hash.cpp + files/conversion_tests.cpp toutf8/toutf8.cpp diff --git a/apps/openmw_test_suite/files/conversion_tests.cpp b/apps/openmw_test_suite/files/conversion_tests.cpp new file mode 100644 index 0000000000..ec0ec9fb23 --- /dev/null +++ b/apps/openmw_test_suite/files/conversion_tests.cpp @@ -0,0 +1,27 @@ +#include +#include + +#include + +#include + +namespace +{ + using namespace testing; + using namespace Files; + + constexpr auto test_path_u8 = u8"./tmp/ÒĎƎɠˠΏЌԹעڨ/ऊঋਐઊଊ/ஐఋಋഊ/ฎນ༈ႩᄇḮὯ⁂₁₩ℒ/Ⅷ↝∑/☝✌〥ぐズ㌎丕.갔3갛"; + constexpr auto test_path = "./tmp/ÒĎƎɠˠΏЌԹעڨ/ऊঋਐઊଊ/ஐఋಋഊ/ฎນ༈ႩᄇḮὯ⁂₁₩ℒ/Ⅷ↝∑/☝✌〥ぐズ㌎丕.갔3갛"; + + TEST(OpenMWConversion, should_support_unicode_string_to_path) + { + auto p = Files::pathFromUnicodeString(test_path); + EXPECT_EQ(Misc::StringUtils::u8StringToString(p.u8string()), Misc::StringUtils::u8StringToString(test_path_u8)); + } + + TEST(OpenMWConversion, should_support_path_to_unicode_string) + { + std::filesystem::path p{ test_path_u8 }; + EXPECT_EQ(Files::pathToUnicodeString(p), test_path); + } +}