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

Side by Side Diff: app/l10n_util_unittest.cc

Issue 3076020: Reland r54418 - base: Add UnSetEnv function to EnvVarGetter API. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: Created 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | base/env_var.h » ('j') | chrome/plugin/plugin_main_mac.mm » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #if defined(OS_POSIX) && !defined(OS_MACOSX) 7 #if defined(OS_POSIX) && !defined(OS_MACOSX)
8 #include <cstdlib> 8 #include <cstdlib>
9 #endif 9 #endif
10 10
11 #include "app/app_paths.h" 11 #include "app/app_paths.h"
12 #include "app/l10n_util.h" 12 #include "app/l10n_util.h"
13 #include "app/l10n_util_collator.h" 13 #include "app/l10n_util_collator.h"
14 #if !defined(OS_MACOSX) 14 #if !defined(OS_MACOSX)
15 #include "app/test/data/resource.h" 15 #include "app/test/data/resource.h"
16 #endif 16 #endif
17 #include "base/basictypes.h" 17 #include "base/basictypes.h"
18 #include "base/env_var.h"
18 #include "base/file_util.h" 19 #include "base/file_util.h"
19 #include "base/path_service.h" 20 #include "base/path_service.h"
20 #include "base/stl_util-inl.h" 21 #include "base/stl_util-inl.h"
21 #include "base/string_util.h" 22 #include "base/string_util.h"
22 #if defined(OS_WIN) 23 #if defined(OS_WIN)
23 #include "base/win_util.h" 24 #include "base/win_util.h"
24 #endif 25 #endif
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 #include "testing/platform_test.h" 27 #include "testing/platform_test.h"
27 #include "unicode/locid.h" 28 #include "unicode/locid.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 for (size_t i = 0; i < arraysize(filenames); ++i) { 132 for (size_t i = 0; i < arraysize(filenames); ++i) {
132 FilePath filename = new_locale_dir.AppendASCII( 133 FilePath filename = new_locale_dir.AppendASCII(
133 filenames[i] + kLocaleFileExtension); 134 filenames[i] + kLocaleFileExtension);
134 file_util::WriteFile(filename, "", 0); 135 file_util::WriteFile(filename, "", 0);
135 } 136 }
136 137
137 // Keep a copy of ICU's default locale before we overwrite it. 138 // Keep a copy of ICU's default locale before we overwrite it.
138 icu::Locale locale = icu::Locale::getDefault(); 139 icu::Locale locale = icu::Locale::getDefault();
139 140
140 #if defined(OS_POSIX) && !defined(OS_CHROMEOS) 141 #if defined(OS_POSIX) && !defined(OS_CHROMEOS)
142 scoped_ptr<base::EnvVarGetter> env(base::EnvVarGetter::Create());
143
141 // Test the support of LANGUAGE environment variable. 144 // Test the support of LANGUAGE environment variable.
142 SetICUDefaultLocale("en-US"); 145 SetICUDefaultLocale("en-US");
143 ::setenv("LANGUAGE", "xx:fr_CA", 1); 146 env->SetEnv("LANGUAGE", "xx:fr_CA");
144 EXPECT_EQ("fr", l10n_util::GetApplicationLocale(L"")); 147 EXPECT_EQ("fr", l10n_util::GetApplicationLocale(L""));
145 148
146 ::setenv("LANGUAGE", "xx:yy:en_gb.utf-8@quot", 1); 149 env->SetEnv("LANGUAGE", "xx:yy:en_gb.utf-8@quot");
147 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(L"")); 150 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(L""));
148 151
149 ::setenv("LANGUAGE", "xx:zh-hk", 1); 152 env->SetEnv("LANGUAGE", "xx:zh-hk");
150 EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(L"")); 153 EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(L""));
151 154
152 // We emulate gettext's behavior here, which ignores LANG/LC_MESSAGES/LC_ALL 155 // We emulate gettext's behavior here, which ignores LANG/LC_MESSAGES/LC_ALL
153 // when LANGUAGE is specified. If no language specified in LANGUAGE is valid, 156 // when LANGUAGE is specified. If no language specified in LANGUAGE is valid,
154 // then just fallback to the default language, which is en-US for us. 157 // then just fallback to the default language, which is en-US for us.
155 SetICUDefaultLocale("fr-FR"); 158 SetICUDefaultLocale("fr-FR");
156 ::setenv("LANGUAGE", "xx:yy", 1); 159 env->SetEnv("LANGUAGE", "xx:yy");
157 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); 160 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L""));
158 161
159 ::setenv("LANGUAGE", "/fr:zh_CN", 1); 162 env->SetEnv("LANGUAGE", "/fr:zh_CN");
160 EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(L"")); 163 EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(L""));
161 164
162 // Make sure the follow tests won't be affected by LANGUAGE environment 165 // Make sure the follow tests won't be affected by LANGUAGE environment
163 // variable. 166 // variable.
164 ::unsetenv("LANGUAGE"); 167 env->UnSetEnv("LANGUAGE");
165 #endif // defined(OS_POSIX) && !defined(OS_CHROMEOS) 168 #endif // defined(OS_POSIX) && !defined(OS_CHROMEOS)
166 169
167 SetICUDefaultLocale("en-US"); 170 SetICUDefaultLocale("en-US");
168 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); 171 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L""));
169 172
170 SetICUDefaultLocale("xx"); 173 SetICUDefaultLocale("xx");
171 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L"")); 174 EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(L""));
172 175
173 #if defined(OS_CHROMEOS) 176 #if defined(OS_CHROMEOS)
174 // ChromeOS honors preferred locale first in GetApplicationLocale(), 177 // ChromeOS honors preferred locale first in GetApplicationLocale(),
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 294
292 result = l10n_util::GetDisplayNameForLocale("zh-TW", "en", false); 295 result = l10n_util::GetDisplayNameForLocale("zh-TW", "en", false);
293 EXPECT_EQ(result, ASCIIToUTF16("Chinese (Traditional Han)")); 296 EXPECT_EQ(result, ASCIIToUTF16("Chinese (Traditional Han)"));
294 297
295 result = l10n_util::GetDisplayNameForLocale("pt-BR", "en", false); 298 result = l10n_util::GetDisplayNameForLocale("pt-BR", "en", false);
296 EXPECT_EQ(result, ASCIIToUTF16("Portuguese (Brazil)")); 299 EXPECT_EQ(result, ASCIIToUTF16("Portuguese (Brazil)"));
297 300
298 result = l10n_util::GetDisplayNameForLocale("es-419", "en", false); 301 result = l10n_util::GetDisplayNameForLocale("es-419", "en", false);
299 EXPECT_EQ(result, ASCIIToUTF16("Spanish (Latin America and the Caribbean)")); 302 EXPECT_EQ(result, ASCIIToUTF16("Spanish (Latin America and the Caribbean)"));
300 } 303 }
OLDNEW
« no previous file with comments | « no previous file | base/env_var.h » ('j') | chrome/plugin/plugin_main_mac.mm » ('J')

Powered by Google App Engine
This is Rietveld 408576698