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

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: resolve possible database conflicts in the browser process 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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 LoadAll() 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_.LoadAll(false);
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 LoadAll(), it shouldn't get loaded.
211 component_loader_.LoadAll(); 211 component_loader_.LoadAll(false);
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_.LoadAll(false);
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 LoadAll() to load the default extensions.
223 component_loader_.AddDefaultComponentExtensions(false); 223 component_loader_.AddDefaultComponentExtensions(false);
224 component_loader_.LoadAll(); 224 component_loader_.LoadAll(false);
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_.LoadAll(false);
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, LoadAllDeferred) {
236 extension_service_.set_ready(false);
237
238 // Use LoadAll(true) to get a baseline of extensions with background pages.
239 component_loader_.AddDefaultComponentExtensions(false);
240 component_loader_.LoadAll(true);
241 unsigned int default_count_no_bg = extension_service_.extensions()->size();
242 component_loader_.LoadAllDeferred();
243 unsigned int default_count_bg = extension_service_.extensions()->size();
244
245 // Clear and reload with one more, which is known to have a background page.
246 extension_service_.clear_extensions();
247 component_loader_.Add(manifest_contents_, extension_path_);
248 component_loader_.LoadAll(true);
249
250 // Count should not change, since the load will be deferred.
251 EXPECT_EQ(default_count_no_bg, extension_service_.extensions()->size());
252
253 // After loading deferred there should be one more than previously.
254 component_loader_.LoadAllDeferred();
255 EXPECT_EQ(default_count_bg + 1, extension_service_.extensions()->size());
256 }
257
235 TEST_F(ComponentLoaderTest, RemoveAll) { 258 TEST_F(ComponentLoaderTest, RemoveAll) {
236 extension_service_.set_ready(true); 259 extension_service_.set_ready(true);
237 EXPECT_EQ(0u, extension_service_.extensions()->size()); 260 EXPECT_EQ(0u, extension_service_.extensions()->size());
238 // Use LoadAll() to load the default extensions. 261 // Use LoadAll() to load the default extensions.
239 component_loader_.AddDefaultComponentExtensions(false); 262 component_loader_.AddDefaultComponentExtensions(false);
240 unsigned int default_count = extension_service_.extensions()->size(); 263 unsigned int default_count = extension_service_.extensions()->size();
241 264
242 // And add one more just to make sure there is anything in there in case 265 // And add one more just to make sure there is anything in there in case
243 // there are no defaults for this platform. 266 // there are no defaults for this platform.
244 component_loader_.Add(manifest_contents_, extension_path_); 267 component_loader_.Add(manifest_contents_, extension_path_);
245 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 268 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
246 269
247 // Remove all default extensions. 270 // Remove all default extensions.
248 component_loader_.RemoveAll(); 271 component_loader_.RemoveAll();
249 EXPECT_EQ(0u, extension_service_.extensions()->size()); 272 EXPECT_EQ(0u, extension_service_.extensions()->size());
250 } 273 }
251 274
252 TEST_F(ComponentLoaderTest, EnterpriseWebStore) { 275 TEST_F(ComponentLoaderTest, EnterpriseWebStore) {
253 component_loader_.AddDefaultComponentExtensions(false); 276 component_loader_.AddDefaultComponentExtensions(false);
254 component_loader_.LoadAll(); 277 component_loader_.LoadAll(false);
255 unsigned int default_count = extension_service_.extensions()->size(); 278 unsigned int default_count = extension_service_.extensions()->size();
256 279
257 // Set the pref, and it should get loaded automatically. 280 // Set the pref, and it should get loaded automatically.
258 extension_service_.set_ready(true); 281 extension_service_.set_ready(true);
259 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, 282 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
260 Value::CreateStringValue("http://www.google.com")); 283 Value::CreateStringValue("http://www.google.com"));
261 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 284 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
262 285
263 // Now that the pref is set, check if it's added by default. 286 // Now that the pref is set, check if it's added by default.
264 extension_service_.set_ready(false); 287 extension_service_.set_ready(false);
265 extension_service_.clear_extensions(); 288 extension_service_.clear_extensions();
266 component_loader_.ClearAllRegistered(); 289 component_loader_.ClearAllRegistered();
267 component_loader_.AddDefaultComponentExtensions(false); 290 component_loader_.AddDefaultComponentExtensions(false);
268 component_loader_.LoadAll(); 291 component_loader_.LoadAll(false);
269 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 292 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
270 293
271 // Number of loaded extensions should be the same after changing the pref. 294 // Number of loaded extensions should be the same after changing the pref.
272 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, 295 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
273 Value::CreateStringValue("http://www.google.de")); 296 Value::CreateStringValue("http://www.google.de"));
274 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 297 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
275 } 298 }
276 299
277 TEST_F(ComponentLoaderTest, AddOrReplace) { 300 TEST_F(ComponentLoaderTest, AddOrReplace) {
278 EXPECT_EQ(0u, component_loader_.registered_extensions_count()); 301 EXPECT_EQ(0u, component_loader_.registered_extensions_count());
279 component_loader_.AddDefaultComponentExtensions(false); 302 component_loader_.AddDefaultComponentExtensions(false);
280 size_t const default_count = component_loader_.registered_extensions_count(); 303 size_t const default_count = component_loader_.registered_extensions_count();
281 FilePath known_extension = GetBasePath() 304 FilePath known_extension = GetBasePath()
282 .AppendASCII("override_component_extension"); 305 .AppendASCII("override_component_extension");
283 FilePath unknow_extension = extension_path_; 306 FilePath unknow_extension = extension_path_;
284 307
285 // Replace a default component extension. 308 // Replace a default component extension.
286 component_loader_.AddOrReplace(known_extension); 309 component_loader_.AddOrReplace(known_extension);
287 EXPECT_EQ(default_count, 310 EXPECT_EQ(default_count,
288 component_loader_.registered_extensions_count()); 311 component_loader_.registered_extensions_count());
289 312
290 // Add a new component extension. 313 // Add a new component extension.
291 component_loader_.AddOrReplace(unknow_extension); 314 component_loader_.AddOrReplace(unknow_extension);
292 EXPECT_EQ(default_count + 1, 315 EXPECT_EQ(default_count + 1,
293 component_loader_.registered_extensions_count()); 316 component_loader_.registered_extensions_count());
294 317
295 extension_service_.set_ready(true); 318 extension_service_.set_ready(true);
296 component_loader_.LoadAll(); 319 component_loader_.LoadAll(false);
297 320
298 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 321 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
299 EXPECT_EQ(0u, extension_service_.unloaded_count()); 322 EXPECT_EQ(0u, extension_service_.unloaded_count());
300 323
301 // replace loaded component extension. 324 // replace loaded component extension.
302 component_loader_.AddOrReplace(known_extension); 325 component_loader_.AddOrReplace(known_extension);
303 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); 326 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
304 EXPECT_EQ(1u, extension_service_.unloaded_count()); 327 EXPECT_EQ(1u, extension_service_.unloaded_count());
305 } 328 }
306 329
307 } // namespace extensions 330 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698