summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-22 20:24:07 +0000
committerjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-22 20:24:07 +0000
commitcf7e592c1d75cd1ffc855667309adcc650112500 (patch)
treecd4e3f63c4f4d78b82079f34abb43fc17dadcfa2 /base
parent50dd8bb2e19a67adcef0f3bfbabd935a4e94de3c (diff)
downloadchromium_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.pbxproj4
-rw-r--r--base/base_unittests.scons2
-rw-r--r--base/build/base_unittests.vcproj2
-rw-r--r--base/sys_string_conversions_mac.mm2
-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));
}
-