diff options
author | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-22 20:24:07 +0000 |
---|---|---|
committer | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-22 20:24:07 +0000 |
commit | cf7e592c1d75cd1ffc855667309adcc650112500 (patch) | |
tree | cd4e3f63c4f4d78b82079f34abb43fc17dadcfa2 /base | |
parent | 50dd8bb2e19a67adcef0f3bfbabd935a4e94de3c (diff) | |
download | chromium_src-cf7e592c1d75cd1ffc855667309adcc650112500.zip chromium_src-cf7e592c1d75cd1ffc855667309adcc650112500.tar.gz chromium_src-cf7e592c1d75cd1ffc855667309adcc650112500.tar.bz2 |
Make String Conversion Unittest x-platform + fix a small bug the tests exposed.
Review URL: http://codereview.chromium.org/8067
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3760 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/base.xcodeproj/project.pbxproj | 4 | ||||
-rw-r--r-- | base/base_unittests.scons | 2 | ||||
-rw-r--r-- | base/build/base_unittests.vcproj | 2 | ||||
-rw-r--r-- | base/sys_string_conversions_mac.mm | 2 | ||||
-rw-r--r-- | base/sys_string_conversions_unittest.cc (renamed from base/sys_string_conversions_win_unittest.cc) | 20 |
5 files changed, 19 insertions, 11 deletions
diff --git a/base/base.xcodeproj/project.pbxproj b/base/base.xcodeproj/project.pbxproj index 1d64804..8269df1 100644 --- a/base/base.xcodeproj/project.pbxproj +++ b/base/base.xcodeproj/project.pbxproj @@ -167,6 +167,7 @@ B52C916C0E9428F500208D01 /* clipboard_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B52C916B0E9428F500208D01 /* clipboard_unittest.cc */; }; B53C85280E9C298C000F70AB /* idle_timer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 820EB4EB0E3A60FE009668FC /* idle_timer.cc */; }; B57E4D780E9C26340090055D /* idletimer_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B57E4D770E9C26340090055D /* idletimer_unittest.cc */; }; + B5D544AB0EAFB7E000272A1C /* sys_string_conversions_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B5D544AA0EAFB7E000272A1C /* sys_string_conversions_unittest.cc */; }; B5EF235C0E89ABF500E1E114 /* platform_canvas_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = ABE1BA0C0E756EC4009041DA /* platform_canvas_unittest.cc */; }; BA0F69870E79D7980079A8A1 /* thread_local_storage_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = BA0F69860E79D7980079A8A1 /* thread_local_storage_unittest.cc */; }; BA5CC5840E788093004EDD45 /* shared_memory_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = BA5CC5830E788093004EDD45 /* shared_memory_unittest.cc */; }; @@ -620,6 +621,7 @@ ABF4B9B40DC2BC9F00A6E319 /* path_service.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = path_service.cc; sourceTree = "<group>"; }; B52C916B0E9428F500208D01 /* clipboard_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = clipboard_unittest.cc; sourceTree = "<group>"; }; B57E4D770E9C26340090055D /* idletimer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = idletimer_unittest.cc; sourceTree = "<group>"; }; + B5D544AA0EAFB7E000272A1C /* sys_string_conversions_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sys_string_conversions_unittest.cc; sourceTree = "<group>"; }; BA0F69860E79D7980079A8A1 /* thread_local_storage_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_local_storage_unittest.cc; sourceTree = "<group>"; }; BA5CC5830E788093004EDD45 /* shared_memory_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shared_memory_unittest.cc; sourceTree = "<group>"; }; BA739A000E5E3242009842A7 /* tracked_objects_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tracked_objects_unittest.cc; sourceTree = "<group>"; }; @@ -998,6 +1000,7 @@ 7B6AF6330E80211700F9F9CF /* sys_info_unittest.cc */, 7B4C5F470E4B6BF900679E8F /* sys_string_conversions.h */, 7B4C5F480E4B6BF900679E8F /* sys_string_conversions_mac.mm */, + B5D544AA0EAFB7E000272A1C /* sys_string_conversions_unittest.cc */, E4CE9D780E8C1FCA00D5378C /* system_monitor.cc */, E4CE9D770E8C1FCA00D5378C /* system_monitor.h */, E4CE9D760E8C1FCA00D5378C /* system_monitor_unittest.cc */, @@ -1470,6 +1473,7 @@ 7B78D3A00E54FE0100609465 /* string_tokenizer_unittest.cc in Sources */, 7B78D3A10E54FE0100609465 /* string_util_unittest.cc in Sources */, 7B6AF6350E80211E00F9F9CF /* sys_info_unittest.cc in Sources */, + B5D544AB0EAFB7E000272A1C /* sys_string_conversions_unittest.cc in Sources */, BA0F69870E79D7980079A8A1 /* thread_local_storage_unittest.cc in Sources */, 7BAE38AF0E6EFDC300C3F750 /* thread_local_unittest.cc in Sources */, 93E7031B0E5D64390046259B /* thread_unittest.cc in Sources */, diff --git a/base/base_unittests.scons b/base/base_unittests.scons index 628970d..5ff75ce 100644 --- a/base/base_unittests.scons +++ b/base/base_unittests.scons @@ -169,7 +169,7 @@ if env['PLATFORM'] == 'win32': 'file_version_info_unittest.cc', 'object_watcher_unittest.cc', 'pe_image_unittest.cc', - 'sys_string_conversions_win_unittest.cc', + 'sys_string_conversions_unittest.cc', 'time_unittest_win.cc', 'win_util_unittest.cc', 'wmi_util_unittest.cc', diff --git a/base/build/base_unittests.vcproj b/base/build/base_unittests.vcproj index cf91226..ea8cce5 100644 --- a/base/build/base_unittests.vcproj +++ b/base/build/base_unittests.vcproj @@ -324,7 +324,7 @@ > </File> <File - RelativePath="..\sys_string_conversions_win_unittest.cc" + RelativePath="..\sys_string_conversions_unittest.cc" > </File> <File diff --git a/base/sys_string_conversions_mac.mm b/base/sys_string_conversions_mac.mm index 02a4244..0da99f1 100644 --- a/base/sys_string_conversions_mac.mm +++ b/base/sys_string_conversions_mac.mm @@ -61,7 +61,7 @@ static StringType CFStringToSTLStringWithEncodingT(CFStringRef cfstring, return StringType(); out_buffer[elements - 1] = '\0'; - return StringType(&out_buffer[0]); + return StringType(&out_buffer[0], elements - 1); } // Given an STL string |in| with an encoding specified by |in_encoding|, diff --git a/base/sys_string_conversions_win_unittest.cc b/base/sys_string_conversions_unittest.cc index 2c74c3e..41c52ba 100644 --- a/base/sys_string_conversions_win_unittest.cc +++ b/base/sys_string_conversions_unittest.cc @@ -6,15 +6,19 @@ #include "base/sys_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" -// Apparently Windows doesn't have constants for these. -static const int kCpLatin1 = 850; -static const int kCpBig5 = 950; +#ifdef WCHAR_T_IS_UTF32 +static const std::wstring kSysWideOldItalicLetterA = L"\x10300"; +#else +static const std::wstring kSysWideOldItalicLetterA = L"\xd800\xdf00"; +#endif -TEST(SysStringsWin, SysWideToUTF8) { +TEST(SysStrings, SysWideToUTF8) { using base::SysWideToUTF8; EXPECT_EQ("Hello, world", SysWideToUTF8(L"Hello, world")); EXPECT_EQ("\xe4\xbd\xa0\xe5\xa5\xbd", SysWideToUTF8(L"\x4f60\x597d")); - EXPECT_EQ("\xF0\x90\x8C\x80", SysWideToUTF8(L"\xd800\xdf00")); // >16 bits + + // >16 bits + EXPECT_EQ("\xF0\x90\x8C\x80", SysWideToUTF8(kSysWideOldItalicLetterA)); // Error case. When Windows finds a UTF-16 character going off the end of // a string, it just converts that literal value to UTF-8, even though this @@ -36,11 +40,12 @@ TEST(SysStringsWin, SysWideToUTF8) { EXPECT_EQ(expected_null, SysWideToUTF8(wide_null)); } -TEST(SysStringsWin, SysUTF8ToWide) { +TEST(SysStrings, SysUTF8ToWide) { using base::SysUTF8ToWide; EXPECT_EQ(L"Hello, world", SysUTF8ToWide("Hello, world")); EXPECT_EQ(L"\x4f60\x597d", SysUTF8ToWide("\xe4\xbd\xa0\xe5\xa5\xbd")); - EXPECT_EQ(L"\xd800\xdf00", SysUTF8ToWide("\xF0\x90\x8C\x80")); // >16 bits + // >16 bits + EXPECT_EQ(kSysWideOldItalicLetterA, SysUTF8ToWide("\xF0\x90\x8C\x80")); // Error case. When Windows finds an invalid UTF-8 character, it just skips // it. This seems weird because it's inconsistent with the reverse conversion. @@ -60,4 +65,3 @@ TEST(SysStringsWin, SysUTF8ToWide) { EXPECT_EQ(expected_null, SysUTF8ToWide(utf8_null)); } - |