| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #include "app/app_paths.h" | 7 #include "app/app_paths.h" |
| 8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
| 9 #if !defined(OS_MACOSX) | 9 #if !defined(OS_MACOSX) |
| 10 #include "app/test/data/resource.h" | 10 #include "app/test/data/resource.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 EXPECT_EQ(L"f\x2026", l10n_util::TruncateString(string, 2)); | 77 EXPECT_EQ(L"f\x2026", l10n_util::TruncateString(string, 2)); |
| 78 | 78 |
| 79 // Test adds ... at right spot when there is not enough room to break at a | 79 // Test adds ... at right spot when there is not enough room to break at a |
| 80 // word boundary. | 80 // word boundary. |
| 81 EXPECT_EQ(L"foooooey\x2026", l10n_util::TruncateString(string, 11)); | 81 EXPECT_EQ(L"foooooey\x2026", l10n_util::TruncateString(string, 11)); |
| 82 | 82 |
| 83 // Test completely truncates string if break is on initial whitespace. | 83 // Test completely truncates string if break is on initial whitespace. |
| 84 EXPECT_EQ(L"\x2026", l10n_util::TruncateString(L" ", 2)); | 84 EXPECT_EQ(L"\x2026", l10n_util::TruncateString(L" ", 2)); |
| 85 } | 85 } |
| 86 | 86 |
| 87 void SetICUDefaultLocale(const std::wstring& locale_string) { | 87 void SetICUDefaultLocale(const std::string& locale_string) { |
| 88 Locale locale(WideToASCII(locale_string).c_str()); | 88 Locale locale(locale_string.c_str()); |
| 89 UErrorCode error_code = U_ZERO_ERROR; | 89 UErrorCode error_code = U_ZERO_ERROR; |
| 90 Locale::setDefault(locale, error_code); | 90 Locale::setDefault(locale, error_code); |
| 91 EXPECT_TRUE(U_SUCCESS(error_code)); | 91 EXPECT_TRUE(U_SUCCESS(error_code)); |
| 92 } | 92 } |
| 93 | 93 |
| 94 #if defined(OS_WIN) || defined(OS_LINUX) | 94 #if defined(OS_WIN) || defined(OS_LINUX) |
| 95 // We are disabling this test on MacOS because GetApplicationLocale() as an | 95 // We are disabling this test on MacOS because GetApplicationLocale() as an |
| 96 // API isn't something that we'll easily be able to unit test in this manner. | 96 // API isn't something that we'll easily be able to unit test in this manner. |
| 97 // The meaning of that API, on the Mac, is "the locale used by Cocoa's main | 97 // The meaning of that API, on the Mac, is "the locale used by Cocoa's main |
| 98 // nib file", which clearly can't be stubbed by a test app that doesn't use | 98 // nib file", which clearly can't be stubbed by a test app that doesn't use |
| (...skipping 30 matching lines...) Expand all Loading... |
| 129 #endif | 129 #endif |
| 130 for (size_t i = 0; i < arraysize(filenames); ++i) { | 130 for (size_t i = 0; i < arraysize(filenames); ++i) { |
| 131 FilePath filename = new_locale_dir.AppendASCII( | 131 FilePath filename = new_locale_dir.AppendASCII( |
| 132 filenames[i] + kLocaleFileExtension); | 132 filenames[i] + kLocaleFileExtension); |
| 133 file_util::WriteFile(filename, "", 0); | 133 file_util::WriteFile(filename, "", 0); |
| 134 } | 134 } |
| 135 | 135 |
| 136 // Keep a copy of ICU's default locale before we overwrite it. | 136 // Keep a copy of ICU's default locale before we overwrite it. |
| 137 Locale locale = Locale::getDefault(); | 137 Locale locale = Locale::getDefault(); |
| 138 | 138 |
| 139 SetICUDefaultLocale(L"en-US"); | 139 SetICUDefaultLocale("en-US"); |
| 140 EXPECT_EQ(L"en-US", l10n_util::GetApplicationLocale(L"")); | 140 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); |
| 141 | 141 |
| 142 SetICUDefaultLocale(L"en-GB"); | 142 SetICUDefaultLocale("en-GB"); |
| 143 EXPECT_EQ(L"en-GB", l10n_util::GetApplicationLocale(L"")); | 143 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(L"")); |
| 144 | 144 |
| 145 SetICUDefaultLocale(L"fr-CA"); | 145 SetICUDefaultLocale("fr-CA"); |
| 146 EXPECT_EQ(L"fr", l10n_util::GetApplicationLocale(L"")); | 146 EXPECT_EQ("fr", l10n_util::GetApplicationLocale(L"")); |
| 147 | 147 |
| 148 SetICUDefaultLocale(L"xx"); | 148 SetICUDefaultLocale("xx"); |
| 149 EXPECT_EQ(L"en-US", l10n_util::GetApplicationLocale(L"")); | 149 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); |
| 150 | 150 |
| 151 SetICUDefaultLocale(L"en-US"); | 151 SetICUDefaultLocale("en-US"); |
| 152 EXPECT_EQ(L"fr", l10n_util::GetApplicationLocale(L"fr")); | 152 EXPECT_EQ("fr", l10n_util::GetApplicationLocale(L"fr")); |
| 153 EXPECT_EQ(L"fr", l10n_util::GetApplicationLocale(L"fr-CA")); | 153 EXPECT_EQ("fr", l10n_util::GetApplicationLocale(L"fr-CA")); |
| 154 | 154 |
| 155 SetICUDefaultLocale(L"en-US"); | 155 SetICUDefaultLocale("en-US"); |
| 156 // Aliases iw, no, tl to he, nb, fil. | 156 // Aliases iw, no, tl to he, nb, fil. |
| 157 EXPECT_EQ(L"he", l10n_util::GetApplicationLocale(L"iw")); | 157 EXPECT_EQ("he", l10n_util::GetApplicationLocale(L"iw")); |
| 158 EXPECT_EQ(L"nb", l10n_util::GetApplicationLocale(L"no")); | 158 EXPECT_EQ("nb", l10n_util::GetApplicationLocale(L"no")); |
| 159 EXPECT_EQ(L"fil", l10n_util::GetApplicationLocale(L"tl")); | 159 EXPECT_EQ("fil", l10n_util::GetApplicationLocale(L"tl")); |
| 160 // es-419 and es-XX (where XX is not Spain) should be | 160 // es-419 and es-XX (where XX is not Spain) should be |
| 161 // mapped to es-419 (Latin American Spanish). | 161 // mapped to es-419 (Latin American Spanish). |
| 162 EXPECT_EQ(L"es-419", l10n_util::GetApplicationLocale(L"es-419")); | 162 EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(L"es-419")); |
| 163 EXPECT_EQ(L"es", l10n_util::GetApplicationLocale(L"es-ES")); | 163 EXPECT_EQ("es", l10n_util::GetApplicationLocale(L"es-ES")); |
| 164 EXPECT_EQ(L"es-419", l10n_util::GetApplicationLocale(L"es-AR")); | 164 EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(L"es-AR")); |
| 165 | 165 |
| 166 SetICUDefaultLocale(L"es-MX"); | 166 SetICUDefaultLocale("es-MX"); |
| 167 EXPECT_EQ(L"es-419", l10n_util::GetApplicationLocale(L"")); | 167 EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(L"")); |
| 168 | 168 |
| 169 SetICUDefaultLocale(L"es-AR"); | 169 SetICUDefaultLocale("es-AR"); |
| 170 EXPECT_EQ(L"es-419", l10n_util::GetApplicationLocale(L"")); | 170 EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(L"")); |
| 171 EXPECT_EQ(L"es", l10n_util::GetApplicationLocale(L"es")); | 171 EXPECT_EQ("es", l10n_util::GetApplicationLocale(L"es")); |
| 172 | 172 |
| 173 SetICUDefaultLocale(L"es-ES"); | 173 SetICUDefaultLocale("es-ES"); |
| 174 EXPECT_EQ(L"es", l10n_util::GetApplicationLocale(L"")); | 174 EXPECT_EQ("es", l10n_util::GetApplicationLocale(L"")); |
| 175 | 175 |
| 176 SetICUDefaultLocale(L"es"); | 176 SetICUDefaultLocale("es"); |
| 177 EXPECT_EQ(L"es", l10n_util::GetApplicationLocale(L"")); | 177 EXPECT_EQ("es", l10n_util::GetApplicationLocale(L"")); |
| 178 | 178 |
| 179 SetICUDefaultLocale(L"zh-HK"); | 179 SetICUDefaultLocale("zh-HK"); |
| 180 EXPECT_EQ(L"zh-TW", l10n_util::GetApplicationLocale(L"")); | 180 EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(L"")); |
| 181 EXPECT_EQ(L"zh-CN", l10n_util::GetApplicationLocale(L"zh-CN")); | 181 EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(L"zh-CN")); |
| 182 | 182 |
| 183 SetICUDefaultLocale(L"zh-MK"); | 183 SetICUDefaultLocale("zh-MK"); |
| 184 EXPECT_EQ(L"zh-TW", l10n_util::GetApplicationLocale(L"")); | 184 EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(L"")); |
| 185 | 185 |
| 186 SetICUDefaultLocale(L"zh-SG"); | 186 SetICUDefaultLocale("zh-SG"); |
| 187 EXPECT_EQ(L"zh-CN", l10n_util::GetApplicationLocale(L"")); | 187 EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(L"")); |
| 188 | 188 |
| 189 SetICUDefaultLocale(L"he"); | 189 SetICUDefaultLocale("he"); |
| 190 EXPECT_EQ(L"en-US", l10n_util::GetApplicationLocale(L"en")); | 190 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"en")); |
| 191 | 191 |
| 192 #if defined(OS_WIN) | 192 #if defined(OS_WIN) |
| 193 // Oriya should be blocked unless OS is Vista or newer. | 193 // Oriya should be blocked unless OS is Vista or newer. |
| 194 if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) { | 194 if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) { |
| 195 SetICUDefaultLocale(L"or"); | 195 SetICUDefaultLocale("or"); |
| 196 EXPECT_EQ(L"en-US", l10n_util::GetApplicationLocale(L"")); | 196 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); |
| 197 SetICUDefaultLocale(L"en-GB"); | 197 SetICUDefaultLocale("en-GB"); |
| 198 EXPECT_EQ(L"en-GB", l10n_util::GetApplicationLocale(L"or")); | 198 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(L"or")); |
| 199 } else { | 199 } else { |
| 200 SetICUDefaultLocale(L"or"); | 200 SetICUDefaultLocale("or"); |
| 201 EXPECT_EQ(L"or", l10n_util::GetApplicationLocale(L"")); | 201 EXPECT_EQ("or", l10n_util::GetApplicationLocale(L"")); |
| 202 SetICUDefaultLocale(L"en-GB"); | 202 SetICUDefaultLocale("en-GB"); |
| 203 EXPECT_EQ(L"or", l10n_util::GetApplicationLocale(L"or")); | 203 EXPECT_EQ("or", l10n_util::GetApplicationLocale(L"or")); |
| 204 } | 204 } |
| 205 #endif | 205 #endif |
| 206 | 206 |
| 207 // Clean up. | 207 // Clean up. |
| 208 PathService::Override(app::DIR_LOCALES, orig_locale_dir.ToWStringHack()); | 208 PathService::Override(app::DIR_LOCALES, orig_locale_dir.ToWStringHack()); |
| 209 file_util::Delete(new_locale_dir, true); | 209 file_util::Delete(new_locale_dir, true); |
| 210 UErrorCode error_code = U_ZERO_ERROR; | 210 UErrorCode error_code = U_ZERO_ERROR; |
| 211 Locale::setDefault(locale, error_code); | 211 Locale::setDefault(locale, error_code); |
| 212 } | 212 } |
| 213 #endif | 213 #endif |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("en")); | 427 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("en")); |
| 428 // Chinese in China with '-'. | 428 // Chinese in China with '-'. |
| 429 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("zh-CN")); | 429 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("zh-CN")); |
| 430 // Filipino : 3-letter code | 430 // Filipino : 3-letter code |
| 431 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("fil")); | 431 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("fil")); |
| 432 // Russian | 432 // Russian |
| 433 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("ru")); | 433 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("ru")); |
| 434 // Japanese that uses multiple scripts | 434 // Japanese that uses multiple scripts |
| 435 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("ja")); | 435 EXPECT_EQ(l10n_util::LEFT_TO_RIGHT, GetTextDirection("ja")); |
| 436 } | 436 } |
| OLD | NEW |