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

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

Issue 2738553002: [Extensions] Log instances of invalid extensions being added (Closed)
Patch Set: . Created 3 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
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 "chrome/browser/extensions/extension_action_icon_factory.h" 5 #include "chrome/browser/extensions/extension_action_icon_factory.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 ExtensionActionIconFactoryTest() : quit_in_icon_updated_(false) {} 89 ExtensionActionIconFactoryTest() : quit_in_icon_updated_(false) {}
90 90
91 ~ExtensionActionIconFactoryTest() override {} 91 ~ExtensionActionIconFactoryTest() override {}
92 92
93 void WaitForIconUpdate() { 93 void WaitForIconUpdate() {
94 quit_in_icon_updated_ = true; 94 quit_in_icon_updated_ = true;
95 base::RunLoop().Run(); 95 base::RunLoop().Run();
96 quit_in_icon_updated_ = false; 96 quit_in_icon_updated_ = false;
97 } 97 }
98 98
99 scoped_refptr<Extension> CreateExtension(const char* name, 99 scoped_refptr<Extension> CreateExtension(const char* name) {
100 Manifest::Location location) {
101 // Create and load an extension. 100 // Create and load an extension.
102 base::FilePath test_file; 101 base::FilePath test_file;
103 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_file)) { 102 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_file)) {
104 EXPECT_FALSE(true); 103 EXPECT_FALSE(true);
105 return NULL; 104 return NULL;
106 } 105 }
107 test_file = test_file.AppendASCII("extensions/api_test").AppendASCII(name); 106 test_file = test_file.AppendASCII("extensions/api_test").AppendASCII(name);
108 int error_code = 0; 107 int error_code = 0;
109 std::string error; 108 std::string error;
110 JSONFileValueDeserializer deserializer( 109 JSONFileValueDeserializer deserializer(
111 test_file.AppendASCII("manifest.json")); 110 test_file.AppendASCII("manifest.json"));
112 std::unique_ptr<base::DictionaryValue> valid_value = 111 std::unique_ptr<base::DictionaryValue> valid_value =
113 base::DictionaryValue::From( 112 base::DictionaryValue::From(
114 deserializer.Deserialize(&error_code, &error)); 113 deserializer.Deserialize(&error_code, &error));
115 EXPECT_EQ(0, error_code) << error; 114 EXPECT_EQ(0, error_code) << error;
116 if (error_code != 0) 115 if (error_code != 0)
117 return NULL; 116 return NULL;
118 117
119 EXPECT_TRUE(valid_value.get()); 118 EXPECT_TRUE(valid_value.get());
120 if (!valid_value) 119 if (!valid_value)
121 return NULL; 120 return NULL;
122 121
123 scoped_refptr<Extension> extension = 122 scoped_refptr<Extension> extension =
124 Extension::Create(test_file, location, *valid_value, 123 Extension::Create(test_file, Manifest::UNPACKED, *valid_value,
125 Extension::NO_FLAGS, &error); 124 Extension::NO_FLAGS, &error);
126 EXPECT_TRUE(extension.get()) << error; 125 EXPECT_TRUE(extension.get()) << error;
127 if (extension.get()) 126 if (extension.get())
128 extension_service_->AddExtension(extension.get()); 127 extension_service_->AddExtension(extension.get());
129 return extension; 128 return extension;
130 } 129 }
131 130
132 // testing::Test overrides: 131 // testing::Test overrides:
133 void SetUp() override { 132 void SetUp() override {
134 profile_.reset(new TestingProfile); 133 profile_.reset(new TestingProfile);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 ExtensionActionIconFactoryTest_MaterialDesign, 183 ExtensionActionIconFactoryTest_MaterialDesign,
185 ExtensionActionIconFactoryTest, 184 ExtensionActionIconFactoryTest,
186 testing::Values(ui::MaterialDesignController::MATERIAL_NORMAL, 185 testing::Values(ui::MaterialDesignController::MATERIAL_NORMAL,
187 ui::MaterialDesignController::MATERIAL_HYBRID)); 186 ui::MaterialDesignController::MATERIAL_HYBRID));
188 187
189 // If there is no default icon, and the icon has not been set using |SetIcon|, 188 // If there is no default icon, and the icon has not been set using |SetIcon|,
190 // the factory should return favicon. 189 // the factory should return favicon.
191 TEST_P(ExtensionActionIconFactoryTest, NoIcons) { 190 TEST_P(ExtensionActionIconFactoryTest, NoIcons) {
192 // Load an extension that has browser action without default icon set in the 191 // Load an extension that has browser action without default icon set in the
193 // manifest and does not call |SetIcon| by default. 192 // manifest and does not call |SetIcon| by default.
194 scoped_refptr<Extension> extension(CreateExtension( 193 scoped_refptr<Extension> extension(CreateExtension("browser_action/no_icon"));
195 "browser_action/no_icon", Manifest::INVALID_LOCATION));
196 ASSERT_TRUE(extension.get() != NULL); 194 ASSERT_TRUE(extension.get() != NULL);
197 ExtensionAction* browser_action = GetBrowserAction(*extension); 195 ExtensionAction* browser_action = GetBrowserAction(*extension);
198 ASSERT_TRUE(browser_action); 196 ASSERT_TRUE(browser_action);
199 ASSERT_FALSE(browser_action->default_icon()); 197 ASSERT_FALSE(browser_action->default_icon());
200 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty()); 198 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty());
201 199
202 ExtensionActionIconFactory icon_factory( 200 ExtensionActionIconFactory icon_factory(
203 profile(), extension.get(), browser_action, this); 201 profile(), extension.get(), browser_action, this);
204 202
205 gfx::Image icon = icon_factory.GetIcon(0); 203 gfx::Image icon = icon_factory.GetIcon(0);
206 204
207 EXPECT_TRUE(ImageRepsAreEqual( 205 EXPECT_TRUE(ImageRepsAreEqual(
208 browser_action->GetDefaultIconImage().ToImageSkia()->GetRepresentation( 206 browser_action->GetDefaultIconImage().ToImageSkia()->GetRepresentation(
209 1.0f), 207 1.0f),
210 icon.ToImageSkia()->GetRepresentation(1.0f))); 208 icon.ToImageSkia()->GetRepresentation(1.0f)));
211 } 209 }
212 210
213 // If the icon has been set using |SetIcon|, the factory should return that 211 // If the icon has been set using |SetIcon|, the factory should return that
214 // icon. 212 // icon.
215 TEST_P(ExtensionActionIconFactoryTest, AfterSetIcon) { 213 TEST_P(ExtensionActionIconFactoryTest, AfterSetIcon) {
216 // Load an extension that has browser action without default icon set in the 214 // Load an extension that has browser action without default icon set in the
217 // manifest and does not call |SetIcon| by default (but has an browser action 215 // manifest and does not call |SetIcon| by default (but has an browser action
218 // icon resource). 216 // icon resource).
219 scoped_refptr<Extension> extension(CreateExtension( 217 scoped_refptr<Extension> extension(CreateExtension("browser_action/no_icon"));
220 "browser_action/no_icon", Manifest::INVALID_LOCATION));
221 ASSERT_TRUE(extension.get() != NULL); 218 ASSERT_TRUE(extension.get() != NULL);
222 ExtensionAction* browser_action = GetBrowserAction(*extension); 219 ExtensionAction* browser_action = GetBrowserAction(*extension);
223 ASSERT_TRUE(browser_action); 220 ASSERT_TRUE(browser_action);
224 ASSERT_FALSE(browser_action->default_icon()); 221 ASSERT_FALSE(browser_action->default_icon());
225 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty()); 222 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty());
226 223
227 gfx::Image set_icon = LoadIcon("browser_action/no_icon/icon.png"); 224 gfx::Image set_icon = LoadIcon("browser_action/no_icon/icon.png");
228 ASSERT_FALSE(set_icon.IsEmpty()); 225 ASSERT_FALSE(set_icon.IsEmpty());
229 226
230 browser_action->SetIcon(0, set_icon); 227 browser_action->SetIcon(0, set_icon);
(...skipping 17 matching lines...) Expand all
248 1.0f), 245 1.0f),
249 icon.ToImageSkia()->GetRepresentation(1.0f))); 246 icon.ToImageSkia()->GetRepresentation(1.0f)));
250 } 247 }
251 248
252 // If there is a default icon, and the icon has not been set using |SetIcon|, 249 // If there is a default icon, and the icon has not been set using |SetIcon|,
253 // the factory should return the default icon. 250 // the factory should return the default icon.
254 TEST_P(ExtensionActionIconFactoryTest, DefaultIcon) { 251 TEST_P(ExtensionActionIconFactoryTest, DefaultIcon) {
255 // Load an extension that has browser action without default icon set in the 252 // Load an extension that has browser action without default icon set in the
256 // manifest and does not call |SetIcon| by default (but has an browser action 253 // manifest and does not call |SetIcon| by default (but has an browser action
257 // icon resource). 254 // icon resource).
258 scoped_refptr<Extension> extension(CreateExtension( 255 scoped_refptr<Extension> extension(CreateExtension("browser_action/no_icon"));
259 "browser_action/no_icon", Manifest::INVALID_LOCATION));
260 ASSERT_TRUE(extension.get() != NULL); 256 ASSERT_TRUE(extension.get() != NULL);
261 ExtensionAction* browser_action = GetBrowserAction(*extension); 257 ExtensionAction* browser_action = GetBrowserAction(*extension);
262 ASSERT_TRUE(browser_action); 258 ASSERT_TRUE(browser_action);
263 ASSERT_FALSE(browser_action->default_icon()); 259 ASSERT_FALSE(browser_action->default_icon());
264 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty()); 260 ASSERT_TRUE(browser_action->GetExplicitlySetIcon(0 /*tab id*/).IsEmpty());
265 261
266 scoped_refptr<const Extension> extension_with_icon = 262 scoped_refptr<const Extension> extension_with_icon =
267 CreateExtension("browser_action_with_icon", Manifest::INVALID_LOCATION); 263 CreateExtension("browser_action_with_icon");
268 ASSERT_TRUE(extension_with_icon); 264 ASSERT_TRUE(extension_with_icon);
269 265
270 int icon_size = ExtensionAction::ActionIconSize(); 266 int icon_size = ExtensionAction::ActionIconSize();
271 gfx::Image default_icon = 267 gfx::Image default_icon =
272 EnsureImageSize(LoadIcon("browser_action_with_icon/icon.png"), icon_size); 268 EnsureImageSize(LoadIcon("browser_action_with_icon/icon.png"), icon_size);
273 ASSERT_FALSE(default_icon.IsEmpty()); 269 ASSERT_FALSE(default_icon.IsEmpty());
274 270
275 browser_action = GetBrowserAction(*extension_with_icon); 271 browser_action = GetBrowserAction(*extension_with_icon);
276 ASSERT_TRUE(browser_action->default_icon()); 272 ASSERT_TRUE(browser_action->default_icon());
277 273
(...skipping 21 matching lines...) Expand all
299 icon = icon_factory.GetIcon(1); 295 icon = icon_factory.GetIcon(1);
300 296
301 EXPECT_TRUE(ImageRepsAreEqual( 297 EXPECT_TRUE(ImageRepsAreEqual(
302 default_icon.ToImageSkia()->GetRepresentation(1.0f), 298 default_icon.ToImageSkia()->GetRepresentation(1.0f),
303 icon.ToImageSkia()->GetRepresentation(1.0f))); 299 icon.ToImageSkia()->GetRepresentation(1.0f)));
304 300
305 } 301 }
306 302
307 } // namespace 303 } // namespace
308 } // namespace extensions 304 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698