OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/common/extension_l10n_util.h" | 5 #include "extensions/common/extension_l10n_util.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 | 26 |
27 namespace errors = manifest_errors; | 27 namespace errors = manifest_errors; |
28 namespace keys = manifest_keys; | 28 namespace keys = manifest_keys; |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 TEST(ExtensionL10nUtil, ValidateLocalesWithBadLocale) { | 32 TEST(ExtensionL10nUtil, ValidateLocalesWithBadLocale) { |
33 base::ScopedTempDir temp; | 33 base::ScopedTempDir temp; |
34 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 34 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
35 | 35 |
36 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 36 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
37 base::FilePath locale = src_path.AppendASCII("ms"); | 37 base::FilePath locale = src_path.AppendASCII("ms"); |
38 ASSERT_TRUE(base::CreateDirectory(locale)); | 38 ASSERT_TRUE(base::CreateDirectory(locale)); |
39 | 39 |
40 base::FilePath messages_file = locale.Append(kMessagesFilename); | 40 base::FilePath messages_file = locale.Append(kMessagesFilename); |
41 std::string data = "{ \"name\":"; | 41 std::string data = "{ \"name\":"; |
42 ASSERT_TRUE(base::WriteFile(messages_file, data.c_str(), data.length())); | 42 ASSERT_TRUE(base::WriteFile(messages_file, data.c_str(), data.length())); |
43 | 43 |
44 base::DictionaryValue manifest; | 44 base::DictionaryValue manifest; |
45 manifest.SetString(keys::kDefaultLocale, "en"); | 45 manifest.SetString(keys::kDefaultLocale, "en"); |
46 std::string error; | 46 std::string error; |
47 EXPECT_FALSE(extension_l10n_util::ValidateExtensionLocales( | 47 EXPECT_FALSE(extension_l10n_util::ValidateExtensionLocales( |
48 temp.path(), &manifest, &error)); | 48 temp.GetPath(), &manifest, &error)); |
49 EXPECT_THAT( | 49 EXPECT_THAT( |
50 error, | 50 error, |
51 testing::HasSubstr(base::UTF16ToUTF8(messages_file.LossyDisplayName()))); | 51 testing::HasSubstr(base::UTF16ToUTF8(messages_file.LossyDisplayName()))); |
52 } | 52 } |
53 | 53 |
54 TEST(ExtensionL10nUtil, GetValidLocalesEmptyLocaleFolder) { | 54 TEST(ExtensionL10nUtil, GetValidLocalesEmptyLocaleFolder) { |
55 base::ScopedTempDir temp; | 55 base::ScopedTempDir temp; |
56 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 56 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
57 | 57 |
58 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 58 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
59 ASSERT_TRUE(base::CreateDirectory(src_path)); | 59 ASSERT_TRUE(base::CreateDirectory(src_path)); |
60 | 60 |
61 std::string error; | 61 std::string error; |
62 std::set<std::string> locales; | 62 std::set<std::string> locales; |
63 EXPECT_FALSE( | 63 EXPECT_FALSE( |
64 extension_l10n_util::GetValidLocales(src_path, &locales, &error)); | 64 extension_l10n_util::GetValidLocales(src_path, &locales, &error)); |
65 | 65 |
66 EXPECT_TRUE(locales.empty()); | 66 EXPECT_TRUE(locales.empty()); |
67 } | 67 } |
68 | 68 |
69 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocaleNoMessagesFile) { | 69 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocaleNoMessagesFile) { |
70 base::ScopedTempDir temp; | 70 base::ScopedTempDir temp; |
71 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 71 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
72 | 72 |
73 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 73 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
74 ASSERT_TRUE(base::CreateDirectory(src_path)); | 74 ASSERT_TRUE(base::CreateDirectory(src_path)); |
75 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("sr"))); | 75 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("sr"))); |
76 | 76 |
77 std::string error; | 77 std::string error; |
78 std::set<std::string> locales; | 78 std::set<std::string> locales; |
79 EXPECT_FALSE( | 79 EXPECT_FALSE( |
80 extension_l10n_util::GetValidLocales(src_path, &locales, &error)); | 80 extension_l10n_util::GetValidLocales(src_path, &locales, &error)); |
81 | 81 |
82 EXPECT_TRUE(locales.empty()); | 82 EXPECT_TRUE(locales.empty()); |
83 } | 83 } |
84 | 84 |
85 TEST(ExtensionL10nUtil, GetValidLocalesWithUnsupportedLocale) { | 85 TEST(ExtensionL10nUtil, GetValidLocalesWithUnsupportedLocale) { |
86 base::ScopedTempDir temp; | 86 base::ScopedTempDir temp; |
87 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 87 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
88 | 88 |
89 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 89 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
90 ASSERT_TRUE(base::CreateDirectory(src_path)); | 90 ASSERT_TRUE(base::CreateDirectory(src_path)); |
91 // Supported locale. | 91 // Supported locale. |
92 base::FilePath locale_1 = src_path.AppendASCII("sr"); | 92 base::FilePath locale_1 = src_path.AppendASCII("sr"); |
93 ASSERT_TRUE(base::CreateDirectory(locale_1)); | 93 ASSERT_TRUE(base::CreateDirectory(locale_1)); |
94 std::string data("whatever"); | 94 std::string data("whatever"); |
95 ASSERT_TRUE(base::WriteFile( | 95 ASSERT_TRUE(base::WriteFile( |
96 locale_1.Append(kMessagesFilename), data.c_str(), data.length())); | 96 locale_1.Append(kMessagesFilename), data.c_str(), data.length())); |
97 // Unsupported locale. | 97 // Unsupported locale. |
98 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("xxx_yyy"))); | 98 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("xxx_yyy"))); |
99 | 99 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 ASSERT_FALSE(NULL == bundle.get()); | 135 ASSERT_FALSE(NULL == bundle.get()); |
136 EXPECT_TRUE(error.empty()); | 136 EXPECT_TRUE(error.empty()); |
137 EXPECT_EQ("Color", bundle->GetL10nMessage("color")); | 137 EXPECT_EQ("Color", bundle->GetL10nMessage("color")); |
138 EXPECT_EQ("Not in the US or GB.", bundle->GetL10nMessage("not_in_US_or_GB")); | 138 EXPECT_EQ("Not in the US or GB.", bundle->GetL10nMessage("not_in_US_or_GB")); |
139 } | 139 } |
140 | 140 |
141 TEST(ExtensionL10nUtil, LoadMessageCatalogsMissingFiles) { | 141 TEST(ExtensionL10nUtil, LoadMessageCatalogsMissingFiles) { |
142 base::ScopedTempDir temp; | 142 base::ScopedTempDir temp; |
143 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 143 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
144 | 144 |
145 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 145 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
146 ASSERT_TRUE(base::CreateDirectory(src_path)); | 146 ASSERT_TRUE(base::CreateDirectory(src_path)); |
147 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("en"))); | 147 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("en"))); |
148 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("sr"))); | 148 ASSERT_TRUE(base::CreateDirectory(src_path.AppendASCII("sr"))); |
149 | 149 |
150 std::string error; | 150 std::string error; |
151 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path, "en", | 151 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path, "en", |
152 "sr", &error)); | 152 "sr", &error)); |
153 EXPECT_FALSE(error.empty()); | 153 EXPECT_FALSE(error.empty()); |
154 } | 154 } |
155 | 155 |
156 TEST(ExtensionL10nUtil, LoadMessageCatalogsBadJSONFormat) { | 156 TEST(ExtensionL10nUtil, LoadMessageCatalogsBadJSONFormat) { |
157 base::ScopedTempDir temp; | 157 base::ScopedTempDir temp; |
158 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 158 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
159 | 159 |
160 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 160 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
161 ASSERT_TRUE(base::CreateDirectory(src_path)); | 161 ASSERT_TRUE(base::CreateDirectory(src_path)); |
162 | 162 |
163 base::FilePath locale = src_path.AppendASCII("sr"); | 163 base::FilePath locale = src_path.AppendASCII("sr"); |
164 ASSERT_TRUE(base::CreateDirectory(locale)); | 164 ASSERT_TRUE(base::CreateDirectory(locale)); |
165 | 165 |
166 std::string data = "{ \"name\":"; | 166 std::string data = "{ \"name\":"; |
167 base::FilePath messages_file = locale.Append(kMessagesFilename); | 167 base::FilePath messages_file = locale.Append(kMessagesFilename); |
168 ASSERT_TRUE(base::WriteFile(messages_file, data.c_str(), data.length())); | 168 ASSERT_TRUE(base::WriteFile(messages_file, data.c_str(), data.length())); |
169 | 169 |
170 std::string error; | 170 std::string error; |
171 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs( | 171 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs( |
172 src_path, "en_US", "sr", &error)); | 172 src_path, "en_US", "sr", &error)); |
173 EXPECT_EQ(ErrorUtils::FormatErrorMessage( | 173 EXPECT_EQ(ErrorUtils::FormatErrorMessage( |
174 errors::kLocalesInvalidLocale, | 174 errors::kLocalesInvalidLocale, |
175 base::UTF16ToUTF8(messages_file.LossyDisplayName()), | 175 base::UTF16ToUTF8(messages_file.LossyDisplayName()), |
176 "Line: 1, column: 10, Unexpected token."), | 176 "Line: 1, column: 10, Unexpected token."), |
177 error); | 177 error); |
178 } | 178 } |
179 | 179 |
180 TEST(ExtensionL10nUtil, LoadMessageCatalogsDuplicateKeys) { | 180 TEST(ExtensionL10nUtil, LoadMessageCatalogsDuplicateKeys) { |
181 base::ScopedTempDir temp; | 181 base::ScopedTempDir temp; |
182 ASSERT_TRUE(temp.CreateUniqueTempDir()); | 182 ASSERT_TRUE(temp.CreateUniqueTempDir()); |
183 | 183 |
184 base::FilePath src_path = temp.path().Append(kLocaleFolder); | 184 base::FilePath src_path = temp.GetPath().Append(kLocaleFolder); |
185 ASSERT_TRUE(base::CreateDirectory(src_path)); | 185 ASSERT_TRUE(base::CreateDirectory(src_path)); |
186 | 186 |
187 base::FilePath locale_1 = src_path.AppendASCII("en"); | 187 base::FilePath locale_1 = src_path.AppendASCII("en"); |
188 ASSERT_TRUE(base::CreateDirectory(locale_1)); | 188 ASSERT_TRUE(base::CreateDirectory(locale_1)); |
189 | 189 |
190 std::string data = | 190 std::string data = |
191 "{ \"name\": { \"message\": \"something\" }, " | 191 "{ \"name\": { \"message\": \"something\" }, " |
192 "\"name\": { \"message\": \"something else\" } }"; | 192 "\"name\": { \"message\": \"something else\" } }"; |
193 ASSERT_TRUE(base::WriteFile( | 193 ASSERT_TRUE(base::WriteFile( |
194 locale_1.Append(kMessagesFilename), data.c_str(), data.length())); | 194 locale_1.Append(kMessagesFilename), data.c_str(), data.length())); |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
635 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales); | 635 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales); |
636 ASSERT_EQ(3U, fallback_locales.size()); | 636 ASSERT_EQ(3U, fallback_locales.size()); |
637 | 637 |
638 CHECK_EQ("en_US", fallback_locales[0]); | 638 CHECK_EQ("en_US", fallback_locales[0]); |
639 CHECK_EQ("en", fallback_locales[1]); | 639 CHECK_EQ("en", fallback_locales[1]); |
640 CHECK_EQ("all", fallback_locales[2]); | 640 CHECK_EQ("all", fallback_locales[2]); |
641 } | 641 } |
642 | 642 |
643 } // namespace | 643 } // namespace |
644 } // namespace extensions | 644 } // namespace extensions |
OLD | NEW |