| OLD | NEW |
| 1 // Copyright (c) 2010 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" | |
| 12 #include "app/l10n_util.h" | 11 #include "app/l10n_util.h" |
| 13 #include "app/l10n_util_collator.h" | 12 #include "app/l10n_util_collator.h" |
| 14 #if !defined(OS_MACOSX) | 13 #if !defined(OS_MACOSX) |
| 15 #include "app/test/data/resource.h" | 14 #include "app/test/data/resource.h" |
| 16 #endif | 15 #endif |
| 17 #include "base/basictypes.h" | 16 #include "base/basictypes.h" |
| 18 #include "base/environment.h" | 17 #include "base/environment.h" |
| 19 #include "base/file_util.h" | 18 #include "base/file_util.h" |
| 20 #include "base/path_service.h" | 19 #include "base/path_service.h" |
| 21 #include "base/stl_util-inl.h" | 20 #include "base/stl_util-inl.h" |
| 22 #include "base/string_util.h" | 21 #include "base/string_util.h" |
| 23 #include "base/utf_string_conversions.h" | 22 #include "base/utf_string_conversions.h" |
| 24 #if defined(OS_WIN) | 23 #if defined(OS_WIN) |
| 25 #include "base/win/windows_version.h" | 24 #include "base/win/windows_version.h" |
| 26 #endif | 25 #endif |
| 27 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
| 28 #include "testing/platform_test.h" | 27 #include "testing/platform_test.h" |
| 28 #include "ui/base/ui_base_paths.h" |
| 29 #include "unicode/locid.h" | 29 #include "unicode/locid.h" |
| 30 | 30 |
| 31 namespace { | 31 namespace { |
| 32 | 32 |
| 33 class StringWrapper { | 33 class StringWrapper { |
| 34 public: | 34 public: |
| 35 explicit StringWrapper(const string16& string) : string_(string) {} | 35 explicit StringWrapper(const string16& string) : string_(string) {} |
| 36 const string16& string() const { return string_; } | 36 const string16& string() const { return string_; } |
| 37 | 37 |
| 38 private: | 38 private: |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 #else | 112 #else |
| 113 SetICUDefaultLocale(tag); | 113 SetICUDefaultLocale(tag); |
| 114 #endif | 114 #endif |
| 115 } | 115 } |
| 116 | 116 |
| 117 TEST_F(L10nUtilTest, GetAppLocale) { | 117 TEST_F(L10nUtilTest, GetAppLocale) { |
| 118 scoped_ptr<base::Environment> env; | 118 scoped_ptr<base::Environment> env; |
| 119 // Use a temporary locale dir so we don't have to actually build the locale | 119 // Use a temporary locale dir so we don't have to actually build the locale |
| 120 // dlls for this test. | 120 // dlls for this test. |
| 121 FilePath orig_locale_dir; | 121 FilePath orig_locale_dir; |
| 122 PathService::Get(app::DIR_LOCALES, &orig_locale_dir); | 122 PathService::Get(ui::DIR_LOCALES, &orig_locale_dir); |
| 123 FilePath new_locale_dir; | 123 FilePath new_locale_dir; |
| 124 EXPECT_TRUE(file_util::CreateNewTempDirectory( | 124 EXPECT_TRUE(file_util::CreateNewTempDirectory( |
| 125 FILE_PATH_LITERAL("l10n_util_test"), | 125 FILE_PATH_LITERAL("l10n_util_test"), |
| 126 &new_locale_dir)); | 126 &new_locale_dir)); |
| 127 PathService::Override(app::DIR_LOCALES, new_locale_dir); | 127 PathService::Override(ui::DIR_LOCALES, new_locale_dir); |
| 128 // Make fake locale files. | 128 // Make fake locale files. |
| 129 std::string filenames[] = { | 129 std::string filenames[] = { |
| 130 "en-US", | 130 "en-US", |
| 131 "en-GB", | 131 "en-GB", |
| 132 "fr", | 132 "fr", |
| 133 "es-419", | 133 "es-419", |
| 134 "es", | 134 "es", |
| 135 "zh-TW", | 135 "zh-TW", |
| 136 "zh-CN", | 136 "zh-CN", |
| 137 "he", | 137 "he", |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("am")); | 271 EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("am")); |
| 272 } else { | 272 } else { |
| 273 SetICUDefaultLocale("am"); | 273 SetICUDefaultLocale("am"); |
| 274 EXPECT_EQ("am", l10n_util::GetApplicationLocale("")); | 274 EXPECT_EQ("am", l10n_util::GetApplicationLocale("")); |
| 275 SetICUDefaultLocale("en-GB"); | 275 SetICUDefaultLocale("en-GB"); |
| 276 EXPECT_EQ("am", l10n_util::GetApplicationLocale("am")); | 276 EXPECT_EQ("am", l10n_util::GetApplicationLocale("am")); |
| 277 } | 277 } |
| 278 #endif // defined(OS_WIN) | 278 #endif // defined(OS_WIN) |
| 279 | 279 |
| 280 // Clean up. | 280 // Clean up. |
| 281 PathService::Override(app::DIR_LOCALES, orig_locale_dir); | 281 PathService::Override(ui::DIR_LOCALES, orig_locale_dir); |
| 282 file_util::Delete(new_locale_dir, true); | 282 file_util::Delete(new_locale_dir, true); |
| 283 UErrorCode error_code = U_ZERO_ERROR; | 283 UErrorCode error_code = U_ZERO_ERROR; |
| 284 icu::Locale::setDefault(locale, error_code); | 284 icu::Locale::setDefault(locale, error_code); |
| 285 } | 285 } |
| 286 #endif // !defined(OS_MACOSX) | 286 #endif // !defined(OS_MACOSX) |
| 287 | 287 |
| 288 TEST_F(L10nUtilTest, SortStringsUsingFunction) { | 288 TEST_F(L10nUtilTest, SortStringsUsingFunction) { |
| 289 std::vector<StringWrapper*> strings; | 289 std::vector<StringWrapper*> strings; |
| 290 strings.push_back(new StringWrapper(UTF8ToUTF16("C"))); | 290 strings.push_back(new StringWrapper(UTF8ToUTF16("C"))); |
| 291 strings.push_back(new StringWrapper(UTF8ToUTF16("d"))); | 291 strings.push_back(new StringWrapper(UTF8ToUTF16("d"))); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("Latin")); | 388 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("Latin")); |
| 389 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("German")); | 389 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("German")); |
| 390 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("pt--BR")); | 390 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("pt--BR")); |
| 391 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("sl-macedonia")); | 391 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("sl-macedonia")); |
| 392 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("@")); | 392 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("@")); |
| 393 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@")); | 393 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@")); |
| 394 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@x")); | 394 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@x")); |
| 395 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@x=")); | 395 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@x=")); |
| 396 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@=y")); | 396 EXPECT_FALSE(l10n_util::IsValidLocaleSyntax("en-US@=y")); |
| 397 } | 397 } |
| OLD | NEW |