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

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

Issue 170015: This change enables Chrome to load locale information for the extension. It d... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/extension_l10n_util.h"
6
7 #include "base/file_path.h"
8 #include "base/file_util.h"
9 #include "base/scoped_ptr.h"
10 #include "base/scoped_temp_dir.h"
11 #include "base/values.h"
12 #include "chrome/common/extensions/extension.h"
13 #include "chrome/common/extensions/extension_constants.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace keys = extension_manifest_keys;
17
18 namespace {
19
20 Extension* CreateMinimalExtension(const std::string& default_locale) {
21 #if defined(OS_WIN)
22 FilePath path(FILE_PATH_LITERAL("C:\\foo"));
23 #elif defined(OS_POSIX)
24 FilePath path(FILE_PATH_LITERAL("/foo"));
25 #endif
26 Extension* extension = new Extension(path);
27 std::string error;
28 DictionaryValue input_value;
29
30 // Test minimal extension
31 input_value.SetString(keys::kVersion, "1.0.0.0");
32 input_value.SetString(keys::kName, "my extension");
33 if (!default_locale.empty()) {
34 input_value.SetString(keys::kDefaultLocale, default_locale);
35 }
36 EXPECT_TRUE(extension->InitFromValue(input_value, false, &error));
37
38 return extension;
39 }
40
41 TEST(ExtensionL10nUtil, AddValidLocalesEmptyLocaleFolder) {
42 ScopedTempDir temp;
43 ASSERT_TRUE(temp.CreateUniqueTempDir());
44
45 FilePath src_path = temp.path().AppendASCII(Extension::kLocaleFolder);
46 ASSERT_TRUE(file_util::CreateDirectory(src_path));
47
48 scoped_ptr<Extension> extension(CreateMinimalExtension(""));
49
50 std::string error;
51 EXPECT_FALSE(extension_l10n_util::AddValidLocales(src_path,
52 extension.get(),
53 &error));
54
55 EXPECT_TRUE(extension->supported_locales().empty());
56 }
57
58 TEST(ExtensionL10nUtil, AddValidLocalesWithValidLocaleNoMessagesFile) {
59 ScopedTempDir temp;
60 ASSERT_TRUE(temp.CreateUniqueTempDir());
61
62 FilePath src_path = temp.path().AppendASCII(Extension::kLocaleFolder);
63 ASSERT_TRUE(file_util::CreateDirectory(src_path));
64
65 ASSERT_TRUE(file_util::CreateDirectory(src_path.AppendASCII("sr")));
66
67 scoped_ptr<Extension> extension(CreateMinimalExtension(""));
68
69 std::string error;
70 EXPECT_FALSE(extension_l10n_util::AddValidLocales(src_path,
71 extension.get(),
72 &error));
73
74 EXPECT_TRUE(extension->supported_locales().empty());
75 }
76
77 TEST(ExtensionL10nUtil, AddValidLocalesWithValidLocalesAndMessagesFile) {
78 ScopedTempDir temp;
79 ASSERT_TRUE(temp.CreateUniqueTempDir());
80
81 FilePath src_path = temp.path().AppendASCII(Extension::kLocaleFolder);
82 ASSERT_TRUE(file_util::CreateDirectory(src_path));
83
84 FilePath locale_1 = src_path.AppendASCII("sr");
85 ASSERT_TRUE(file_util::CreateDirectory(locale_1));
86
87 std::string data = "foobar";
88 ASSERT_TRUE(
89 file_util::WriteFile(locale_1.AppendASCII(Extension::kMessagesFilename),
90 data.c_str(), data.length()));
91
92 FilePath locale_2 = src_path.AppendASCII("en_US");
93 ASSERT_TRUE(file_util::CreateDirectory(locale_2));
94
95 ASSERT_TRUE(
96 file_util::WriteFile(locale_2.AppendASCII(Extension::kMessagesFilename),
97 data.c_str(), data.length()));
98
99 scoped_ptr<Extension> extension(CreateMinimalExtension(""));
100
101 std::string error;
102 EXPECT_TRUE(extension_l10n_util::AddValidLocales(src_path,
103 extension.get(),
104 &error));
105
106 EXPECT_EQ(2, extension->supported_locales().size());
107 }
108
109 TEST(ExtensionL10nUtil, SetDefaultLocaleGoodDefaultLocaleInManifest) {
110 scoped_ptr<Extension> extension(CreateMinimalExtension("sr"));
111 extension->AddSupportedLocale("sr");
112 extension->AddSupportedLocale("en-US");
113
114 EXPECT_TRUE(extension_l10n_util::ValidateDefaultLocale(extension.get()));
115 EXPECT_EQ("sr", extension->default_locale());
116 }
117
118 TEST(ExtensionL10nUtil, SetDefaultLocaleNoDefaultLocaleInManifest) {
119 scoped_ptr<Extension> extension(CreateMinimalExtension(""));
120 extension->AddSupportedLocale("sr");
121 extension->AddSupportedLocale("en-US");
122
123 EXPECT_FALSE(extension_l10n_util::ValidateDefaultLocale(extension.get()));
124 }
125
126 TEST(ExtensionL10nUtil, SetDefaultLocaleWrongDefaultLocaleInManifest) {
127 scoped_ptr<Extension> extension(CreateMinimalExtension("ko"));
128 extension->AddSupportedLocale("sr");
129 extension->AddSupportedLocale("en-US");
130
131 EXPECT_FALSE(extension_l10n_util::ValidateDefaultLocale(extension.get()));
132 }
133
134 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698