Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1053)

Unified Diff: ui/base/l10n/l10n_util_unittest.cc

Issue 486203002: Do not switch the ICU locale when interacting with public session pods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved redundant test statements into helper methods. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/l10n/l10n_util.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9e2ae4d3446b9f5b1d3c1f4739de2e9cfc361c4f..972dd261b043f3259992a992226e6ec3261c5bdd 100644
--- a/ui/base/l10n/l10n_util_unittest.cc
+++ b/ui/base/l10n/l10n_util_unittest.cc
@@ -141,12 +141,15 @@ TEST_F(L10nUtilTest, GetAppLocale) {
base::i18n::SetICUDefaultLocale("en-US");
env->SetVar("LANGUAGE", "xx:fr_CA");
EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
env->SetVar("LANGUAGE", "xx:yy:en_gb.utf-8@quot");
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
env->SetVar("LANGUAGE", "xx:zh-hk");
EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
// We emulate gettext's behavior here, which ignores LANG/LC_MESSAGES/LC_ALL
// when LANGUAGE is specified. If no language specified in LANGUAGE is
@@ -155,9 +158,11 @@ TEST_F(L10nUtilTest, GetAppLocale) {
base::i18n::SetICUDefaultLocale("fr-FR");
env->SetVar("LANGUAGE", "xx:yy");
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
env->SetVar("LANGUAGE", "/fr:zh_CN");
EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
// Test prioritization of the different environment variables.
env->SetVar("LANGUAGE", "fr");
@@ -165,35 +170,46 @@ TEST_F(L10nUtilTest, GetAppLocale) {
env->SetVar("LC_MESSAGES", "he");
env->SetVar("LANG", "nb");
EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
env->UnSetVar("LANGUAGE");
EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
env->UnSetVar("LC_ALL");
EXPECT_EQ("he", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
env->UnSetVar("LC_MESSAGES");
EXPECT_EQ("nb", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("nb", icu::Locale::getDefault().getLanguage());
env->UnSetVar("LANG");
SetDefaultLocaleForTest("ca", env.get());
EXPECT_EQ("ca", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("ca-ES", env.get());
EXPECT_EQ("ca", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("ca@valencia", env.get());
EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("ca_ES@valencia", env.get());
EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("ca_ES.UTF8@valencia", env.get());
EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
}
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("xx", env.get());
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
if (!kPlatformHasDefaultLocale) {
// ChromeOS & embedded use only browser prefs in GetApplicationLocale(),
@@ -201,88 +217,148 @@ TEST_F(L10nUtilTest, GetAppLocale) {
// the default locale from the OS or environment.
SetDefaultLocaleForTest("en-GB", env.get());
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(""));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-GB"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-AU"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-NZ"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-CA"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-US", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-ZA"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
} else {
// Most platforms have an OS-provided locale. This locale is preferred.
SetDefaultLocaleForTest("en-GB", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("fr-CA", env.get());
EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("es-MX", env.get());
EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("es-AR", env.get());
EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("es-ES", env.get());
EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("es", env.get());
EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("zh-HK", env.get());
EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("zh-MO", env.get());
EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("zh-SG", env.get());
EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-CA", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-AU", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-NZ", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
SetDefaultLocaleForTest("en-ZA", env.get());
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
}
+ SetDefaultLocaleForTest("en-US", env.get());
+
if (kSupportsLocalePreference) {
// On windows, the user can override the locale in preferences.
base::i18n::SetICUDefaultLocale("en-US");
EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr"));
+ EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr-CA"));
+ EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("en-US");
// Aliases iw, no, tl to he, nb, fil.
EXPECT_EQ("he", l10n_util::GetApplicationLocale("iw"));
+ EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
EXPECT_EQ("nb", l10n_util::GetApplicationLocale("no"));
+ EXPECT_STREQ("nb", icu::Locale::getDefault().getLanguage());
EXPECT_EQ("fil", l10n_util::GetApplicationLocale("tl"));
+ EXPECT_STREQ("fil", icu::Locale::getDefault().getLanguage());
// es-419 and es-XX (where XX is not Spain) should be
// mapped to es-419 (Latin American Spanish).
EXPECT_EQ("es-419", l10n_util::GetApplicationLocale("es-419"));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
EXPECT_EQ("es", l10n_util::GetApplicationLocale("es-ES"));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
EXPECT_EQ("es-419", l10n_util::GetApplicationLocale("es-AR"));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("es-AR");
EXPECT_EQ("es", l10n_util::GetApplicationLocale("es"));
+ EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("zh-HK");
EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale("zh-CN"));
+ EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("he");
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("he");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en", false));
+ EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("xx", false));
+ EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr", false));
+ EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en", false));
+ EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en-US", true));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
+ } else {
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string(), false));
+ EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+ base::i18n::SetICUDefaultLocale("de");
+ EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string(), true));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
}
#if defined(OS_WIN)
@@ -290,13 +366,17 @@ TEST_F(L10nUtilTest, GetAppLocale) {
if (base::win::GetVersion() < base::win::VERSION_VISTA) {
base::i18n::SetICUDefaultLocale("am");
EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(""));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("en-GB");
EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("am"));
+ EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
} else {
base::i18n::SetICUDefaultLocale("am");
EXPECT_EQ("am", l10n_util::GetApplicationLocale(""));
+ EXPECT_STREQ("am", icu::Locale::getDefault().getLanguage());
base::i18n::SetICUDefaultLocale("en-GB");
EXPECT_EQ("am", l10n_util::GetApplicationLocale("am"));
+ EXPECT_STREQ("am", icu::Locale::getDefault().getLanguage());
}
#endif // defined(OS_WIN)
« no previous file with comments | « ui/base/l10n/l10n_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698