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

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

Issue 156843004: Remove ExtensionService::extension_prefs() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix UserScriptListenerTests.MultiProfile Created 6 years, 10 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 | Annotate | Revision Log
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 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 597
598 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() { 598 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() {
599 ExtensionServiceInitParams params = CreateDefaultInitParams(); 599 ExtensionServiceInitParams params = CreateDefaultInitParams();
600 params.autoupdate_enabled = true; 600 params.autoupdate_enabled = true;
601 InitializeExtensionService(params); 601 InitializeExtensionService(params);
602 service_->updater()->Start(); 602 service_->updater()->Start();
603 } 603 }
604 604
605 void ExtensionServiceTestBase::InitializeExtensionSyncService() { 605 void ExtensionServiceTestBase::InitializeExtensionSyncService() {
606 extension_sync_service_.reset(new ExtensionSyncService( 606 extension_sync_service_.reset(new ExtensionSyncService(
607 profile_.get(), service_->extension_prefs(), service_)); 607 profile_.get(), ExtensionPrefs::Get(profile_.get()), service_));
608 } 608 }
609 609
610 // static 610 // static
611 void ExtensionServiceTestBase::SetUpTestCase() { 611 void ExtensionServiceTestBase::SetUpTestCase() {
612 ExtensionErrorReporter::Init(false); // no noisy errors 612 ExtensionErrorReporter::Init(false); // no noisy errors
613 } 613 }
614 614
615 void ExtensionServiceTestBase::SetUp() { 615 void ExtensionServiceTestBase::SetUp() {
616 ExtensionErrorReporter::GetInstance()->ClearErrors(); 616 ExtensionErrorReporter::GetInstance()->ClearErrors();
617 } 617 }
(...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII( 1558 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
1559 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0"))); 1559 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
1560 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1560 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1561 "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0"))); 1561 "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0")));
1562 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1562 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1563 "hpiknbiabeeppbpihjehijgoemciehgk/2"))); 1563 "hpiknbiabeeppbpihjehijgoemciehgk/2")));
1564 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII( 1564 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
1565 "hpiknbiabeeppbpihjehijgoemciehgk/3"))); 1565 "hpiknbiabeeppbpihjehijgoemciehgk/3")));
1566 1566
1567 // Make sure update information got deleted. 1567 // Make sure update information got deleted.
1568 ExtensionPrefs* prefs = service_->extension_prefs(); 1568 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
1569 EXPECT_FALSE( 1569 EXPECT_FALSE(
1570 prefs->GetDelayedInstallInfo("bjafgdebaacbbbecmhlhpofkepfkgcpa")); 1570 prefs->GetDelayedInstallInfo("bjafgdebaacbbbecmhlhpofkepfkgcpa"));
1571 } 1571 }
1572 1572
1573 // Test various cases for delayed install because of missing imports. 1573 // Test various cases for delayed install because of missing imports.
1574 TEST_F(ExtensionServiceTest, PendingImports) { 1574 TEST_F(ExtensionServiceTest, PendingImports) {
1575 InitPluginService(); 1575 InitPluginService();
1576 1576
1577 base::FilePath source_install_dir = data_dir_ 1577 base::FilePath source_install_dir = data_dir_
1578 .AppendASCII("pending_updates_with_imports") 1578 .AppendASCII("pending_updates_with_imports")
(...skipping 12 matching lines...) Expand all
1591 1591
1592 // These extensions are used by the extensions we test below, they must be 1592 // These extensions are used by the extensions we test below, they must be
1593 // installed. 1593 // installed.
1594 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1594 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1595 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0"))); 1595 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
1596 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1596 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1597 "hpiknbiabeeppbpihjehijgoemciehgk/2"))); 1597 "hpiknbiabeeppbpihjehijgoemciehgk/2")));
1598 1598
1599 // Each of these extensions should have been rejected because of dependencies 1599 // Each of these extensions should have been rejected because of dependencies
1600 // that cannot be satisfied. 1600 // that cannot be satisfied.
1601 ExtensionPrefs* prefs = service_->extension_prefs(); 1601 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
1602 EXPECT_FALSE( 1602 EXPECT_FALSE(
1603 prefs->GetDelayedInstallInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 1603 prefs->GetDelayedInstallInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
1604 EXPECT_FALSE( 1604 EXPECT_FALSE(
1605 prefs->GetInstalledExtensionInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 1605 prefs->GetInstalledExtensionInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
1606 EXPECT_FALSE( 1606 EXPECT_FALSE(
1607 prefs->GetDelayedInstallInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")); 1607 prefs->GetDelayedInstallInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
1608 EXPECT_FALSE( 1608 EXPECT_FALSE(
1609 prefs->GetInstalledExtensionInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")); 1609 prefs->GetInstalledExtensionInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
1610 EXPECT_FALSE( 1610 EXPECT_FALSE(
1611 prefs->GetDelayedInstallInfo("cccccccccccccccccccccccccccccccc")); 1611 prefs->GetDelayedInstallInfo("cccccccccccccccccccccccccccccccc"));
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
2009 InitializeEmptyExtensionService(); 2009 InitializeEmptyExtensionService();
2010 base::FilePath path = data_dir_ 2010 base::FilePath path = data_dir_
2011 .AppendASCII("permissions"); 2011 .AppendASCII("permissions");
2012 2012
2013 base::FilePath pem_path = path.AppendASCII("unknown.pem"); 2013 base::FilePath pem_path = path.AppendASCII("unknown.pem");
2014 path = path.AppendASCII("unknown"); 2014 path = path.AppendASCII("unknown");
2015 2015
2016 ASSERT_TRUE(base::PathExists(pem_path)); 2016 ASSERT_TRUE(base::PathExists(pem_path));
2017 ASSERT_TRUE(base::PathExists(path)); 2017 ASSERT_TRUE(base::PathExists(path));
2018 2018
2019 ExtensionPrefs* prefs = service_->extension_prefs(); 2019 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2020 2020
2021 APIPermissionSet expected_api_perms; 2021 APIPermissionSet expected_api_perms;
2022 URLPatternSet expected_host_perms; 2022 URLPatternSet expected_host_perms;
2023 2023
2024 // Make sure there aren't any granted permissions before the 2024 // Make sure there aren't any granted permissions before the
2025 // extension is installed. 2025 // extension is installed.
2026 scoped_refptr<PermissionSet> known_perms( 2026 scoped_refptr<PermissionSet> known_perms(
2027 prefs->GetGrantedPermissions(permissions_crx)); 2027 prefs->GetGrantedPermissions(permissions_crx));
2028 EXPECT_FALSE(known_perms.get()); 2028 EXPECT_FALSE(known_perms.get());
2029 2029
(...skipping 27 matching lines...) Expand all
2057 InitializeEmptyExtensionService(); 2057 InitializeEmptyExtensionService();
2058 base::FilePath path = data_dir_ 2058 base::FilePath path = data_dir_
2059 .AppendASCII("permissions"); 2059 .AppendASCII("permissions");
2060 2060
2061 base::FilePath pem_path = path.AppendASCII("unknown.pem"); 2061 base::FilePath pem_path = path.AppendASCII("unknown.pem");
2062 path = path.AppendASCII("unknown"); 2062 path = path.AppendASCII("unknown");
2063 2063
2064 ASSERT_TRUE(base::PathExists(pem_path)); 2064 ASSERT_TRUE(base::PathExists(pem_path));
2065 ASSERT_TRUE(base::PathExists(path)); 2065 ASSERT_TRUE(base::PathExists(path));
2066 2066
2067 ExtensionPrefs* prefs = service_->extension_prefs(); 2067 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2068 2068
2069 APIPermissionSet expected_api_perms; 2069 APIPermissionSet expected_api_perms;
2070 URLPatternSet expected_host_perms; 2070 URLPatternSet expected_host_perms;
2071 2071
2072 // Make sure there aren't any granted permissions before the 2072 // Make sure there aren't any granted permissions before the
2073 // extension is installed. 2073 // extension is installed.
2074 scoped_refptr<PermissionSet> known_perms( 2074 scoped_refptr<PermissionSet> known_perms(
2075 prefs->GetGrantedPermissions(permissions_crx)); 2075 prefs->GetGrantedPermissions(permissions_crx));
2076 EXPECT_FALSE(known_perms.get()); 2076 EXPECT_FALSE(known_perms.get());
2077 2077
(...skipping 21 matching lines...) Expand all
2099 // since they don't support plugins. 2099 // since they don't support plugins.
2100 TEST_F(ExtensionServiceTest, GrantedFullAccessPermissions) { 2100 TEST_F(ExtensionServiceTest, GrantedFullAccessPermissions) {
2101 InitPluginService(); 2101 InitPluginService();
2102 2102
2103 InitializeEmptyExtensionService(); 2103 InitializeEmptyExtensionService();
2104 2104
2105 ASSERT_TRUE(base::PathExists(good1_path())); 2105 ASSERT_TRUE(base::PathExists(good1_path()));
2106 const Extension* extension = PackAndInstallCRX(good1_path(), INSTALL_NEW); 2106 const Extension* extension = PackAndInstallCRX(good1_path(), INSTALL_NEW);
2107 EXPECT_EQ(0u, GetErrors().size()); 2107 EXPECT_EQ(0u, GetErrors().size());
2108 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 2108 EXPECT_EQ(1u, registry_->enabled_extensions().size());
2109 ExtensionPrefs* prefs = service_->extension_prefs(); 2109 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2110 2110
2111 scoped_refptr<PermissionSet> permissions( 2111 scoped_refptr<PermissionSet> permissions(
2112 prefs->GetGrantedPermissions(extension->id())); 2112 prefs->GetGrantedPermissions(extension->id()));
2113 EXPECT_FALSE(permissions->IsEmpty()); 2113 EXPECT_FALSE(permissions->IsEmpty());
2114 EXPECT_TRUE(permissions->HasEffectiveFullAccess()); 2114 EXPECT_TRUE(permissions->HasEffectiveFullAccess());
2115 EXPECT_FALSE(permissions->apis().empty()); 2115 EXPECT_FALSE(permissions->apis().empty());
2116 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin)); 2116 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin));
2117 2117
2118 // Full access implies full host access too... 2118 // Full access implies full host access too...
2119 EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts()); 2119 EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts());
(...skipping 11 matching lines...) Expand all
2131 .AppendASCII("unknown"); 2131 .AppendASCII("unknown");
2132 2132
2133 ASSERT_TRUE(base::PathExists(path)); 2133 ASSERT_TRUE(base::PathExists(path));
2134 2134
2135 const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW); 2135 const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW);
2136 2136
2137 EXPECT_EQ(0u, GetErrors().size()); 2137 EXPECT_EQ(0u, GetErrors().size());
2138 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 2138 EXPECT_EQ(1u, registry_->enabled_extensions().size());
2139 std::string extension_id = extension->id(); 2139 std::string extension_id = extension->id();
2140 2140
2141 ExtensionPrefs* prefs = service_->extension_prefs(); 2141 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2142 2142
2143 APIPermissionSet expected_api_permissions; 2143 APIPermissionSet expected_api_permissions;
2144 URLPatternSet expected_host_permissions; 2144 URLPatternSet expected_host_permissions;
2145 2145
2146 expected_api_permissions.insert(APIPermission::kTab); 2146 expected_api_permissions.insert(APIPermission::kTab);
2147 AddPattern(&expected_host_permissions, "http://*.google.com/*"); 2147 AddPattern(&expected_host_permissions, "http://*.google.com/*");
2148 AddPattern(&expected_host_permissions, "https://*.google.com/*"); 2148 AddPattern(&expected_host_permissions, "https://*.google.com/*");
2149 AddPattern(&expected_host_permissions, "http://*.google.com.hk/*"); 2149 AddPattern(&expected_host_permissions, "http://*.google.com.hk/*");
2150 AddPattern(&expected_host_permissions, "http://www.example.com/*"); 2150 AddPattern(&expected_host_permissions, "http://www.example.com/*");
2151 2151
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
2627 // Tests that file access is OFF by default. 2627 // Tests that file access is OFF by default.
2628 TEST_F(ExtensionServiceTest, DefaultFileAccess) { 2628 TEST_F(ExtensionServiceTest, DefaultFileAccess) {
2629 InitializeEmptyExtensionService(); 2629 InitializeEmptyExtensionService();
2630 const Extension* extension = 2630 const Extension* extension =
2631 PackAndInstallCRX(data_dir_ 2631 PackAndInstallCRX(data_dir_
2632 .AppendASCII("permissions") 2632 .AppendASCII("permissions")
2633 .AppendASCII("files"), 2633 .AppendASCII("files"),
2634 INSTALL_NEW); 2634 INSTALL_NEW);
2635 EXPECT_EQ(0u, GetErrors().size()); 2635 EXPECT_EQ(0u, GetErrors().size());
2636 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 2636 EXPECT_EQ(1u, registry_->enabled_extensions().size());
2637 EXPECT_FALSE(service_->extension_prefs()->AllowFileAccess(extension->id())); 2637 EXPECT_FALSE(
2638 ExtensionPrefs::Get(profile_.get())->AllowFileAccess(extension->id()));
2638 } 2639 }
2639 2640
2640 TEST_F(ExtensionServiceTest, UpdateApps) { 2641 TEST_F(ExtensionServiceTest, UpdateApps) {
2641 InitializeEmptyExtensionService(); 2642 InitializeEmptyExtensionService();
2642 base::FilePath extensions_path = data_dir_.AppendASCII("app_update"); 2643 base::FilePath extensions_path = data_dir_.AppendASCII("app_update");
2643 2644
2644 // First install v1 of a hosted app. 2645 // First install v1 of a hosted app.
2645 const Extension* extension = 2646 const Extension* extension =
2646 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW); 2647 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW);
2647 ASSERT_EQ(1u, registry_->enabled_extensions().size()); 2648 ASSERT_EQ(1u, registry_->enabled_extensions().size());
2648 std::string id = extension->id(); 2649 std::string id = extension->id();
2649 ASSERT_EQ(std::string("1"), extension->version()->GetString()); 2650 ASSERT_EQ(std::string("1"), extension->version()->GetString());
2650 2651
2651 // Now try updating to v2. 2652 // Now try updating to v2.
2652 UpdateExtension(id, 2653 UpdateExtension(id,
2653 extensions_path.AppendASCII("v2.crx"), 2654 extensions_path.AppendASCII("v2.crx"),
2654 ENABLED); 2655 ENABLED);
2655 ASSERT_EQ(std::string("2"), 2656 ASSERT_EQ(std::string("2"),
2656 service_->GetExtensionById(id, false)->version()->GetString()); 2657 service_->GetExtensionById(id, false)->version()->GetString());
2657 } 2658 }
2658 2659
2659 // Verifies that the NTP page and launch ordinals are kept when updating apps. 2660 // Verifies that the NTP page and launch ordinals are kept when updating apps.
2660 TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) { 2661 TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) {
2661 InitializeEmptyExtensionService(); 2662 InitializeEmptyExtensionService();
2662 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 2663 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
2663 base::FilePath extensions_path = data_dir_.AppendASCII("app_update"); 2664 base::FilePath extensions_path = data_dir_.AppendASCII("app_update");
2664 2665
2665 // First install v1 of a hosted app. 2666 // First install v1 of a hosted app.
2666 const Extension* extension = 2667 const Extension* extension =
2667 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW); 2668 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW);
2668 ASSERT_EQ(1u, registry_->enabled_extensions().size()); 2669 ASSERT_EQ(1u, registry_->enabled_extensions().size());
2669 std::string id = extension->id(); 2670 std::string id = extension->id();
2670 ASSERT_EQ(std::string("1"), extension->version()->GetString()); 2671 ASSERT_EQ(std::string("1"), extension->version()->GetString());
2671 2672
2672 // Modify the ordinals so we can distinguish them from the defaults. 2673 // Modify the ordinals so we can distinguish them from the defaults.
(...skipping 15 matching lines...) Expand all
2688 ASSERT_TRUE(new_launch_ordinal.Equals(sorting->GetAppLaunchOrdinal(id))); 2689 ASSERT_TRUE(new_launch_ordinal.Equals(sorting->GetAppLaunchOrdinal(id)));
2689 } 2690 }
2690 2691
2691 // Ensures that the CWS has properly initialized ordinals. 2692 // Ensures that the CWS has properly initialized ordinals.
2692 TEST_F(ExtensionServiceTest, EnsureCWSOrdinalsInitialized) { 2693 TEST_F(ExtensionServiceTest, EnsureCWSOrdinalsInitialized) {
2693 InitializeEmptyExtensionService(); 2694 InitializeEmptyExtensionService();
2694 service_->component_loader()->Add( 2695 service_->component_loader()->Add(
2695 IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store"))); 2696 IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store")));
2696 service_->Init(); 2697 service_->Init();
2697 2698
2698 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 2699 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
2699 EXPECT_TRUE( 2700 EXPECT_TRUE(
2700 sorting->GetPageOrdinal(extension_misc::kWebStoreAppId).IsValid()); 2701 sorting->GetPageOrdinal(extension_misc::kWebStoreAppId).IsValid());
2701 EXPECT_TRUE( 2702 EXPECT_TRUE(
2702 sorting->GetAppLaunchOrdinal(extension_misc::kWebStoreAppId).IsValid()); 2703 sorting->GetAppLaunchOrdinal(extension_misc::kWebStoreAppId).IsValid());
2703 } 2704 }
2704 2705
2705 TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) { 2706 TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) {
2706 InitializeEmptyExtensionService(); 2707 InitializeEmptyExtensionService();
2707 EXPECT_TRUE(registry_->enabled_extensions().is_empty()); 2708 EXPECT_TRUE(registry_->enabled_extensions().is_empty());
2708 2709
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2968 base::FilePath path = data_dir_.AppendASCII("good.crx"); 2969 base::FilePath path = data_dir_.AppendASCII("good.crx");
2969 2970
2970 const Extension* good = InstallCRX(path, INSTALL_NEW); 2971 const Extension* good = InstallCRX(path, INSTALL_NEW);
2971 ASSERT_EQ("1.0.0.0", good->VersionString()); 2972 ASSERT_EQ("1.0.0.0", good->VersionString());
2972 ASSERT_EQ(good_crx, good->id()); 2973 ASSERT_EQ(good_crx, good->id());
2973 2974
2974 // Disable it and allow it to run in incognito. These settings should carry 2975 // Disable it and allow it to run in incognito. These settings should carry
2975 // over to the updated version. 2976 // over to the updated version.
2976 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); 2977 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION);
2977 extensions::util::SetIsIncognitoEnabled(good->id(), profile_.get(), true); 2978 extensions::util::SetIsIncognitoEnabled(good->id(), profile_.get(), true);
2978 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); 2979 ExtensionPrefs::Get(profile_.get())
2980 ->SetDidExtensionEscalatePermissions(good, true);
2979 2981
2980 path = data_dir_.AppendASCII("good2.crx"); 2982 path = data_dir_.AppendASCII("good2.crx");
2981 UpdateExtension(good_crx, path, INSTALLED); 2983 UpdateExtension(good_crx, path, INSTALLED);
2982 ASSERT_EQ(1u, registry_->disabled_extensions().size()); 2984 ASSERT_EQ(1u, registry_->disabled_extensions().size());
2983 const Extension* good2 = service_->GetExtensionById(good_crx, true); 2985 const Extension* good2 = service_->GetExtensionById(good_crx, true);
2984 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); 2986 ASSERT_EQ("1.0.0.1", good2->version()->GetString());
2985 EXPECT_TRUE(extensions::util::IsIncognitoEnabled( 2987 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(
2986 good2->id(), profile_.get())); 2988 good2->id(), profile_.get()));
2987 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( 2989 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())
2988 good2->id())); 2990 ->DidExtensionEscalatePermissions(good2->id()));
2989 } 2991 }
2990 2992
2991 // Tests that updating preserves extension location. 2993 // Tests that updating preserves extension location.
2992 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { 2994 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) {
2993 InitializeEmptyExtensionService(); 2995 InitializeEmptyExtensionService();
2994 2996
2995 base::FilePath path = data_dir_.AppendASCII("good.crx"); 2997 base::FilePath path = data_dir_.AppendASCII("good.crx");
2996 2998
2997 const Extension* good = 2999 const Extension* good =
2998 InstallCRXWithLocation(path, Manifest::EXTERNAL_PREF, INSTALL_NEW); 3000 InstallCRXWithLocation(path, Manifest::EXTERNAL_PREF, INSTALL_NEW);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
3101 base::RunLoop().RunUntilIdle(); 3103 base::RunLoop().RunUntilIdle();
3102 EXPECT_EQ(0u, GetErrors().size()); 3104 EXPECT_EQ(0u, GetErrors().size());
3103 EXPECT_EQ(2u, loaded_.size()); 3105 EXPECT_EQ(2u, loaded_.size());
3104 EXPECT_EQ(2u, registry_->enabled_extensions().size()); 3106 EXPECT_EQ(2u, registry_->enabled_extensions().size());
3105 EXPECT_EQ(0u, registry_->disabled_extensions().size()); 3107 EXPECT_EQ(0u, registry_->disabled_extensions().size());
3106 EXPECT_TRUE(registry_->enabled_extensions().Contains(good1)); 3108 EXPECT_TRUE(registry_->enabled_extensions().Contains(good1));
3107 EXPECT_TRUE(registry_->enabled_extensions().Contains(good2)); 3109 EXPECT_TRUE(registry_->enabled_extensions().Contains(good2));
3108 3110
3109 // Make sure the granted permissions have been setup. 3111 // Make sure the granted permissions have been setup.
3110 scoped_refptr<PermissionSet> permissions( 3112 scoped_refptr<PermissionSet> permissions(
3111 service_->extension_prefs()->GetGrantedPermissions(good1)); 3113 ExtensionPrefs::Get(profile_.get())->GetGrantedPermissions(good1));
3112 EXPECT_FALSE(permissions->IsEmpty()); 3114 EXPECT_FALSE(permissions->IsEmpty());
3113 EXPECT_TRUE(permissions->HasEffectiveFullAccess()); 3115 EXPECT_TRUE(permissions->HasEffectiveFullAccess());
3114 EXPECT_FALSE(permissions->apis().empty()); 3116 EXPECT_FALSE(permissions->apis().empty());
3115 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin)); 3117 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin));
3116 3118
3117 // We should be able to reload the extension without getting another prompt. 3119 // We should be able to reload the extension without getting another prompt.
3118 loaded_.clear(); 3120 loaded_.clear();
3119 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 3121 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
3120 switches::kAppsGalleryInstallAutoConfirmForTests, 3122 switches::kAppsGalleryInstallAutoConfirmForTests,
3121 "cancel"); 3123 "cancel");
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3197 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3199 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3198 3200
3199 base::FilePath path = data_dir_.AppendASCII("theme.crx"); 3201 base::FilePath path = data_dir_.AppendASCII("theme.crx");
3200 UpdateExtension(theme_crx, path, ENABLED); 3202 UpdateExtension(theme_crx, path, ENABLED);
3201 3203
3202 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3204 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3203 3205
3204 const Extension* extension = service_->GetExtensionById(theme_crx, true); 3206 const Extension* extension = service_->GetExtensionById(theme_crx, true);
3205 ASSERT_TRUE(extension); 3207 ASSERT_TRUE(extension);
3206 3208
3207 EXPECT_FALSE( 3209 EXPECT_FALSE(ExtensionPrefs::Get(profile_.get())
3208 service_->extension_prefs()->IsExtensionDisabled(extension->id())); 3210 ->IsExtensionDisabled(extension->id()));
3209 EXPECT_TRUE(service_->IsExtensionEnabled(theme_crx)); 3211 EXPECT_TRUE(service_->IsExtensionEnabled(theme_crx));
3210 } 3212 }
3211 3213
3212 #if defined(OS_CHROMEOS) 3214 #if defined(OS_CHROMEOS)
3213 // Always fails on ChromeOS: http://crbug.com/79737 3215 // Always fails on ChromeOS: http://crbug.com/79737
3214 #define MAYBE_UpdatePendingExternalCrx DISABLED_UpdatePendingExternalCrx 3216 #define MAYBE_UpdatePendingExternalCrx DISABLED_UpdatePendingExternalCrx
3215 #else 3217 #else
3216 #define MAYBE_UpdatePendingExternalCrx UpdatePendingExternalCrx 3218 #define MAYBE_UpdatePendingExternalCrx UpdatePendingExternalCrx
3217 #endif 3219 #endif
3218 // Test updating a pending CRX as if the source is an external extension 3220 // Test updating a pending CRX as if the source is an external extension
3219 // with an update URL. In this case we don't know if the CRX is a theme 3221 // with an update URL. In this case we don't know if the CRX is a theme
3220 // or not. 3222 // or not.
3221 TEST_F(ExtensionServiceTest, MAYBE_UpdatePendingExternalCrx) { 3223 TEST_F(ExtensionServiceTest, MAYBE_UpdatePendingExternalCrx) {
3222 InitializeEmptyExtensionService(); 3224 InitializeEmptyExtensionService();
3223 EXPECT_TRUE(service_->pending_extension_manager()->AddFromExternalUpdateUrl( 3225 EXPECT_TRUE(service_->pending_extension_manager()->AddFromExternalUpdateUrl(
3224 theme_crx, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS, 3226 theme_crx, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS,
3225 false)); 3227 false));
3226 3228
3227 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3229 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3228 3230
3229 base::FilePath path = data_dir_.AppendASCII("theme.crx"); 3231 base::FilePath path = data_dir_.AppendASCII("theme.crx");
3230 UpdateExtension(theme_crx, path, ENABLED); 3232 UpdateExtension(theme_crx, path, ENABLED);
3231 3233
3232 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3234 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3233 3235
3234 const Extension* extension = service_->GetExtensionById(theme_crx, true); 3236 const Extension* extension = service_->GetExtensionById(theme_crx, true);
3235 ASSERT_TRUE(extension); 3237 ASSERT_TRUE(extension);
3236 3238
3237 EXPECT_FALSE( 3239 EXPECT_FALSE(ExtensionPrefs::Get(profile_.get())
3238 service_->extension_prefs()->IsExtensionDisabled(extension->id())); 3240 ->IsExtensionDisabled(extension->id()));
3239 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); 3241 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id()));
3240 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(extension->id(), 3242 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(extension->id(),
3241 profile_.get())); 3243 profile_.get()));
3242 } 3244 }
3243 3245
3244 // Test updating a pending CRX as if the source is an external extension 3246 // Test updating a pending CRX as if the source is an external extension
3245 // with an update URL. The external update should overwrite a sync update, 3247 // with an update URL. The external update should overwrite a sync update,
3246 // but a sync update should not overwrite a non-sync update. 3248 // but a sync update should not overwrite a non-sync update.
3247 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { 3249 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) {
3248 InitializeEmptyExtensionService(); 3250 InitializeEmptyExtensionService();
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
3462 test_blacklist.Attach(service_->blacklist_); 3464 test_blacklist.Attach(service_->blacklist_);
3463 3465
3464 base::FilePath path = data_dir_.AppendASCII("good.crx"); 3466 base::FilePath path = data_dir_.AppendASCII("good.crx");
3465 3467
3466 const Extension* good = InstallCRX(path, INSTALL_NEW); 3468 const Extension* good = InstallCRX(path, INSTALL_NEW);
3467 EXPECT_EQ(good_crx, good->id()); 3469 EXPECT_EQ(good_crx, good->id());
3468 UpdateExtension(good_crx, path, FAILED_SILENTLY); 3470 UpdateExtension(good_crx, path, FAILED_SILENTLY);
3469 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 3471 EXPECT_EQ(1u, registry_->enabled_extensions().size());
3470 3472
3471 base::ListValue whitelist; 3473 base::ListValue whitelist;
3472 PrefService* prefs = service_->extension_prefs()->pref_service(); 3474 PrefService* prefs = ExtensionPrefs::Get(profile_.get())->pref_service();
3473 whitelist.Append(new base::StringValue(good_crx)); 3475 whitelist.Append(new base::StringValue(good_crx));
3474 prefs->Set(extensions::pref_names::kInstallAllowList, whitelist); 3476 prefs->Set(extensions::pref_names::kInstallAllowList, whitelist);
3475 3477
3476 test_blacklist.SetBlacklistState( 3478 test_blacklist.SetBlacklistState(
3477 good_crx, extensions::BLACKLISTED_MALWARE, true); 3479 good_crx, extensions::BLACKLISTED_MALWARE, true);
3478 base::RunLoop().RunUntilIdle(); 3480 base::RunLoop().RunUntilIdle();
3479 3481
3480 // The good_crx is blacklisted and the whitelist doesn't negate it. 3482 // The good_crx is blacklisted and the whitelist doesn't negate it.
3481 ASSERT_TRUE(ValidateBooleanPref(good_crx, "blacklist", true)); 3483 ASSERT_TRUE(ValidateBooleanPref(good_crx, "blacklist", true));
3482 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 3484 EXPECT_EQ(0u, registry_->enabled_extensions().size());
(...skipping 30 matching lines...) Expand all
3513 #endif // defined(ENABLE_BLACKLIST_TESTS) 3515 #endif // defined(ENABLE_BLACKLIST_TESTS)
3514 3516
3515 #if defined(ENABLE_BLACKLIST_TESTS) 3517 #if defined(ENABLE_BLACKLIST_TESTS)
3516 // Tests extensions blacklisted in prefs on startup; one still blacklisted by 3518 // Tests extensions blacklisted in prefs on startup; one still blacklisted by
3517 // safe browsing, the other not. The not-blacklisted one should recover. 3519 // safe browsing, the other not. The not-blacklisted one should recover.
3518 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) { 3520 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) {
3519 extensions::TestBlacklist test_blacklist; 3521 extensions::TestBlacklist test_blacklist;
3520 3522
3521 InitializeGoodInstalledExtensionService(); 3523 InitializeGoodInstalledExtensionService();
3522 test_blacklist.Attach(service_->blacklist_); 3524 test_blacklist.Attach(service_->blacklist_);
3523 service_->extension_prefs()->SetExtensionBlacklisted(good0, true); 3525 ExtensionPrefs::Get(profile_.get())->SetExtensionBlacklisted(good0, true);
3524 service_->extension_prefs()->SetExtensionBlacklisted(good1, true); 3526 ExtensionPrefs::Get(profile_.get())->SetExtensionBlacklisted(good1, true);
3525 3527
3526 test_blacklist.SetBlacklistState( 3528 test_blacklist.SetBlacklistState(
3527 good1, extensions::BLACKLISTED_MALWARE, false); 3529 good1, extensions::BLACKLISTED_MALWARE, false);
3528 3530
3529 service_->Init(); 3531 service_->Init();
3530 3532
3531 ASSERT_EQ(2u, registry_->blacklisted_extensions().size()); 3533 ASSERT_EQ(2u, registry_->blacklisted_extensions().size());
3532 ASSERT_EQ(1u, registry_->enabled_extensions().size()); 3534 ASSERT_EQ(1u, registry_->enabled_extensions().size());
3533 3535
3534 ASSERT_TRUE(registry_->blacklisted_extensions().Contains(good0)); 3536 ASSERT_TRUE(registry_->blacklisted_extensions().Contains(good0));
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
4039 content::WindowedNotificationObserver observer( 4041 content::WindowedNotificationObserver observer(
4040 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 4042 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
4041 base::Bind(&WaitForCountNotificationsCallback, &count)); 4043 base::Bind(&WaitForCountNotificationsCallback, &count));
4042 service_->CheckForExternalUpdates(); 4044 service_->CheckForExternalUpdates();
4043 4045
4044 observer.Wait(); 4046 observer.Wait();
4045 4047
4046 ASSERT_EQ(2u, registry_->enabled_extensions().size()); 4048 ASSERT_EQ(2u, registry_->enabled_extensions().size());
4047 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); 4049 EXPECT_TRUE(service_->GetExtensionById(good_crx, false));
4048 EXPECT_TRUE(service_->GetExtensionById(page_action, false)); 4050 EXPECT_TRUE(service_->GetExtensionById(page_action, false));
4049 ExtensionPrefs* prefs = service_->extension_prefs(); 4051 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
4050 ASSERT_TRUE(!prefs->IsExternalExtensionAcknowledged(good_crx)); 4052 ASSERT_TRUE(!prefs->IsExternalExtensionAcknowledged(good_crx));
4051 ASSERT_TRUE(prefs->IsExternalExtensionAcknowledged(page_action)); 4053 ASSERT_TRUE(prefs->IsExternalExtensionAcknowledged(page_action));
4052 } 4054 }
4053 4055
4054 #if !defined(OS_CHROMEOS) 4056 #if !defined(OS_CHROMEOS)
4055 // This tests if default apps are installed correctly. 4057 // This tests if default apps are installed correctly.
4056 TEST_F(ExtensionServiceTest, DefaultAppsInstall) { 4058 TEST_F(ExtensionServiceTest, DefaultAppsInstall) {
4057 InitializeEmptyExtensionService(); 4059 InitializeEmptyExtensionService();
4058 set_extensions_enabled(true); 4060 set_extensions_enabled(true);
4059 4061
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
4245 base::RunLoop().RunUntilIdle(); 4247 base::RunLoop().RunUntilIdle();
4246 4248
4247 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 4249 EXPECT_EQ(1u, registry_->enabled_extensions().size());
4248 EXPECT_EQ(0u, registry_->disabled_extensions().size()); 4250 EXPECT_EQ(0u, registry_->disabled_extensions().size());
4249 4251
4250 service_->ReloadExtension(extension_id); 4252 service_->ReloadExtension(extension_id);
4251 4253
4252 // Extension should be disabled now, waiting to be reloaded. 4254 // Extension should be disabled now, waiting to be reloaded.
4253 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 4255 EXPECT_EQ(0u, registry_->enabled_extensions().size());
4254 EXPECT_EQ(1u, registry_->disabled_extensions().size()); 4256 EXPECT_EQ(1u, registry_->disabled_extensions().size());
4255 EXPECT_EQ(Extension::DISABLE_RELOAD, 4257 EXPECT_EQ(
4256 service_->extension_prefs()->GetDisableReasons(extension_id)); 4258 Extension::DISABLE_RELOAD,
4259 ExtensionPrefs::Get(profile_.get())->GetDisableReasons(extension_id));
4257 4260
4258 // Reloading again should not crash. 4261 // Reloading again should not crash.
4259 service_->ReloadExtension(extension_id); 4262 service_->ReloadExtension(extension_id);
4260 4263
4261 // Finish reloading 4264 // Finish reloading
4262 base::RunLoop().RunUntilIdle(); 4265 base::RunLoop().RunUntilIdle();
4263 4266
4264 // Extension should be enabled again. 4267 // Extension should be enabled again.
4265 EXPECT_EQ(1u, registry_->enabled_extensions().size()); 4268 EXPECT_EQ(1u, registry_->enabled_extensions().size());
4266 EXPECT_EQ(0u, registry_->disabled_extensions().size()); 4269 EXPECT_EQ(0u, registry_->disabled_extensions().size());
(...skipping 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after
5799 { 5802 {
5800 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData( 5803 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData(
5801 syncer::APPS); 5804 syncer::APPS);
5802 ASSERT_EQ(list.size(), 1U); 5805 ASSERT_EQ(list.size(), 1U);
5803 5806
5804 extensions::AppSyncData app_sync_data(list[0]); 5807 extensions::AppSyncData app_sync_data(list[0]);
5805 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal())); 5808 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal()));
5806 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); 5809 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal()));
5807 } 5810 }
5808 5811
5809 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 5812 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
5810 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); 5813 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter());
5811 { 5814 {
5812 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData( 5815 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData(
5813 syncer::APPS); 5816 syncer::APPS);
5814 ASSERT_EQ(list.size(), 1U); 5817 ASSERT_EQ(list.size(), 1U);
5815 5818
5816 extensions::AppSyncData app_sync_data(list[0]); 5819 extensions::AppSyncData app_sync_data(list[0]);
5817 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); 5820 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal()));
5818 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); 5821 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal()));
5819 } 5822 }
(...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after
6887 base::RunLoop().RunUntilIdle(); 6890 base::RunLoop().RunUntilIdle();
6888 6891
6889 // Extension was installed but not loaded. 6892 // Extension was installed but not loaded.
6890 EXPECT_TRUE(notifications.CheckNotifications( 6893 EXPECT_TRUE(notifications.CheckNotifications(
6891 chrome::NOTIFICATION_EXTENSION_INSTALLED)); 6894 chrome::NOTIFICATION_EXTENSION_INSTALLED));
6892 EXPECT_TRUE(service_->GetInstalledExtension(id)); 6895 EXPECT_TRUE(service_->GetInstalledExtension(id));
6893 6896
6894 EXPECT_FALSE(registry_->enabled_extensions().Contains(id)); 6897 EXPECT_FALSE(registry_->enabled_extensions().Contains(id));
6895 EXPECT_TRUE(registry_->blacklisted_extensions().Contains(id)); 6898 EXPECT_TRUE(registry_->blacklisted_extensions().Contains(id));
6896 6899
6897 EXPECT_TRUE(service_->extension_prefs()->IsExtensionBlacklisted(id)); 6900 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())->IsExtensionBlacklisted(id));
6898 EXPECT_TRUE( 6901 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())
6899 service_->extension_prefs()->IsBlacklistedExtensionAcknowledged(id)); 6902 ->IsBlacklistedExtensionAcknowledged(id));
6900 } 6903 }
6901 6904
6902 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) { 6905 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) {
6903 // A profile with 3 extensions installed: good0, good1, and good2. 6906 // A profile with 3 extensions installed: good0, good1, and good2.
6904 InitializeGoodInstalledExtensionService(); 6907 InitializeGoodInstalledExtensionService();
6905 6908
6906 // Initializing shouldn't disable any extensions if none are known to be 6909 // Initializing shouldn't disable any extensions if none are known to be
6907 // disabled. 6910 // disabled.
6908 service_->Init(); 6911 service_->Init();
6909 6912
6910 extensions::ExtensionIdSet expected_extensions; 6913 extensions::ExtensionIdSet expected_extensions;
6911 expected_extensions.insert(good0); 6914 expected_extensions.insert(good0);
6912 expected_extensions.insert(good1); 6915 expected_extensions.insert(good1);
6913 expected_extensions.insert(good2); 6916 expected_extensions.insert(good2);
6914 6917
6915 extensions::ExtensionIdSet expected_disabled_extensions; 6918 extensions::ExtensionIdSet expected_disabled_extensions;
6916 6919
6917 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs()); 6920 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs());
6918 EXPECT_EQ(expected_disabled_extensions, 6921 EXPECT_EQ(expected_disabled_extensions,
6919 registry_->disabled_extensions().GetIDs()); 6922 registry_->disabled_extensions().GetIDs());
6920 } 6923 }
6921 6924
6922 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledWithSideEnable) { 6925 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledWithSideEnable) {
6923 // A profile with 3 extensions installed: good0, good1, and good2. 6926 // A profile with 3 extensions installed: good0, good1, and good2.
6924 InitializeGoodInstalledExtensionService(); 6927 InitializeGoodInstalledExtensionService();
6925 6928
6926 ExtensionPrefs* extension_prefs = service_->extension_prefs(); 6929 ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(profile_.get());
6927 6930
6928 // Disable good1. 6931 // Disable good1.
6929 extension_prefs->SetExtensionState(good1, Extension::DISABLED); 6932 extension_prefs->SetExtensionState(good1, Extension::DISABLED);
6930 6933
6931 // Mark both good1 and good2 as "known_disabled" (effectively making good2 6934 // Mark both good1 and good2 as "known_disabled" (effectively making good2
6932 // look as if it had been side-enabled). 6935 // look as if it had been side-enabled).
6933 extensions::ExtensionIdSet known_disabled; 6936 extensions::ExtensionIdSet known_disabled;
6934 known_disabled.insert(good1); 6937 known_disabled.insert(good1);
6935 known_disabled.insert(good2); 6938 known_disabled.insert(good2);
6936 extension_prefs->SetKnownDisabled(known_disabled); 6939 extension_prefs->SetKnownDisabled(known_disabled);
(...skipping 17 matching lines...) Expand all
6954 // ReconcileKnownDisabled(). 6957 // ReconcileKnownDisabled().
6955 service_->EnableExtension(good2); 6958 service_->EnableExtension(good2);
6956 service_->ReconcileKnownDisabled(); 6959 service_->ReconcileKnownDisabled();
6957 expected_extensions.insert(good2); 6960 expected_extensions.insert(good2);
6958 expected_disabled_extensions.erase(good2); 6961 expected_disabled_extensions.erase(good2);
6959 6962
6960 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs()); 6963 EXPECT_EQ(expected_extensions, registry_->enabled_extensions().GetIDs());
6961 EXPECT_EQ(expected_disabled_extensions, 6964 EXPECT_EQ(expected_disabled_extensions,
6962 registry_->disabled_extensions().GetIDs()); 6965 registry_->disabled_extensions().GetIDs());
6963 } 6966 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/extensions/extension_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698