aboutsummaryrefslogtreecommitdiff
path: root/test/win
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-12-24 23:06:44 +0800
committercrupest <crupest@outlook.com>2019-12-24 23:06:44 +0800
commitab232f5d0224a36f23be084588246fbacec639ed (patch)
tree80043ae30f519053862cc07d7fa9d2ead63ddfec /test/win
parent0a25a6f5e3ece27791999d45e8aa83d83eb796d0 (diff)
downloadcru-ab232f5d0224a36f23be084588246fbacec639ed.tar.gz
cru-ab232f5d0224a36f23be084588246fbacec639ed.tar.bz2
cru-ab232f5d0224a36f23be084588246fbacec639ed.zip
...
Diffstat (limited to 'test/win')
-rw-r--r--test/win/CMakeLists.txt6
-rw-r--r--test/win/string.cpp30
2 files changed, 36 insertions, 0 deletions
diff --git a/test/win/CMakeLists.txt b/test/win/CMakeLists.txt
new file mode 100644
index 00000000..343b40fe
--- /dev/null
+++ b/test/win/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_executable(cru_test_win_base
+ string.cpp
+)
+target_link_libraries(cru_test_win_base PRIVATE cru_win_base cru_test_base)
+
+gtest_discover_tests(cru_test_win_base)
diff --git a/test/win/string.cpp b/test/win/string.cpp
new file mode 100644
index 00000000..4e25f8c0
--- /dev/null
+++ b/test/win/string.cpp
@@ -0,0 +1,30 @@
+#include "cru/win/string.hpp"
+
+#include <gtest/gtest.h>
+
+using cru::platform::win::k_code_point_end;
+
+TEST(WinString, Utf8ShouldWork) {
+ using cru::platform::win::Utf8Iterator;
+ std::string_view text = "aπ你🤣!";
+ Utf8Iterator i{text};
+ ASSERT_EQ(i.Next(), 0x0061);
+ ASSERT_EQ(i.Next(), 0x03C0);
+ ASSERT_EQ(i.Next(), 0x4F60);
+ ASSERT_EQ(i.Next(), 0x1F923);
+ ASSERT_EQ(i.Next(), 0x0021);
+ ASSERT_EQ(i.Next(), k_code_point_end);
+}
+
+TEST(WinString, Utf16ShouldWork) {
+ using cru::platform::win::Utf16Iterator;
+ std::wstring_view text = L"aπ你🤣!";
+ Utf16Iterator i{text};
+ ASSERT_EQ(i.Next(), 0x0061);
+ ASSERT_EQ(i.Next(), 0x03C0);
+ ASSERT_EQ(i.Next(), 0x4F60);
+ ASSERT_EQ(i.Next(), 0x1F923);
+ ASSERT_EQ(i.Next(), 0x0021);
+ ASSERT_EQ(i.Next(), k_code_point_end);
+}
+