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

Unified Diff: chrome/browser/extensions/extension_service_unittest.cc

Issue 7605001: Extensions installed by policy overrun previously installed extensions. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: More tests. Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_service_unittest.cc
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index edb777228f1dba9f6e8aea7554be6e8ccbb2955a..067e998709b0b99384011a5281825788dc739384 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -1229,7 +1229,8 @@ TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) {
service_->pending_extension_manager()->AddFromExternalUpdateUrl(
good_crx,
GURL("http:://fake.update/url"),
- Extension::EXTERNAL_PREF_DOWNLOAD);
+ Extension::EXTERNAL_PREF_DOWNLOAD,
+ false);
ASSERT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx));
}
@@ -2238,7 +2239,7 @@ TEST_F(ExtensionServiceTest, UpdatePendingTheme) {
TEST_F(ExtensionServiceTest, MAYBE_UpdatePendingExternalCrx) {
InitializeEmptyExtensionService();
service_->pending_extension_manager()->AddFromExternalUpdateUrl(
- theme_crx, GURL(), Extension::EXTERNAL_PREF_DOWNLOAD);
+ theme_crx, GURL(), Extension::EXTERNAL_PREF_DOWNLOAD, false);
EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx));
@@ -2275,7 +2276,7 @@ TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) {
// Add a crx to be updated, with the same ID, from a non-sync source.
service_->pending_extension_manager()->AddFromExternalUpdateUrl(
- kGoodId, GURL(kGoodUpdateURL), Extension::EXTERNAL_PREF_DOWNLOAD);
+ kGoodId, GURL(kGoodUpdateURL), Extension::EXTERNAL_PREF_DOWNLOAD, false);
// Check that there is a pending crx, with is_from_sync set to false.
ASSERT_TRUE(service_->pending_extension_manager()->GetById(
@@ -3704,6 +3705,33 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) {
// TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|.
}
+TEST_F(ExtensionServiceTest, HigherPriorityInstall) {
+ InitializeEmptyExtensionService();
+
+ FilePath path = data_dir_.AppendASCII("good.crx");
+ InstallCrx(path, true);
+ ValidatePrefKeyCount(1u);
+ ValidateIntegerPref(good_crx, "state", Extension::ENABLED);
+ ValidateIntegerPref(good_crx, "location", Extension::INTERNAL);
+
+ PendingExtensionManager* pending = service_->pending_extension_manager();
+ EXPECT_FALSE(pending->IsIdPending(kGoodId));
+
+ // Skip install when the location is the same.
+ service_->OnExternalExtensionUpdateUrlFound(kGoodId, GURL(kGoodUpdateURL),
+ Extension::INTERNAL);
+ EXPECT_FALSE(pending->IsIdPending(kGoodId));
+ // Force install when the location has higher priority.
+ service_->OnExternalExtensionUpdateUrlFound(kGoodId, GURL(kGoodUpdateURL),
+ Extension::EXTERNAL_POLICY_DOWNLOAD);
+ EXPECT_TRUE(pending->IsIdPending(kGoodId));
+ pending->Remove(kGoodId);
+ // Skip install when the location has lower priority.
+ service_->OnExternalExtensionUpdateUrlFound(kGoodId, GURL(kGoodUpdateURL),
+ Extension::INTERNAL);
+ EXPECT_FALSE(pending->IsIdPending(kGoodId));
+}
+
// Test that when multiple sources try to install an extension,
// we consistently choose the right one. To make tests easy to read,
// methods that fake requests to install crx files in several ways
@@ -3722,7 +3750,7 @@ class ExtensionSourcePriorityTest : public ExtensionServiceTest {
// Fake an external source adding a URL to fetch an extension from.
void AddPendingExternalPrefUrl() {
service_->pending_extension_manager()->AddFromExternalUpdateUrl(
- crx_id_, GURL(), Extension::EXTERNAL_PREF_DOWNLOAD);
+ crx_id_, GURL(), Extension::EXTERNAL_PREF_DOWNLOAD, false);
}
// Fake an external file from external_extensions.json.

Powered by Google App Engine
This is Rietveld 408576698