Index: base/i18n/icu_string_conversions_unittest.cc |
diff --git a/base/i18n/icu_string_conversions_unittest.cc b/base/i18n/icu_string_conversions_unittest.cc |
index d4d32518575ce3a4280dd1c2861764fbf24656d3..821529ddcee43d06417b999b933cc1b883deab60 100644 |
--- a/base/i18n/icu_string_conversions_unittest.cc |
+++ b/base/i18n/icu_string_conversions_unittest.cc |
@@ -42,49 +42,8 @@ string16 BuildString16(const wchar_t* s) { |
#endif |
} |
-const wchar_t* const kConvertRoundtripCases[] = { |
- L"Google Video", |
- // "网页 图片 资讯更多 »" |
- L"\x7f51\x9875\x0020\x56fe\x7247\x0020\x8d44\x8baf\x66f4\x591a\x0020\x00bb", |
- // "Παγκόσμιος Ιστός" |
- L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9" |
- L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2", |
- // "Поиск страниц на русском" |
- L"\x041f\x043e\x0438\x0441\x043a\x0020\x0441\x0442" |
- L"\x0440\x0430\x043d\x0438\x0446\x0020\x043d\x0430" |
- L"\x0020\x0440\x0443\x0441\x0441\x043a\x043e\x043c", |
- // "전체서비스" |
- L"\xc804\xccb4\xc11c\xbe44\xc2a4", |
- |
- // Test characters that take more than 16 bits. This will depend on whether |
- // wchar_t is 16 or 32 bits. |
-#if defined(WCHAR_T_IS_UTF16) |
- L"\xd800\xdf00", |
- // ????? (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E) |
- L"\xd807\xdd40\xd807\xdd41\xd807\xdd42\xd807\xdd43\xd807\xdd44", |
-#elif defined(WCHAR_T_IS_UTF32) |
- L"\x10300", |
- // ????? (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E) |
- L"\x11d40\x11d41\x11d42\x11d43\x11d44", |
-#endif |
-}; |
- |
} // namespace |
-TEST(ICUStringConversionsTest, ConvertCodepageUTF8) { |
- // Make sure WideToCodepage works like WideToUTF8. |
- for (size_t i = 0; i < arraysize(kConvertRoundtripCases); ++i) { |
- SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "]: %ls", |
- i, kConvertRoundtripCases[i])); |
- |
- std::string expected(WideToUTF8(kConvertRoundtripCases[i])); |
- std::string utf8; |
- EXPECT_TRUE(WideToCodepage(kConvertRoundtripCases[i], kCodepageUTF8, |
- OnStringConversionError::SKIP, &utf8)); |
- EXPECT_EQ(expected, utf8); |
- } |
-} |
- |
// kConverterCodepageCases is not comprehensive. There are a number of cases |
// to add if we really want to have a comprehensive coverage of various |
// codepages and their 'idiosyncrasies'. Currently, the only implementation |
@@ -233,73 +192,6 @@ static const struct { |
NULL}, |
}; |
-TEST(ICUStringConversionsTest, ConvertBetweenCodepageAndWide) { |
- for (size_t i = 0; i < arraysize(kConvertCodepageCases); ++i) { |
- SCOPED_TRACE(base::StringPrintf( |
- "Test[%" PRIuS "]: <encoded: %s> <codepage: %s>", i, |
- kConvertCodepageCases[i].encoded, |
- kConvertCodepageCases[i].codepage_name)); |
- |
- std::wstring wide; |
- bool success = CodepageToWide(kConvertCodepageCases[i].encoded, |
- kConvertCodepageCases[i].codepage_name, |
- kConvertCodepageCases[i].on_error, |
- &wide); |
- EXPECT_EQ(kConvertCodepageCases[i].success, success); |
- EXPECT_EQ(kConvertCodepageCases[i].wide, wide); |
- |
- // When decoding was successful and nothing was skipped, we also check the |
- // reverse conversion. Not all conversions are round-trippable, but |
- // kConverterCodepageCases does not have any one-way conversion at the |
- // moment. |
- if (success && |
- kConvertCodepageCases[i].on_error == |
- OnStringConversionError::FAIL) { |
- std::string encoded; |
- success = WideToCodepage(wide, kConvertCodepageCases[i].codepage_name, |
- kConvertCodepageCases[i].on_error, &encoded); |
- EXPECT_EQ(kConvertCodepageCases[i].success, success); |
- EXPECT_EQ(kConvertCodepageCases[i].encoded, encoded); |
- } |
- } |
- |
- // The above cases handled codepage->wide errors, but not wide->codepage. |
- // Test that here. |
- std::string encoded("Temp data"); // Make sure the string gets cleared. |
- |
- // First test going to an encoding that can not represent that character. |
- EXPECT_FALSE(WideToCodepage(L"Chinese\xff27", "iso-8859-1", |
- OnStringConversionError::FAIL, &encoded)); |
- EXPECT_TRUE(encoded.empty()); |
- EXPECT_TRUE(WideToCodepage(L"Chinese\xff27", "iso-8859-1", |
- OnStringConversionError::SKIP, &encoded)); |
- EXPECT_STREQ("Chinese", encoded.c_str()); |
- // From Unicode, SUBSTITUTE is the same as SKIP for now. |
- EXPECT_TRUE(WideToCodepage(L"Chinese\xff27", "iso-8859-1", |
- OnStringConversionError::SUBSTITUTE, |
- &encoded)); |
- EXPECT_STREQ("Chinese", encoded.c_str()); |
- |
-#if defined(WCHAR_T_IS_UTF16) |
- // When we're in UTF-16 mode, test an invalid UTF-16 character in the input. |
- EXPECT_FALSE(WideToCodepage(L"a\xd800z", "iso-8859-1", |
- OnStringConversionError::FAIL, &encoded)); |
- EXPECT_TRUE(encoded.empty()); |
- EXPECT_TRUE(WideToCodepage(L"a\xd800z", "iso-8859-1", |
- OnStringConversionError::SKIP, &encoded)); |
- EXPECT_STREQ("az", encoded.c_str()); |
-#endif // WCHAR_T_IS_UTF16 |
- |
- // Invalid characters should fail. |
- EXPECT_TRUE(WideToCodepage(L"a\xffffz", "iso-8859-1", |
- OnStringConversionError::SKIP, &encoded)); |
- EXPECT_STREQ("az", encoded.c_str()); |
- |
- // Invalid codepages should fail. |
- EXPECT_FALSE(WideToCodepage(L"Hello, world", "awesome-8571-2", |
- OnStringConversionError::SKIP, &encoded)); |
-} |
- |
TEST(ICUStringConversionsTest, ConvertBetweenCodepageAndUTF16) { |
for (size_t i = 0; i < arraysize(kConvertCodepageCases); ++i) { |
SCOPED_TRACE(base::StringPrintf( |