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

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

Issue 11572036: Do not load extension system in the Profile import process. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rollback to patchset 10 Created 8 years 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 <string> 5 #include <string>
6 6
7 #include "chrome/browser/extensions/component_loader.h" 7 #include "chrome/browser/extensions/component_loader.h"
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 EXPECT_TRUE(extension_service_.extensions()->GetByID(extension_id)); 186 EXPECT_TRUE(extension_service_.extensions()->GetByID(extension_id));
187 } 187 }
188 188
189 TEST_F(ComponentLoaderTest, Remove) { 189 TEST_F(ComponentLoaderTest, Remove) {
190 extension_service_.set_ready(false); 190 extension_service_.set_ready(false);
191 191
192 // Removing an extension that was never added should be ok. 192 // Removing an extension that was never added should be ok.
193 component_loader_.Remove(extension_path_); 193 component_loader_.Remove(extension_path_);
194 EXPECT_EQ(0u, extension_service_.extensions()->size()); 194 EXPECT_EQ(0u, extension_service_.extensions()->size());
195 195
196 // Try adding and removing before LoadAll() is called. 196 // Try adding and removing before BulkLoadAll() is called.
197 component_loader_.Add(manifest_contents_, extension_path_); 197 component_loader_.Add(manifest_contents_, extension_path_);
198 component_loader_.Remove(extension_path_); 198 component_loader_.Remove(extension_path_);
199 component_loader_.LoadAll(); 199 component_loader_.BulkLoadAll();
200 EXPECT_EQ(0u, extension_service_.extensions()->size()); 200 EXPECT_EQ(0u, extension_service_.extensions()->size());
201 201
202 // Load an extension, and check that it's unloaded when Remove() is called. 202 // Load an extension, and check that it's unloaded when Remove() is called.
203 extension_service_.set_ready(true); 203 extension_service_.set_ready(true);
204 std::string extension_id = 204 std::string extension_id =
205 component_loader_.Add(manifest_contents_, extension_path_); 205 component_loader_.Add(manifest_contents_, extension_path_);
206 EXPECT_EQ(1u, extension_service_.extensions()->size()); 206 EXPECT_EQ(1u, extension_service_.extensions()->size());
207 component_loader_.Remove(extension_path_); 207 component_loader_.Remove(extension_path_);
208 EXPECT_EQ(0u, extension_service_.extensions()->size()); 208 EXPECT_EQ(0u, extension_service_.extensions()->size());
209 209
210 // And after calling LoadAll(), it shouldn't get loaded. 210 // And after calling BulkLoadAll(), it shouldn't get loaded.
211 component_loader_.LoadAll(); 211 component_loader_.BulkLoadAll();
212 EXPECT_EQ(0u, extension_service_.extensions()->size()); 212 EXPECT_EQ(0u, extension_service_.extensions()->size());
213 } 213 }
214 214
215 TEST_F(ComponentLoaderTest, LoadAll) { 215 TEST_F(ComponentLoaderTest, LoadAll) {
216 extension_service_.set_ready(false); 216 extension_service_.set_ready(false);
217 217
218 // No extensions should be loaded if none were added. 218 // No extensions should be loaded if none were added.
219 component_loader_.LoadAll(); 219 component_loader_.BulkLoadAll();
220 EXPECT_EQ(0u, extension_service_.extensions()->size()); 220 EXPECT_EQ(0u, extension_service_.extensions()->size());
221 221
222 // Use LoadAll() to load the default extensions. 222 // Use BulkLoadAll() to load the default extensions.
223 component_loader_.AddDefaultComponentExtensions(false); 223 component_loader_.AddDefaultComponentExtensions(false);
224 component_loader_.LoadAll(); 224 component_loader_.BulkLoadAll();
225 unsigned int default_count = extension_service_.extensions()->size(); 225 unsigned int default_count = extension_service_.extensions()->size();
226 226
227 // Clear the list of loaded extensions, and reload with one more. 227 // Clear the list of loaded extensions, and reload with one more.
228 extension_service_.clear_extensions(); 228 extension_service_.clear_extensions();
229 component_loader_.Add(manifest_contents_, extension_path_); 229 component_loader_.Add(manifest_contents_, extension_path_);
230 component_loader_.LoadAll(); 230 component_loader_.BulkLoadAll();
231 231
232 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 232 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
233 } 233 }
234 234
235 TEST_F(ComponentLoaderTest, BulkLoadDeferred) {
236 extension_service_.set_ready(false);
237
238 // Use BulkLoadDeferBackgroundPages to get a baseline of extensions with
239 // background pages.
240 component_loader_.AddDefaultComponentExtensions(false);
241 component_loader_.BulkLoadDeferBackgroundPages();
242 unsigned int default_count_no_bg = extension_service_.extensions()->size();
243 component_loader_.BulkLoadDeferred();
244 unsigned int default_count_bg = extension_service_.extensions()->size();
245
246 // Clear and reload with one more, which is known to have a background page.
247 extension_service_.clear_extensions();
248 component_loader_.Add(manifest_contents_, extension_path_);
249 component_loader_.BulkLoadDeferBackgroundPages();
250
251 // Count should not change, since the load will be deferred.
252 EXPECT_EQ(default_count_no_bg, extension_service_.extensions()->size());
253
254 // After loading deferred there should be one more than previously.
255 component_loader_.BulkLoadDeferred();
256 EXPECT_EQ(default_count_bg + 1, extension_service_.extensions()->size());
257 }
258
235 TEST_F(ComponentLoaderTest, RemoveAll) { 259 TEST_F(ComponentLoaderTest, RemoveAll) {
236 extension_service_.set_ready(true); 260 extension_service_.set_ready(true);
237 EXPECT_EQ(0u, extension_service_.extensions()->size()); 261 EXPECT_EQ(0u, extension_service_.extensions()->size());
238 // Use LoadAll() to load the default extensions. 262 // Add all the default extensions. Since the extension service is ready, they
263 // will be loaded immediately.
239 component_loader_.AddDefaultComponentExtensions(false); 264 component_loader_.AddDefaultComponentExtensions(false);
240 unsigned int default_count = extension_service_.extensions()->size(); 265 unsigned int default_count = extension_service_.extensions()->size();
241 266
242 // And add one more just to make sure there is anything in there in case 267 // And add one more just to make sure there is anything in there in case
243 // there are no defaults for this platform. 268 // there are no defaults for this platform.
244 component_loader_.Add(manifest_contents_, extension_path_); 269 component_loader_.Add(manifest_contents_, extension_path_);
245 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 270 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
246 271
247 // Remove all default extensions. 272 // Remove all default extensions.
248 component_loader_.RemoveAll(); 273 component_loader_.RemoveAll();
249 EXPECT_EQ(0u, extension_service_.extensions()->size()); 274 EXPECT_EQ(0u, extension_service_.extensions()->size());
250 } 275 }
251 276
252 TEST_F(ComponentLoaderTest, EnterpriseWebStore) { 277 TEST_F(ComponentLoaderTest, EnterpriseWebStore) {
253 component_loader_.AddDefaultComponentExtensions(false); 278 component_loader_.AddDefaultComponentExtensions(false);
254 component_loader_.LoadAll(); 279 component_loader_.BulkLoadAll();
255 unsigned int default_count = extension_service_.extensions()->size(); 280 unsigned int default_count = extension_service_.extensions()->size();
256 281
257 // Set the pref, and it should get loaded automatically. 282 // Set the pref, and it should get loaded automatically.
258 extension_service_.set_ready(true); 283 extension_service_.set_ready(true);
259 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, 284 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
260 Value::CreateStringValue("http://www.google.com")); 285 Value::CreateStringValue("http://www.google.com"));
261 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 286 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
262 287
263 // Now that the pref is set, check if it's added by default. 288 // Now that the pref is set, check if it's added by default.
264 extension_service_.set_ready(false); 289 extension_service_.set_ready(false);
265 extension_service_.clear_extensions(); 290 extension_service_.clear_extensions();
266 component_loader_.ClearAllRegistered(); 291 component_loader_.ClearAllRegistered();
267 component_loader_.AddDefaultComponentExtensions(false); 292 component_loader_.AddDefaultComponentExtensions(false);
268 component_loader_.LoadAll(); 293 component_loader_.BulkLoadAll();
269 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 294 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
270 295
271 // Number of loaded extensions should be the same after changing the pref. 296 // Number of loaded extensions should be the same after changing the pref.
272 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, 297 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
273 Value::CreateStringValue("http://www.google.de")); 298 Value::CreateStringValue("http://www.google.de"));
274 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 299 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
275 } 300 }
276 301
277 TEST_F(ComponentLoaderTest, AddOrReplace) { 302 TEST_F(ComponentLoaderTest, AddOrReplace) {
278 EXPECT_EQ(0u, component_loader_.registered_extensions_count()); 303 EXPECT_EQ(0u, component_loader_.registered_extensions_count());
279 component_loader_.AddDefaultComponentExtensions(false); 304 component_loader_.AddDefaultComponentExtensions(false);
280 size_t const default_count = component_loader_.registered_extensions_count(); 305 size_t const default_count = component_loader_.registered_extensions_count();
281 FilePath known_extension = GetBasePath() 306 FilePath known_extension = GetBasePath()
282 .AppendASCII("override_component_extension"); 307 .AppendASCII("override_component_extension");
283 FilePath unknow_extension = extension_path_; 308 FilePath unknow_extension = extension_path_;
284 309
285 // Replace a default component extension. 310 // Replace a default component extension.
286 component_loader_.AddOrReplace(known_extension); 311 component_loader_.AddOrReplace(known_extension);
287 EXPECT_EQ(default_count, 312 EXPECT_EQ(default_count,
288 component_loader_.registered_extensions_count()); 313 component_loader_.registered_extensions_count());
289 314
290 // Add a new component extension. 315 // Add a new component extension.
291 component_loader_.AddOrReplace(unknow_extension); 316 component_loader_.AddOrReplace(unknow_extension);
292 EXPECT_EQ(default_count + 1, 317 EXPECT_EQ(default_count + 1,
293 component_loader_.registered_extensions_count()); 318 component_loader_.registered_extensions_count());
294 319
295 extension_service_.set_ready(true); 320 extension_service_.set_ready(true);
296 component_loader_.LoadAll(); 321 component_loader_.BulkLoadAll();
297 322
298 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 323 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
299 EXPECT_EQ(0u, extension_service_.unloaded_count()); 324 EXPECT_EQ(0u, extension_service_.unloaded_count());
300 325
301 // replace loaded component extension. 326 // replace loaded component extension.
302 component_loader_.AddOrReplace(known_extension); 327 component_loader_.AddOrReplace(known_extension);
303 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 328 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
304 EXPECT_EQ(1u, extension_service_.unloaded_count()); 329 EXPECT_EQ(1u, extension_service_.unloaded_count());
305 } 330 }
306 331
307 } // namespace extensions 332 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/component_loader.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698