Chromium Code Reviews| Index: ui/base/l10n/l10n_util_unittest.cc |
| diff --git a/ui/base/l10n/l10n_util_unittest.cc b/ui/base/l10n/l10n_util_unittest.cc |
| index a9b51fd460aa60a16010bbe78fdf4476c4e1561d..6e47db6195e086935681a73e718a8cc8cbdc8e98 100644 |
| --- a/ui/base/l10n/l10n_util_unittest.cc |
| +++ b/ui/base/l10n/l10n_util_unittest.cc |
| @@ -74,7 +74,7 @@ TEST_F(L10nUtilTest, DISABLED_GetString) { |
| // Cocoa. |
| void SetDefaultLocaleForTest(const std::string& tag, base::Environment* env) { |
| -#if defined(OS_POSIX) && !defined(OS_CHROMEOS) |
| +#if defined(OS_POSIX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| env->SetVar("LANGUAGE", tag); |
| #else |
| base::i18n::SetICUDefaultLocale(tag); |
| @@ -86,12 +86,25 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| // Use a temporary locale dir so we don't have to actually build the locale |
| // pak files for this test. |
| FilePath orig_locale_dir; |
| +#if defined(OS_ANDROID) |
| + // For Android, locale file path uses the directory 'paks' under |
| + // base::DIR_ANDROID_APP_DATA. See ResourceBundle::GetLocaleFilePath. |
|
nilesh
2012/07/25 17:41:50
I think we should modify ui/base/ui_base_paths.cc
|
| + PathService::Get(base::DIR_ANDROID_APP_DATA, &orig_locale_dir); |
| +#else |
| PathService::Get(ui::DIR_LOCALES, &orig_locale_dir); |
| +#endif |
| FilePath new_locale_dir; |
| EXPECT_TRUE(file_util::CreateNewTempDirectory( |
| FILE_PATH_LITERAL("l10n_util_test"), |
| &new_locale_dir)); |
| +#if defined(OS_ANDROID) |
| + PathService::Override(base::DIR_ANDROID_APP_DATA, new_locale_dir); |
| + // A variable to hold the real directory for locale files |
| + FilePath locale_paks_dir = new_locale_dir.Append(FILE_PATH_LITERAL("paks")); |
| + file_util::CreateDirectory(locale_paks_dir); |
| +#else |
| PathService::Override(ui::DIR_LOCALES, new_locale_dir); |
| +#endif |
| // Make fake locale files. |
| std::string filenames[] = { |
| "en-US", |
| @@ -110,15 +123,20 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| }; |
| for (size_t i = 0; i < arraysize(filenames); ++i) { |
| +#if defined(OS_ANDROID) |
| + FilePath filename = locale_paks_dir.AppendASCII( |
| + filenames[i] + ".pak"); |
| +#else |
| FilePath filename = new_locale_dir.AppendASCII( |
| filenames[i] + ".pak"); |
| +#endif |
| file_util::WriteFile(filename, "", 0); |
| } |
| // Keep a copy of ICU's default locale before we overwrite it. |
| icu::Locale locale = icu::Locale::getDefault(); |
| -#if defined(OS_POSIX) && !defined(OS_CHROMEOS) |
| +#if defined(OS_POSIX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| env.reset(base::Environment::Create()); |
| // Test the support of LANGUAGE environment variable. |
| @@ -170,7 +188,7 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| SetDefaultLocaleForTest("ca_ES.UTF8@valencia", env.get()); |
| EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale("")); |
| -#endif // defined(OS_POSIX) && !defined(OS_CHROMEOS) |
| +#endif // defined(OS_POSIX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| SetDefaultLocaleForTest("en-US", env.get()); |
| EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("")); |
| @@ -178,9 +196,10 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| SetDefaultLocaleForTest("xx", env.get()); |
| EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("")); |
| -#if defined(OS_CHROMEOS) |
| - // ChromeOS honors preferred locale first in GetApplicationLocale(), |
| - // defaulting to en-US, while other targets first honor other signals. |
| +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
| + // ChromeOS and Android honor preferred locale first in |
| + // GetApplicationLocale(), defaulting to en-US, while other |
| + // targets first honor other signals. |
| base::i18n::SetICUDefaultLocale("en-GB"); |
| EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("")); |
| @@ -198,7 +217,7 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| base::i18n::SetICUDefaultLocale("en-US"); |
| EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-ZA")); |
| -#else // defined(OS_CHROMEOS) |
| +#else // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| SetDefaultLocaleForTest("en-GB", env.get()); |
| EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("")); |
| @@ -237,7 +256,7 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| SetDefaultLocaleForTest("en-ZA", env.get()); |
| EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("")); |
| -#endif // defined (OS_CHROMEOS) |
| +#endif // defined (OS_CHROMEOS) || defined(OS_ANDROID) |
| #if defined(OS_WIN) |
| // We don't allow user prefs for locale on linux/mac. |
| @@ -280,7 +299,11 @@ TEST_F(L10nUtilTest, GetAppLocale) { |
| #endif // defined(OS_WIN) |
| // Clean up. |
| +#if defined(OS_ANDROID) |
| + PathService::Override(base::DIR_ANDROID_APP_DATA, orig_locale_dir); |
| +#else |
| PathService::Override(ui::DIR_LOCALES, orig_locale_dir); |
| +#endif |
| file_util::Delete(new_locale_dir, true); |
| UErrorCode error_code = U_ZERO_ERROR; |
| icu::Locale::setDefault(locale, error_code); |