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

Side by Side Diff: chrome/common/extensions/extension_l10n_util_unittest.cc

Issue 12578008: Move CrxFile, FileReader, ExtensionResource to src/extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/memory/linked_ptr.h" 8 #include "base/memory/linked_ptr.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/common/chrome_paths.h" 12 #include "chrome/common/chrome_paths.h"
13 #include "chrome/common/extensions/extension.h"
14 #include "chrome/common/extensions/extension_l10n_util.h" 13 #include "chrome/common/extensions/extension_l10n_util.h"
15 #include "chrome/common/extensions/extension_manifest_constants.h" 14 #include "chrome/common/extensions/extension_manifest_constants.h"
16 #include "chrome/common/extensions/message_bundle.h" 15 #include "chrome/common/extensions/message_bundle.h"
16 #include "extensions/common/constants.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "ui/base/l10n/l10n_util.h" 18 #include "ui/base/l10n/l10n_util.h"
19 19
20 using extensions::Extension; 20 using extensions::kLocaleFolder;
21 using extensions::ExtensionInfo; 21 using extensions::kMessagesFilename;
22 using extensions::Manifest;
23 using extensions::MessageBundle; 22 using extensions::MessageBundle;
24 23
25 namespace errors = extension_manifest_errors; 24 namespace errors = extension_manifest_errors;
26 namespace keys = extension_manifest_keys; 25 namespace keys = extension_manifest_keys;
27 26
28 namespace { 27 namespace {
29 28
30 TEST(ExtensionL10nUtil, GetValidLocalesEmptyLocaleFolder) { 29 TEST(ExtensionL10nUtil, GetValidLocalesEmptyLocaleFolder) {
31 base::ScopedTempDir temp; 30 base::ScopedTempDir temp;
32 ASSERT_TRUE(temp.CreateUniqueTempDir()); 31 ASSERT_TRUE(temp.CreateUniqueTempDir());
33 32
34 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 33 base::FilePath src_path = temp.path().Append(kLocaleFolder);
35 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 34 ASSERT_TRUE(file_util::CreateDirectory(src_path));
36 35
37 std::string error; 36 std::string error;
38 std::set<std::string> locales; 37 std::set<std::string> locales;
39 EXPECT_FALSE(extension_l10n_util::GetValidLocales(src_path, 38 EXPECT_FALSE(extension_l10n_util::GetValidLocales(src_path,
40 &locales, 39 &locales,
41 &error)); 40 &error));
42 41
43 EXPECT_TRUE(locales.empty()); 42 EXPECT_TRUE(locales.empty());
44 } 43 }
45 44
46 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocaleNoMessagesFile) { 45 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocaleNoMessagesFile) {
47 base::ScopedTempDir temp; 46 base::ScopedTempDir temp;
48 ASSERT_TRUE(temp.CreateUniqueTempDir()); 47 ASSERT_TRUE(temp.CreateUniqueTempDir());
49 48
50 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 49 base::FilePath src_path = temp.path().Append(kLocaleFolder);
51 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 50 ASSERT_TRUE(file_util::CreateDirectory(src_path));
52 ASSERT_TRUE(file_util::CreateDirectory(src_path.AppendASCII("sr"))); 51 ASSERT_TRUE(file_util::CreateDirectory(src_path.AppendASCII("sr")));
53 52
54 std::string error; 53 std::string error;
55 std::set<std::string> locales; 54 std::set<std::string> locales;
56 EXPECT_FALSE(extension_l10n_util::GetValidLocales(src_path, 55 EXPECT_FALSE(extension_l10n_util::GetValidLocales(src_path,
57 &locales, 56 &locales,
58 &error)); 57 &error));
59 58
60 EXPECT_TRUE(locales.empty()); 59 EXPECT_TRUE(locales.empty());
61 } 60 }
62 61
63 TEST(ExtensionL10nUtil, GetValidLocalesWithUnsupportedLocale) { 62 TEST(ExtensionL10nUtil, GetValidLocalesWithUnsupportedLocale) {
64 base::ScopedTempDir temp; 63 base::ScopedTempDir temp;
65 ASSERT_TRUE(temp.CreateUniqueTempDir()); 64 ASSERT_TRUE(temp.CreateUniqueTempDir());
66 65
67 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 66 base::FilePath src_path = temp.path().Append(kLocaleFolder);
68 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 67 ASSERT_TRUE(file_util::CreateDirectory(src_path));
69 // Supported locale. 68 // Supported locale.
70 base::FilePath locale_1 = src_path.AppendASCII("sr"); 69 base::FilePath locale_1 = src_path.AppendASCII("sr");
71 ASSERT_TRUE(file_util::CreateDirectory(locale_1)); 70 ASSERT_TRUE(file_util::CreateDirectory(locale_1));
72 std::string data("whatever"); 71 std::string data("whatever");
73 ASSERT_TRUE(file_util::WriteFile( 72 ASSERT_TRUE(file_util::WriteFile(
74 locale_1.Append(Extension::kMessagesFilename), 73 locale_1.Append(kMessagesFilename),
75 data.c_str(), data.length())); 74 data.c_str(), data.length()));
76 // Unsupported locale. 75 // Unsupported locale.
77 ASSERT_TRUE(file_util::CreateDirectory(src_path.AppendASCII("xxx_yyy"))); 76 ASSERT_TRUE(file_util::CreateDirectory(src_path.AppendASCII("xxx_yyy")));
78 77
79 std::string error; 78 std::string error;
80 std::set<std::string> locales; 79 std::set<std::string> locales;
81 EXPECT_TRUE(extension_l10n_util::GetValidLocales(src_path, 80 EXPECT_TRUE(extension_l10n_util::GetValidLocales(src_path,
82 &locales, 81 &locales,
83 &error)); 82 &error));
84 83
85 EXPECT_FALSE(locales.empty()); 84 EXPECT_FALSE(locales.empty());
86 EXPECT_TRUE(locales.find("sr") != locales.end()); 85 EXPECT_TRUE(locales.find("sr") != locales.end());
87 EXPECT_FALSE(locales.find("xxx_yyy") != locales.end()); 86 EXPECT_FALSE(locales.find("xxx_yyy") != locales.end());
88 } 87 }
89 88
90 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocalesAndMessagesFile) { 89 TEST(ExtensionL10nUtil, GetValidLocalesWithValidLocalesAndMessagesFile) {
91 base::FilePath install_dir; 90 base::FilePath install_dir;
92 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir)); 91 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir));
93 install_dir = install_dir.AppendASCII("extensions") 92 install_dir = install_dir.AppendASCII("extensions")
94 .AppendASCII("good") 93 .AppendASCII("good")
95 .AppendASCII("Extensions") 94 .AppendASCII("Extensions")
96 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 95 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
97 .AppendASCII("1.0.0.0") 96 .AppendASCII("1.0.0.0")
98 .Append(Extension::kLocaleFolder); 97 .Append(kLocaleFolder);
99 98
100 std::string error; 99 std::string error;
101 std::set<std::string> locales; 100 std::set<std::string> locales;
102 EXPECT_TRUE(extension_l10n_util::GetValidLocales(install_dir, 101 EXPECT_TRUE(extension_l10n_util::GetValidLocales(install_dir,
103 &locales, 102 &locales,
104 &error)); 103 &error));
105 EXPECT_EQ(3U, locales.size()); 104 EXPECT_EQ(3U, locales.size());
106 EXPECT_TRUE(locales.find("sr") != locales.end()); 105 EXPECT_TRUE(locales.find("sr") != locales.end());
107 EXPECT_TRUE(locales.find("en") != locales.end()); 106 EXPECT_TRUE(locales.find("en") != locales.end());
108 EXPECT_TRUE(locales.find("en_US") != locales.end()); 107 EXPECT_TRUE(locales.find("en_US") != locales.end());
109 } 108 }
110 109
111 TEST(ExtensionL10nUtil, LoadMessageCatalogsValidFallback) { 110 TEST(ExtensionL10nUtil, LoadMessageCatalogsValidFallback) {
112 base::FilePath install_dir; 111 base::FilePath install_dir;
113 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir)); 112 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir));
114 install_dir = install_dir.AppendASCII("extensions") 113 install_dir = install_dir.AppendASCII("extensions")
115 .AppendASCII("good") 114 .AppendASCII("good")
116 .AppendASCII("Extensions") 115 .AppendASCII("Extensions")
117 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 116 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
118 .AppendASCII("1.0.0.0") 117 .AppendASCII("1.0.0.0")
119 .Append(Extension::kLocaleFolder); 118 .Append(kLocaleFolder);
120 119
121 std::string error; 120 std::string error;
122 std::set<std::string> locales; 121 std::set<std::string> locales;
123 EXPECT_TRUE(extension_l10n_util::GetValidLocales(install_dir, 122 EXPECT_TRUE(extension_l10n_util::GetValidLocales(install_dir,
124 &locales, 123 &locales,
125 &error)); 124 &error));
126 125
127 scoped_ptr<MessageBundle> bundle(extension_l10n_util::LoadMessageCatalogs( 126 scoped_ptr<MessageBundle> bundle(extension_l10n_util::LoadMessageCatalogs(
128 install_dir, "sr", "en_US", locales, &error)); 127 install_dir, "sr", "en_US", locales, &error));
129 ASSERT_FALSE(NULL == bundle.get()); 128 ASSERT_FALSE(NULL == bundle.get());
130 EXPECT_TRUE(error.empty()); 129 EXPECT_TRUE(error.empty());
131 EXPECT_EQ("Color", bundle->GetL10nMessage("color")); 130 EXPECT_EQ("Color", bundle->GetL10nMessage("color"));
132 EXPECT_EQ("Not in the US or GB.", bundle->GetL10nMessage("not_in_US_or_GB")); 131 EXPECT_EQ("Not in the US or GB.", bundle->GetL10nMessage("not_in_US_or_GB"));
133 } 132 }
134 133
135 TEST(ExtensionL10nUtil, LoadMessageCatalogsMissingFiles) { 134 TEST(ExtensionL10nUtil, LoadMessageCatalogsMissingFiles) {
136 base::ScopedTempDir temp; 135 base::ScopedTempDir temp;
137 ASSERT_TRUE(temp.CreateUniqueTempDir()); 136 ASSERT_TRUE(temp.CreateUniqueTempDir());
138 137
139 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 138 base::FilePath src_path = temp.path().Append(kLocaleFolder);
140 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 139 ASSERT_TRUE(file_util::CreateDirectory(src_path));
141 140
142 std::set<std::string> valid_locales; 141 std::set<std::string> valid_locales;
143 valid_locales.insert("sr"); 142 valid_locales.insert("sr");
144 valid_locales.insert("en"); 143 valid_locales.insert("en");
145 std::string error; 144 std::string error;
146 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path, 145 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path,
147 "en", 146 "en",
148 "sr", 147 "sr",
149 valid_locales, 148 valid_locales,
150 &error)); 149 &error));
151 EXPECT_FALSE(error.empty()); 150 EXPECT_FALSE(error.empty());
152 } 151 }
153 152
154 TEST(ExtensionL10nUtil, LoadMessageCatalogsBadJSONFormat) { 153 TEST(ExtensionL10nUtil, LoadMessageCatalogsBadJSONFormat) {
155 base::ScopedTempDir temp; 154 base::ScopedTempDir temp;
156 ASSERT_TRUE(temp.CreateUniqueTempDir()); 155 ASSERT_TRUE(temp.CreateUniqueTempDir());
157 156
158 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 157 base::FilePath src_path = temp.path().Append(kLocaleFolder);
159 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 158 ASSERT_TRUE(file_util::CreateDirectory(src_path));
160 159
161 base::FilePath locale = src_path.AppendASCII("sr"); 160 base::FilePath locale = src_path.AppendASCII("sr");
162 ASSERT_TRUE(file_util::CreateDirectory(locale)); 161 ASSERT_TRUE(file_util::CreateDirectory(locale));
163 162
164 std::string data = "{ \"name\":"; 163 std::string data = "{ \"name\":";
165 ASSERT_TRUE( 164 ASSERT_TRUE(
166 file_util::WriteFile(locale.Append(Extension::kMessagesFilename), 165 file_util::WriteFile(locale.Append(kMessagesFilename),
167 data.c_str(), data.length())); 166 data.c_str(), data.length()));
168 167
169 std::set<std::string> valid_locales; 168 std::set<std::string> valid_locales;
170 valid_locales.insert("sr"); 169 valid_locales.insert("sr");
171 valid_locales.insert("en_US"); 170 valid_locales.insert("en_US");
172 std::string error; 171 std::string error;
173 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path, 172 EXPECT_TRUE(NULL == extension_l10n_util::LoadMessageCatalogs(src_path,
174 "en_US", 173 "en_US",
175 "sr", 174 "sr",
176 valid_locales, 175 valid_locales,
177 &error)); 176 &error));
178 EXPECT_EQ("Line: 1, column: 10, Unexpected token.", error); 177 EXPECT_EQ("Line: 1, column: 10, Unexpected token.", error);
179 } 178 }
180 179
181 TEST(ExtensionL10nUtil, LoadMessageCatalogsDuplicateKeys) { 180 TEST(ExtensionL10nUtil, LoadMessageCatalogsDuplicateKeys) {
182 base::ScopedTempDir temp; 181 base::ScopedTempDir temp;
183 ASSERT_TRUE(temp.CreateUniqueTempDir()); 182 ASSERT_TRUE(temp.CreateUniqueTempDir());
184 183
185 base::FilePath src_path = temp.path().Append(Extension::kLocaleFolder); 184 base::FilePath src_path = temp.path().Append(kLocaleFolder);
186 ASSERT_TRUE(file_util::CreateDirectory(src_path)); 185 ASSERT_TRUE(file_util::CreateDirectory(src_path));
187 186
188 base::FilePath locale_1 = src_path.AppendASCII("en"); 187 base::FilePath locale_1 = src_path.AppendASCII("en");
189 ASSERT_TRUE(file_util::CreateDirectory(locale_1)); 188 ASSERT_TRUE(file_util::CreateDirectory(locale_1));
190 189
191 std::string data = 190 std::string data =
192 "{ \"name\": { \"message\": \"something\" }, " 191 "{ \"name\": { \"message\": \"something\" }, "
193 "\"name\": { \"message\": \"something else\" } }"; 192 "\"name\": { \"message\": \"something else\" } }";
194 ASSERT_TRUE( 193 ASSERT_TRUE(
195 file_util::WriteFile(locale_1.Append(Extension::kMessagesFilename), 194 file_util::WriteFile(locale_1.Append(kMessagesFilename),
196 data.c_str(), data.length())); 195 data.c_str(), data.length()));
197 196
198 base::FilePath locale_2 = src_path.AppendASCII("sr"); 197 base::FilePath locale_2 = src_path.AppendASCII("sr");
199 ASSERT_TRUE(file_util::CreateDirectory(locale_2)); 198 ASSERT_TRUE(file_util::CreateDirectory(locale_2));
200 199
201 ASSERT_TRUE( 200 ASSERT_TRUE(
202 file_util::WriteFile(locale_2.Append(Extension::kMessagesFilename), 201 file_util::WriteFile(locale_2.Append(kMessagesFilename),
203 data.c_str(), data.length())); 202 data.c_str(), data.length()));
204 203
205 std::set<std::string> valid_locales; 204 std::set<std::string> valid_locales;
206 valid_locales.insert("sr"); 205 valid_locales.insert("sr");
207 valid_locales.insert("en"); 206 valid_locales.insert("en");
208 std::string error; 207 std::string error;
209 // JSON parser hides duplicates. We are going to get only one key/value 208 // JSON parser hides duplicates. We are going to get only one key/value
210 // pair at the end. 209 // pair at the end.
211 scoped_ptr<MessageBundle> message_bundle( 210 scoped_ptr<MessageBundle> message_bundle(
212 extension_l10n_util::LoadMessageCatalogs(src_path, 211 extension_l10n_util::LoadMessageCatalogs(src_path,
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 EXPECT_EQ("description", result); 510 EXPECT_EQ("description", result);
512 511
513 ASSERT_TRUE(handler->GetString(keys::kPageActionDefaultTitle, &result)); 512 ASSERT_TRUE(handler->GetString(keys::kPageActionDefaultTitle, &result));
514 EXPECT_EQ("file handler title", result); 513 EXPECT_EQ("file handler title", result);
515 514
516 EXPECT_TRUE(error.empty()); 515 EXPECT_TRUE(error.empty());
517 } 516 }
518 517
519 // Try with NULL manifest. 518 // Try with NULL manifest.
520 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithNullManifest) { 519 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithNullManifest) {
521 ExtensionInfo info(NULL, "", base::FilePath(), Manifest::UNPACKED); 520 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(NULL));
522
523 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info));
524 } 521 }
525 522
526 // Try with default and current locales missing. 523 // Try with default and current locales missing.
527 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestEmptyManifest) { 524 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestEmptyManifest) {
528 DictionaryValue manifest; 525 DictionaryValue manifest;
529 ExtensionInfo info(&manifest, "", base::FilePath(), Manifest::UNPACKED); 526 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(&manifest));
530
531 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info));
532 } 527 }
533 528
534 // Try with missing current_locale. 529 // Try with missing current_locale.
535 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithDefaultLocale) { 530 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithDefaultLocale) {
536 DictionaryValue manifest; 531 DictionaryValue manifest;
537 manifest.SetString(keys::kDefaultLocale, "en_US"); 532 manifest.SetString(keys::kDefaultLocale, "en_US");
538 533 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(&manifest));
539 ExtensionInfo info(&manifest, "", base::FilePath(), Manifest::UNPACKED);
540
541 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info));
542 } 534 }
543 535
544 // Try with missing default_locale. 536 // Try with missing default_locale.
545 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithCurrentLocale) { 537 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithCurrentLocale) {
546 DictionaryValue manifest; 538 DictionaryValue manifest;
547 manifest.SetString(keys::kCurrentLocale, 539 manifest.SetString(keys::kCurrentLocale,
548 extension_l10n_util::CurrentLocaleOrDefault()); 540 extension_l10n_util::CurrentLocaleOrDefault());
549 541 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(&manifest));
550 ExtensionInfo info(&manifest, "", base::FilePath(), Manifest::UNPACKED);
551
552 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info));
553 } 542 }
554 543
555 // Try with all data present, but with same current_locale as system locale. 544 // Try with all data present, but with same current_locale as system locale.
556 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestSameCurrentLocale) { 545 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestSameCurrentLocale) {
557 DictionaryValue manifest; 546 DictionaryValue manifest;
558 manifest.SetString(keys::kDefaultLocale, "en_US"); 547 manifest.SetString(keys::kDefaultLocale, "en_US");
559 manifest.SetString(keys::kCurrentLocale, 548 manifest.SetString(keys::kCurrentLocale,
560 extension_l10n_util::CurrentLocaleOrDefault()); 549 extension_l10n_util::CurrentLocaleOrDefault());
561 550 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(&manifest));
562 ExtensionInfo info(&manifest, "", base::FilePath(), Manifest::UNPACKED);
563
564 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info));
565 } 551 }
566 552
567 // Try with all data present, but with different current_locale. 553 // Try with all data present, but with different current_locale.
568 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestDifferentCurrentLocale) { 554 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestDifferentCurrentLocale) {
569 DictionaryValue manifest; 555 DictionaryValue manifest;
570 manifest.SetString(keys::kDefaultLocale, "en_US"); 556 manifest.SetString(keys::kDefaultLocale, "en_US");
571 manifest.SetString(keys::kCurrentLocale, "sr"); 557 manifest.SetString(keys::kCurrentLocale, "sr");
572 558 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(&manifest));
573 ExtensionInfo info(&manifest, "", base::FilePath(), Manifest::UNPACKED);
574
575 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info));
576 } 559 }
577 560
578 TEST(ExtensionL10nUtil, GetAllFallbackLocales) { 561 TEST(ExtensionL10nUtil, GetAllFallbackLocales) {
579 std::vector<std::string> fallback_locales; 562 std::vector<std::string> fallback_locales;
580 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales); 563 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales);
581 ASSERT_EQ(3U, fallback_locales.size()); 564 ASSERT_EQ(3U, fallback_locales.size());
582 565
583 CHECK_EQ("en_US", fallback_locales[0]); 566 CHECK_EQ("en_US", fallback_locales[0]);
584 CHECK_EQ("en", fallback_locales[1]); 567 CHECK_EQ("en", fallback_locales[1]);
585 CHECK_EQ("all", fallback_locales[2]); 568 CHECK_EQ("all", fallback_locales[2]);
586 } 569 }
587 570
588 } // namespace 571 } // namespace
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_l10n_util.cc ('k') | chrome/common/extensions/extension_resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698