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

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

Issue 5535002: Decouple killbit testing from external extension providers (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: improve comments Created 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 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 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/ref_counted.h" 5 #include "base/ref_counted.h"
6 #include "chrome/browser/extensions/autoupdate_interceptor.h" 6 #include "chrome/browser/extensions/autoupdate_interceptor.h"
7 #include "chrome/browser/extensions/extension_browsertest.h" 7 #include "chrome/browser/extensions/extension_browsertest.h"
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/browser/extensions/extensions_service.h" 9 #include "chrome/browser/extensions/extensions_service.h"
10 #include "chrome/browser/extensions/extension_test_message_listener.h" 10 #include "chrome/browser/extensions/extension_test_message_listener.h"
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 const ExtensionList* extensions = service->extensions(); 285 const ExtensionList* extensions = service->extensions();
286 ASSERT_EQ(size_before + 1, extensions->size()); 286 ASSERT_EQ(size_before + 1, extensions->size());
287 ASSERT_EQ(kExtensionId, extensions->at(size_before)->id()); 287 ASSERT_EQ(kExtensionId, extensions->at(size_before)->id());
288 ASSERT_EQ("2.0", extensions->at(size_before)->VersionString()); 288 ASSERT_EQ("2.0", extensions->at(size_before)->VersionString());
289 289
290 // Uninstalling the extension should set a pref that keeps the extension from 290 // Uninstalling the extension should set a pref that keeps the extension from
291 // being installed again the next time external_extensions.json is read. 291 // being installed again the next time external_extensions.json is read.
292 292
293 UninstallExtension(kExtensionId); 293 UninstallExtension(kExtensionId);
294 294
295 std::set<std::string> killed_ids; 295 ExtensionPrefs* extension_prefs = service->extension_prefs();
296 service->extension_prefs()->GetKilledExtensionIds(&killed_ids); 296 EXPECT_TRUE(extension_prefs->IsExtensionKilled(kExtensionId))
297 EXPECT_TRUE(killed_ids.end() != killed_ids.find(kExtensionId))
298 << "Uninstalling should set kill bit on externaly installed extension."; 297 << "Uninstalling should set kill bit on externaly installed extension.";
299 298
299 // Try to install the extension again from an external source. It should fail
300 // bacuse of the killbit.
Erik does not do reviews 2010/12/03 17:15:16 typo: because
gfeher 2010/12/03 21:10:09 Done.
301 service->AddPendingExtensionFromExternalUpdateUrl(
302 kExtensionId, GURL("http://localhost/autoupdate/manifest"),
303 Extension::EXTERNAL_PREF_DOWNLOAD);
304
305 EXPECT_EQ(0u, service->pending_extensions_.size())
306 << "External reinstall of a killed extension shouldn't work.";
307 EXPECT_TRUE(extension_prefs->IsExtensionKilled(kExtensionId))
308 << "External reinstall of a killed extension should leave it killed.";
309
300 // Installing from non-external source. 310 // Installing from non-external source.
301 ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1)); 311 ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
302 312
303 killed_ids.clear(); 313 EXPECT_FALSE(extension_prefs->IsExtensionKilled(kExtensionId))
304 service->extension_prefs()->GetKilledExtensionIds(&killed_ids);
305 EXPECT_TRUE(killed_ids.end() == killed_ids.find(kExtensionId))
306 << "Reinstalling should clear the kill bit."; 314 << "Reinstalling should clear the kill bit.";
307 315
308 // Uninstalling from a non-external source should not set the kill bit. 316 // Uninstalling from a non-external source should not set the kill bit.
309 UninstallExtension(kExtensionId); 317 UninstallExtension(kExtensionId);
310 318
311 killed_ids.clear(); 319 EXPECT_FALSE(extension_prefs->IsExtensionKilled(kExtensionId))
312 service->extension_prefs()->GetKilledExtensionIds(&killed_ids);
313 EXPECT_TRUE(killed_ids.end() == killed_ids.find(kExtensionId))
314 << "Uninstalling non-external extension should not set kill bit."; 320 << "Uninstalling non-external extension should not set kill bit.";
315 } 321 }
316 322
317 // See http://crbug.com/57378 for flakiness details. 323 // See http://crbug.com/57378 for flakiness details.
318 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) { 324 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
319 ExtensionsService* service = browser()->profile()->GetExtensionsService(); 325 ExtensionsService* service = browser()->profile()->GetExtensionsService();
320 const char* kExtensionId = "ogjcoiohnmldgjemafoockdghcjciccf"; 326 const char* kExtensionId = "ogjcoiohnmldgjemafoockdghcjciccf";
321 // We don't want autoupdate blacklist checks. 327 // We don't want autoupdate blacklist checks.
322 service->updater()->set_blacklist_checks_enabled(false); 328 service->updater()->set_blacklist_checks_enabled(false);
323 329
(...skipping 27 matching lines...) Expand all
351 ASSERT_EQ(size_before + 1, extensions->size()); 357 ASSERT_EQ(size_before + 1, extensions->size());
352 ASSERT_EQ(kExtensionId, extensions->at(size_before)->id()); 358 ASSERT_EQ(kExtensionId, extensions->at(size_before)->id());
353 EXPECT_EQ("2.0", extensions->at(size_before)->VersionString()); 359 EXPECT_EQ("2.0", extensions->at(size_before)->VersionString());
354 EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, 360 EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD,
355 extensions->at(size_before)->location()); 361 extensions->at(size_before)->location());
356 362
357 // Check that emptying the list doesn't cause any trouble. 363 // Check that emptying the list doesn't cause any trouble.
358 prefs->ClearPref(prefs::kExtensionInstallForceList); 364 prefs->ClearPref(prefs::kExtensionInstallForceList);
359 prefs->pref_notifier()->FireObservers(prefs::kExtensionInstallForceList); 365 prefs->pref_notifier()->FireObservers(prefs::kExtensionInstallForceList);
360 } 366 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_prefs.h » ('j') | chrome/browser/extensions/extension_prefs.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698