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

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

Issue 284103002: Replace "external_install" boolean parameter with explicit enumeration in ExtensionUninstall method. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chrome/browser/extensions/extension_service_unittest.h" 5 #include "chrome/browser/extensions/extension_service_unittest.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 void UninstallExtension(const std::string& id, bool use_helper) { 1039 void UninstallExtension(const std::string& id, bool use_helper) {
1040 // Verify that the extension is installed. 1040 // Verify that the extension is installed.
1041 base::FilePath extension_path = extensions_install_dir_.AppendASCII(id); 1041 base::FilePath extension_path = extensions_install_dir_.AppendASCII(id);
1042 EXPECT_TRUE(base::PathExists(extension_path)); 1042 EXPECT_TRUE(base::PathExists(extension_path));
1043 size_t pref_key_count = GetPrefKeyCount(); 1043 size_t pref_key_count = GetPrefKeyCount();
1044 EXPECT_GT(pref_key_count, 0u); 1044 EXPECT_GT(pref_key_count, 0u);
1045 ValidateIntegerPref(id, "state", Extension::ENABLED); 1045 ValidateIntegerPref(id, "state", Extension::ENABLED);
1046 1046
1047 // Uninstall it. 1047 // Uninstall it.
1048 if (use_helper) { 1048 if (use_helper) {
1049 EXPECT_TRUE(ExtensionService::UninstallExtensionHelper(service_, id)); 1049 EXPECT_TRUE(ExtensionService::UninstallExtensionHelper(
1050 service_, id, ExtensionService::kUninstallReasonDefault));
1050 } else { 1051 } else {
1051 EXPECT_TRUE(service_->UninstallExtension(id, false, NULL)); 1052 EXPECT_TRUE(service_->UninstallExtension(
1053 id, ExtensionService::kUninstallReasonDefault, NULL));
1052 } 1054 }
1053 --expected_extensions_count_; 1055 --expected_extensions_count_;
1054 1056
1055 // We should get an unload notification. 1057 // We should get an unload notification.
1056 EXPECT_FALSE(unloaded_id_.empty()); 1058 EXPECT_FALSE(unloaded_id_.empty());
1057 EXPECT_EQ(id, unloaded_id_); 1059 EXPECT_EQ(id, unloaded_id_);
1058 1060
1059 // Verify uninstalled state. 1061 // Verify uninstalled state.
1060 size_t new_pref_key_count = GetPrefKeyCount(); 1062 size_t new_pref_key_count = GetPrefKeyCount();
1061 if (new_pref_key_count == pref_key_count) { 1063 if (new_pref_key_count == pref_key_count) {
(...skipping 2731 matching lines...) Expand 10 before | Expand all | Expand 10 after
3793 extensions::ExtensionInfo extension_info( 3795 extensions::ExtensionInfo extension_info(
3794 &manifest, std::string(), path, Manifest::UNPACKED); 3796 &manifest, std::string(), path, Manifest::UNPACKED);
3795 3797
3796 // Ensure we can load it with no management policy in place. 3798 // Ensure we can load it with no management policy in place.
3797 management_policy_->UnregisterAllProviders(); 3799 management_policy_->UnregisterAllProviders();
3798 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 3800 EXPECT_EQ(0u, registry_->enabled_extensions().size());
3799 extensions::InstalledLoader(service_).Load(extension_info, false); 3801 extensions::InstalledLoader(service_).Load(extension_info, false);
3800 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 3802 EXPECT_EQ(1u, registry_->enabled_extensions().size());
3801 3803
3802 const Extension* extension = (registry_->enabled_extensions().begin())->get(); 3804 const Extension* extension = (registry_->enabled_extensions().begin())->get();
3803 EXPECT_TRUE(service_->UninstallExtension(extension->id(), false, NULL)); 3805 EXPECT_TRUE(service_->UninstallExtension(
3806 extension->id(), ExtensionService::kUninstallReasonDefault, NULL));
3804 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 3807 EXPECT_EQ(0u, registry_->enabled_extensions().size());
3805 3808
3806 // Ensure we cannot load it if management policy prohibits installation. 3809 // Ensure we cannot load it if management policy prohibits installation.
3807 extensions::TestManagementPolicyProvider provider_( 3810 extensions::TestManagementPolicyProvider provider_(
3808 extensions::TestManagementPolicyProvider::PROHIBIT_LOAD); 3811 extensions::TestManagementPolicyProvider::PROHIBIT_LOAD);
3809 management_policy_->RegisterProvider(&provider_); 3812 management_policy_->RegisterProvider(&provider_);
3810 3813
3811 extensions::InstalledLoader(service_).Load(extension_info, false); 3814 extensions::InstalledLoader(service_).Load(extension_info, false);
3812 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 3815 EXPECT_EQ(0u, registry_->enabled_extensions().size());
3813 } 3816 }
(...skipping 26 matching lines...) Expand all
3840 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); 3843 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW);
3841 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 3844 EXPECT_EQ(1u, registry_->enabled_extensions().size());
3842 EXPECT_EQ(0u, registry_->disabled_extensions().size()); 3845 EXPECT_EQ(0u, registry_->disabled_extensions().size());
3843 3846
3844 management_policy_->UnregisterAllProviders(); 3847 management_policy_->UnregisterAllProviders();
3845 extensions::TestManagementPolicyProvider provider( 3848 extensions::TestManagementPolicyProvider provider(
3846 extensions::TestManagementPolicyProvider::PROHIBIT_MODIFY_STATUS); 3849 extensions::TestManagementPolicyProvider::PROHIBIT_MODIFY_STATUS);
3847 management_policy_->RegisterProvider(&provider); 3850 management_policy_->RegisterProvider(&provider);
3848 3851
3849 // Attempt to uninstall it. 3852 // Attempt to uninstall it.
3850 EXPECT_FALSE(service_->UninstallExtension(good_crx, false, NULL)); 3853 EXPECT_FALSE(service_->UninstallExtension(
3854 good_crx, ExtensionService::kUninstallReasonDefault, NULL));
3851 3855
3852 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 3856 EXPECT_EQ(1u, registry_->enabled_extensions().size());
3853 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); 3857 EXPECT_TRUE(service_->GetExtensionById(good_crx, false));
3854 } 3858 }
3855 3859
3856 // Tests that previously installed extensions that are now prohibited from 3860 // Tests that previously installed extensions that are now prohibited from
3857 // being installed are removed. 3861 // being installed are removed.
3858 TEST_F(ExtensionServiceTest, ManagementPolicyUnloadsAllProhibited) { 3862 TEST_F(ExtensionServiceTest, ManagementPolicyUnloadsAllProhibited) {
3859 InitializeEmptyExtensionService(); 3863 InitializeEmptyExtensionService();
3860 3864
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
4382 IndexedDBContext* idb_context = 4386 IndexedDBContext* idb_context =
4383 BrowserContext::GetDefaultStoragePartition(profile_.get())-> 4387 BrowserContext::GetDefaultStoragePartition(profile_.get())->
4384 GetIndexedDBContext(); 4388 GetIndexedDBContext();
4385 idb_context->SetTaskRunnerForTesting( 4389 idb_context->SetTaskRunnerForTesting(
4386 base::MessageLoop::current()->message_loop_proxy().get()); 4390 base::MessageLoop::current()->message_loop_proxy().get());
4387 base::FilePath idb_path = idb_context->GetFilePathForTesting(origin_id); 4391 base::FilePath idb_path = idb_context->GetFilePathForTesting(origin_id);
4388 EXPECT_TRUE(base::CreateDirectory(idb_path)); 4392 EXPECT_TRUE(base::CreateDirectory(idb_path));
4389 EXPECT_TRUE(base::DirectoryExists(idb_path)); 4393 EXPECT_TRUE(base::DirectoryExists(idb_path));
4390 4394
4391 // Uninstall the extension. 4395 // Uninstall the extension.
4392 service_->UninstallExtension(good_crx, false, NULL); 4396 service_->UninstallExtension(
4397 good_crx, ExtensionService::kUninstallReasonDefault, NULL);
4393 base::RunLoop().RunUntilIdle(); 4398 base::RunLoop().RunUntilIdle();
4394 4399
4395 // Check that the cookie is gone. 4400 // Check that the cookie is gone.
4396 cookie_monster->GetAllCookiesForURLAsync( 4401 cookie_monster->GetAllCookiesForURLAsync(
4397 ext_url, 4402 ext_url,
4398 base::Bind(&ExtensionCookieCallback::GetAllCookiesCallback, 4403 base::Bind(&ExtensionCookieCallback::GetAllCookiesCallback,
4399 base::Unretained(&callback))); 4404 base::Unretained(&callback)));
4400 base::RunLoop().RunUntilIdle(); 4405 base::RunLoop().RunUntilIdle();
4401 EXPECT_EQ(0U, callback.list_.size()); 4406 EXPECT_EQ(0U, callback.list_.size());
4402 4407
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
4571 .AppendASCII("1"); 4576 .AppendASCII("1");
4572 extensions::UnpackedInstaller::Create(service_)->Load(no_manifest); 4577 extensions::UnpackedInstaller::Create(service_)->Load(no_manifest);
4573 base::RunLoop().RunUntilIdle(); 4578 base::RunLoop().RunUntilIdle();
4574 EXPECT_EQ(1u, GetErrors().size()); 4579 EXPECT_EQ(1u, GetErrors().size());
4575 ASSERT_EQ(1u, loaded_.size()); 4580 ASSERT_EQ(1u, loaded_.size());
4576 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 4581 EXPECT_EQ(1u, registry_->enabled_extensions().size());
4577 4582
4578 // Test uninstall. 4583 // Test uninstall.
4579 std::string id = loaded_[0]->id(); 4584 std::string id = loaded_[0]->id();
4580 EXPECT_FALSE(unloaded_id_.length()); 4585 EXPECT_FALSE(unloaded_id_.length());
4581 service_->UninstallExtension(id, false, NULL); 4586 service_->UninstallExtension(
4587 id, ExtensionService::kUninstallReasonDefault, NULL);
4582 base::RunLoop().RunUntilIdle(); 4588 base::RunLoop().RunUntilIdle();
4583 EXPECT_EQ(id, unloaded_id_); 4589 EXPECT_EQ(id, unloaded_id_);
4584 ASSERT_EQ(0u, loaded_.size()); 4590 ASSERT_EQ(0u, loaded_.size());
4585 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 4591 EXPECT_EQ(0u, registry_->enabled_extensions().size());
4586 } 4592 }
4587 4593
4588 // Tests that we generate IDs when they are not specified in the manifest for 4594 // Tests that we generate IDs when they are not specified in the manifest for
4589 // --load-extension. 4595 // --load-extension.
4590 TEST_F(ExtensionServiceTest, GenerateID) { 4596 TEST_F(ExtensionServiceTest, GenerateID) {
4591 InitializeEmptyExtensionService(); 4597 InitializeEmptyExtensionService();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
4683 ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString()); 4689 ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString());
4684 ValidatePrefKeyCount(1); 4690 ValidatePrefKeyCount(1);
4685 ValidateIntegerPref(good_crx, "state", Extension::ENABLED); 4691 ValidateIntegerPref(good_crx, "state", Extension::ENABLED);
4686 ValidateIntegerPref(good_crx, "location", location); 4692 ValidateIntegerPref(good_crx, "location", location);
4687 4693
4688 // Uninstall the extension and reload. Nothing should happen because the 4694 // Uninstall the extension and reload. Nothing should happen because the
4689 // preference should prevent us from reinstalling. 4695 // preference should prevent us from reinstalling.
4690 std::string id = loaded_[0]->id(); 4696 std::string id = loaded_[0]->id();
4691 bool no_uninstall = 4697 bool no_uninstall =
4692 management_policy_->MustRemainEnabled(loaded_[0].get(), NULL); 4698 management_policy_->MustRemainEnabled(loaded_[0].get(), NULL);
4693 service_->UninstallExtension(id, false, NULL); 4699 service_->UninstallExtension(
4700 id, ExtensionService::kUninstallReasonDefault, NULL);
4694 base::RunLoop().RunUntilIdle(); 4701 base::RunLoop().RunUntilIdle();
4695 4702
4696 base::FilePath install_path = extensions_install_dir_.AppendASCII(id); 4703 base::FilePath install_path = extensions_install_dir_.AppendASCII(id);
4697 if (no_uninstall) { 4704 if (no_uninstall) {
4698 // Policy controlled extensions should not have been touched by uninstall. 4705 // Policy controlled extensions should not have been touched by uninstall.
4699 ASSERT_TRUE(base::PathExists(install_path)); 4706 ASSERT_TRUE(base::PathExists(install_path));
4700 } else { 4707 } else {
4701 // The extension should also be gone from the install directory. 4708 // The extension should also be gone from the install directory.
4702 ASSERT_FALSE(base::PathExists(install_path)); 4709 ASSERT_FALSE(base::PathExists(install_path));
4703 loaded_.clear(); 4710 loaded_.clear();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
4747 content::NotificationService::AllSources()); 4754 content::NotificationService::AllSources());
4748 provider->UpdateOrAddExtension(good_crx, "1.0.0.1", source_path); 4755 provider->UpdateOrAddExtension(good_crx, "1.0.0.1", source_path);
4749 service_->CheckForExternalUpdates(); 4756 service_->CheckForExternalUpdates();
4750 observer.Wait(); 4757 observer.Wait();
4751 4758
4752 ASSERT_EQ(1u, loaded_.size()); 4759 ASSERT_EQ(1u, loaded_.size());
4753 ASSERT_EQ(0u, GetErrors().size()); 4760 ASSERT_EQ(0u, GetErrors().size());
4754 4761
4755 // User uninstalls. 4762 // User uninstalls.
4756 loaded_.clear(); 4763 loaded_.clear();
4757 service_->UninstallExtension(id, false, NULL); 4764 service_->UninstallExtension(
4765 id, ExtensionService::kUninstallReasonDefault, NULL);
4758 base::RunLoop().RunUntilIdle(); 4766 base::RunLoop().RunUntilIdle();
4759 ASSERT_EQ(0u, loaded_.size()); 4767 ASSERT_EQ(0u, loaded_.size());
4760 4768
4761 // Then remove the extension from the extension provider. 4769 // Then remove the extension from the extension provider.
4762 provider->RemoveExtension(good_crx); 4770 provider->RemoveExtension(good_crx);
4763 4771
4764 // Should still be at 0. 4772 // Should still be at 0.
4765 loaded_.clear(); 4773 loaded_.clear();
4766 extensions::InstalledLoader(service_).LoadAllExtensions(); 4774 extensions::InstalledLoader(service_).LoadAllExtensions();
4767 base::RunLoop().RunUntilIdle(); 4775 base::RunLoop().RunUntilIdle();
(...skipping 2142 matching lines...) Expand 10 before | Expand all | Expand 10 after
6910 // ReconcileKnownDisabled(). 6918 // ReconcileKnownDisabled().
6911 service_->EnableExtension(good2); 6919 service_->EnableExtension(good2);
6912 service_->ReconcileKnownDisabled(); 6920 service_->ReconcileKnownDisabled();
6913 expected_extensions.insert(good2); 6921 expected_extensions.insert(good2);
6914 expected_disabled_extensions.erase(good2); 6922 expected_disabled_extensions.erase(good2);
6915 6923
6916 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs()); 6924 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs());
6917 EXPECT_EQ(expected_disabled_extensions, 6925 EXPECT_EQ(expected_disabled_extensions,
6918 registry_->disabled_extensions().GetIDs()); 6926 registry_->disabled_extensions().GetIDs());
6919 } 6927 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698