Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1412)

Unified Diff: base/sys_string_conversions_unittest.cc

Issue 149526: Use v8's utf8 <-> wide conversion for Linux sys_string_conversion. (Closed)
Patch Set: Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/sys_string_conversions_unittest.cc
diff --git a/base/sys_string_conversions_unittest.cc b/base/sys_string_conversions_unittest.cc
index 56c5412ec5d8850c862a730596d0862806d76f4c..f518b3db6942b7178df5fe1a0a75a0f68d0f5b61 100644
--- a/base/sys_string_conversions_unittest.cc
+++ b/base/sys_string_conversions_unittest.cc
@@ -177,6 +177,25 @@ static const wchar_t* const kConvertRoundtripCases[] = {
#endif
};
+TEST(SysStrings, SysWideAndUtf8) {
+ // Should not depend on the locale.
+ for (size_t i = 0; i < arraysize(kConvertRoundtripCases); ++i) {
+ std::wstring wide = kConvertRoundtripCases[i];
+ std::wstring trip = base::SysUTF8ToWide(base::SysWideToUTF8(wide));
+ EXPECT_EQ(wide.size(), trip.size());
+ EXPECT_EQ(wide, trip);
+ }
+}
+
+TEST(SysStrings, SysInvalidUtf8) {
+ EXPECT_EQ(1U, base::SysUTF8ToWide("\xc2\x80").size()); // Valid.
+ EXPECT_EQ(0U, base::SysUTF8ToWide("\x80").size());
+ EXPECT_EQ(3U, base::SysUTF8ToWide("abc").size()); // Valid.
+ EXPECT_EQ(0U, base::SysUTF8ToWide("abc\x80").size());
+ EXPECT_EQ(0U, base::SysUTF8ToWide("\xc0""aaaaaaaaa").size());
+ EXPECT_EQ(0U, base::SysUTF8ToWide("\xf5""aaaaaaaaa").size());
+ EXPECT_EQ(0U, base::SysUTF8ToWide("\xfe""aaaaaaaaa").size());
+}
TEST(SysStrings, SysNativeMBAndWide) {
ScopedSetLocale locale("en_US.utf-8");
« base/sys_string_conversions_linux.cc ('K') | « base/sys_string_conversions_linux.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698