diff options
Diffstat (limited to 'absl/strings')
-rw-r--r-- | absl/strings/str_split_test.cc | 15 | ||||
-rw-r--r-- | absl/strings/string_view_test.cc | 7 |
2 files changed, 15 insertions, 7 deletions
diff --git a/absl/strings/str_split_test.cc b/absl/strings/str_split_test.cc index 500f3cbc3789..b1db1c5647e7 100644 --- a/absl/strings/str_split_test.cc +++ b/absl/strings/str_split_test.cc @@ -621,23 +621,28 @@ TEST(Split, StringDelimiter) { TEST(Split, UTF8) { // Tests splitting utf8 strings and utf8 delimiters. + std::string utf8_string = "\u03BA\u1F79\u03C3\u03BC\u03B5"; { // A utf8 input std::string with an ascii delimiter. - std::vector<absl::string_view> v = absl::StrSplit("a,κόσμε", ','); - EXPECT_THAT(v, ElementsAre("a", "κόσμε")); + std::string to_split = "a," + utf8_string; + std::vector<absl::string_view> v = absl::StrSplit(to_split, ','); + EXPECT_THAT(v, ElementsAre("a", utf8_string)); } { // A utf8 input std::string and a utf8 delimiter. - std::vector<absl::string_view> v = absl::StrSplit("a,κόσμε,b", ",κόσμε,"); + std::string to_split = "a," + utf8_string + ",b"; + std::string unicode_delimiter = "," + utf8_string + ","; + std::vector<absl::string_view> v = + absl::StrSplit(to_split, unicode_delimiter); EXPECT_THAT(v, ElementsAre("a", "b")); } { // A utf8 input std::string and ByAnyChar with ascii chars. std::vector<absl::string_view> v = - absl::StrSplit("Foo hällo th丞re", absl::ByAnyChar(" \t")); - EXPECT_THAT(v, ElementsAre("Foo", "hällo", "th丞re")); + absl::StrSplit("Foo h\u00E4llo th\u4E1Ere", absl::ByAnyChar(" \t")); + EXPECT_THAT(v, ElementsAre("Foo", "h\u00E4llo", "th\u4E1Ere")); } } diff --git a/absl/strings/string_view_test.cc b/absl/strings/string_view_test.cc index df307ac7cfab..3077d240d17b 100644 --- a/absl/strings/string_view_test.cc +++ b/absl/strings/string_view_test.cc @@ -684,8 +684,11 @@ TEST(StringViewTest, TruncSubstr) { } TEST(StringViewTest, UTF8) { - EXPECT_EQ(strlen("á"), absl::string_view("á á").find_first_of(" ")); - EXPECT_EQ(strlen("á"), absl::string_view("á á").find_first_of(" \t")); + std::string utf8 = "\u00E1"; + std::string utf8_twice = utf8 + " " + utf8; + int utf8_len = strlen(utf8.data()); + EXPECT_EQ(utf8_len, absl::string_view(utf8_twice).find_first_of(" ")); + EXPECT_EQ(utf8_len, absl::string_view(utf8_twice).find_first_of(" \t")); } TEST(StringViewTest, FindConformance) { |