| 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 471cd5d7890f8ca26532a3a9a26bb607beed0376..7cdb68ccb1a90dd5df2bf5d232e55b99acf600b1 100644
|
| --- a/chrome/browser/extensions/extension_service_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_service_unittest.cc
|
| @@ -3018,6 +3018,7 @@ TEST_F(ExtensionServiceTest, UpdatePendingExtensionAlreadyInstalled) {
|
| &IsExtension,
|
| kGoodIsFromSync,
|
| Manifest::INTERNAL,
|
| + Extension::NO_FLAGS,
|
| false,
|
| kGoodRemoteInstall);
|
| UpdateExtension(good->id(), path, ENABLED);
|
| @@ -4181,6 +4182,36 @@ TEST_F(ExtensionServiceTest, DefaultAppsInstall) {
|
| }
|
| #endif
|
|
|
| +TEST_F(ExtensionServiceTest, UpdatingPendingExternalExtensionWithFlags) {
|
| + // Regression test for crbug.com/627522
|
| + const char kPrefFromBookmark[] = "from_bookmark";
|
| +
|
| + InitializeEmptyExtensionService();
|
| +
|
| + base::FilePath path = data_dir().AppendASCII("good.crx");
|
| + service()->set_extensions_enabled(true);
|
| +
|
| + // Register and install an external extension.
|
| + std::unique_ptr<Version> version(new Version("1.0.0.0"));
|
| + content::WindowedNotificationObserver observer(
|
| + extensions::NOTIFICATION_CRX_INSTALLER_DONE,
|
| + content::NotificationService::AllSources());
|
| + std::unique_ptr<ExternalInstallInfoFile> info(new ExternalInstallInfoFile(
|
| + good_crx, std::move(version), path, Manifest::EXTERNAL_PREF,
|
| + Extension::FROM_BOOKMARK, false /* mark_acknowledged */,
|
| + false /* install_immediately */));
|
| + ASSERT_TRUE(service()->OnExternalExtensionFileFound(*info));
|
| + EXPECT_TRUE(service()->pending_extension_manager()->IsIdPending(good_crx));
|
| +
|
| + // Upgrade to version 2.0, the flag should be preserved.
|
| + path = data_dir().AppendASCII("good2.crx");
|
| + UpdateExtension(good_crx, path, ENABLED);
|
| + ASSERT_TRUE(ValidateBooleanPref(good_crx, kPrefFromBookmark, true));
|
| + const Extension* extension = service()->GetExtensionById(good_crx, false);
|
| + ASSERT_TRUE(extension);
|
| + ASSERT_TRUE(extension->from_bookmark());
|
| +}
|
| +
|
| // Tests disabling extensions
|
| TEST_F(ExtensionServiceTest, DisableExtension) {
|
| InitializeEmptyExtensionService();
|
|
|