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

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: additional cleanup 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 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 596
597 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() { 597 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() {
598 ExtensionServiceInitParams params = CreateDefaultInitParams(); 598 ExtensionServiceInitParams params = CreateDefaultInitParams();
599 params.autoupdate_enabled = true; 599 params.autoupdate_enabled = true;
600 InitializeExtensionService(params); 600 InitializeExtensionService(params);
601 service_->updater()->Start(); 601 service_->updater()->Start();
602 } 602 }
603 603
604 void ExtensionServiceTestBase::InitializeExtensionSyncService() { 604 void ExtensionServiceTestBase::InitializeExtensionSyncService() {
605 extension_sync_service_.reset(new ExtensionSyncService( 605 extension_sync_service_.reset(new ExtensionSyncService(
606 profile_.get(), service_->extension_prefs(), service_)); 606 profile_.get(), ExtensionPrefs::Get(profile_.get()), service_));
607 } 607 }
608 608
609 // static 609 // static
610 void ExtensionServiceTestBase::SetUpTestCase() { 610 void ExtensionServiceTestBase::SetUpTestCase() {
611 ExtensionErrorReporter::Init(false); // no noisy errors 611 ExtensionErrorReporter::Init(false); // no noisy errors
612 } 612 }
613 613
614 void ExtensionServiceTestBase::SetUp() { 614 void ExtensionServiceTestBase::SetUp() {
615 ExtensionErrorReporter::GetInstance()->ClearErrors(); 615 ExtensionErrorReporter::GetInstance()->ClearErrors();
616 } 616 }
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after
1561 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII( 1561 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
1562 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0"))); 1562 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
1563 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1563 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1564 "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0"))); 1564 "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0")));
1565 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1565 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1566 "hpiknbiabeeppbpihjehijgoemciehgk/2"))); 1566 "hpiknbiabeeppbpihjehijgoemciehgk/2")));
1567 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII( 1567 EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
1568 "hpiknbiabeeppbpihjehijgoemciehgk/3"))); 1568 "hpiknbiabeeppbpihjehijgoemciehgk/3")));
1569 1569
1570 // Make sure update information got deleted. 1570 // Make sure update information got deleted.
1571 ExtensionPrefs* prefs = service_->extension_prefs(); 1571 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
1572 EXPECT_FALSE( 1572 EXPECT_FALSE(
1573 prefs->GetDelayedInstallInfo("bjafgdebaacbbbecmhlhpofkepfkgcpa")); 1573 prefs->GetDelayedInstallInfo("bjafgdebaacbbbecmhlhpofkepfkgcpa"));
1574 } 1574 }
1575 1575
1576 // Test various cases for delayed install because of missing imports. 1576 // Test various cases for delayed install because of missing imports.
1577 TEST_F(ExtensionServiceTest, PendingImports) { 1577 TEST_F(ExtensionServiceTest, PendingImports) {
1578 InitPluginService(); 1578 InitPluginService();
1579 1579
1580 base::FilePath source_install_dir = data_dir_ 1580 base::FilePath source_install_dir = data_dir_
1581 .AppendASCII("pending_updates_with_imports") 1581 .AppendASCII("pending_updates_with_imports")
(...skipping 13 matching lines...) Expand all
1595 1595
1596 // These extensions are used by the extensions we test below, they must be 1596 // These extensions are used by the extensions we test below, they must be
1597 // installed. 1597 // installed.
1598 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1598 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1599 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0"))); 1599 "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
1600 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII( 1600 EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
1601 "hpiknbiabeeppbpihjehijgoemciehgk/2"))); 1601 "hpiknbiabeeppbpihjehijgoemciehgk/2")));
1602 1602
1603 // Each of these extensions should have been rejected because of dependencies 1603 // Each of these extensions should have been rejected because of dependencies
1604 // that cannot be satisfied. 1604 // that cannot be satisfied.
1605 ExtensionPrefs* prefs = service_->extension_prefs(); 1605 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
1606 EXPECT_FALSE( 1606 EXPECT_FALSE(
1607 prefs->GetDelayedInstallInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 1607 prefs->GetDelayedInstallInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
1608 EXPECT_FALSE( 1608 EXPECT_FALSE(
1609 prefs->GetInstalledExtensionInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 1609 prefs->GetInstalledExtensionInfo("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
1610 EXPECT_FALSE( 1610 EXPECT_FALSE(
1611 prefs->GetDelayedInstallInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")); 1611 prefs->GetDelayedInstallInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
1612 EXPECT_FALSE( 1612 EXPECT_FALSE(
1613 prefs->GetInstalledExtensionInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")); 1613 prefs->GetInstalledExtensionInfo("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
1614 EXPECT_FALSE( 1614 EXPECT_FALSE(
1615 prefs->GetDelayedInstallInfo("cccccccccccccccccccccccccccccccc")); 1615 prefs->GetDelayedInstallInfo("cccccccccccccccccccccccccccccccc"));
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
2013 InitializeEmptyExtensionService(); 2013 InitializeEmptyExtensionService();
2014 base::FilePath path = data_dir_ 2014 base::FilePath path = data_dir_
2015 .AppendASCII("permissions"); 2015 .AppendASCII("permissions");
2016 2016
2017 base::FilePath pem_path = path.AppendASCII("unknown.pem"); 2017 base::FilePath pem_path = path.AppendASCII("unknown.pem");
2018 path = path.AppendASCII("unknown"); 2018 path = path.AppendASCII("unknown");
2019 2019
2020 ASSERT_TRUE(base::PathExists(pem_path)); 2020 ASSERT_TRUE(base::PathExists(pem_path));
2021 ASSERT_TRUE(base::PathExists(path)); 2021 ASSERT_TRUE(base::PathExists(path));
2022 2022
2023 ExtensionPrefs* prefs = service_->extension_prefs(); 2023 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2024 2024
2025 APIPermissionSet expected_api_perms; 2025 APIPermissionSet expected_api_perms;
2026 URLPatternSet expected_host_perms; 2026 URLPatternSet expected_host_perms;
2027 2027
2028 // Make sure there aren't any granted permissions before the 2028 // Make sure there aren't any granted permissions before the
2029 // extension is installed. 2029 // extension is installed.
2030 scoped_refptr<PermissionSet> known_perms( 2030 scoped_refptr<PermissionSet> known_perms(
2031 prefs->GetGrantedPermissions(permissions_crx)); 2031 prefs->GetGrantedPermissions(permissions_crx));
2032 EXPECT_FALSE(known_perms.get()); 2032 EXPECT_FALSE(known_perms.get());
2033 2033
(...skipping 27 matching lines...) Expand all
2061 InitializeEmptyExtensionService(); 2061 InitializeEmptyExtensionService();
2062 base::FilePath path = data_dir_ 2062 base::FilePath path = data_dir_
2063 .AppendASCII("permissions"); 2063 .AppendASCII("permissions");
2064 2064
2065 base::FilePath pem_path = path.AppendASCII("unknown.pem"); 2065 base::FilePath pem_path = path.AppendASCII("unknown.pem");
2066 path = path.AppendASCII("unknown"); 2066 path = path.AppendASCII("unknown");
2067 2067
2068 ASSERT_TRUE(base::PathExists(pem_path)); 2068 ASSERT_TRUE(base::PathExists(pem_path));
2069 ASSERT_TRUE(base::PathExists(path)); 2069 ASSERT_TRUE(base::PathExists(path));
2070 2070
2071 ExtensionPrefs* prefs = service_->extension_prefs(); 2071 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2072 2072
2073 APIPermissionSet expected_api_perms; 2073 APIPermissionSet expected_api_perms;
2074 URLPatternSet expected_host_perms; 2074 URLPatternSet expected_host_perms;
2075 2075
2076 // Make sure there aren't any granted permissions before the 2076 // Make sure there aren't any granted permissions before the
2077 // extension is installed. 2077 // extension is installed.
2078 scoped_refptr<PermissionSet> known_perms( 2078 scoped_refptr<PermissionSet> known_perms(
2079 prefs->GetGrantedPermissions(permissions_crx)); 2079 prefs->GetGrantedPermissions(permissions_crx));
2080 EXPECT_FALSE(known_perms.get()); 2080 EXPECT_FALSE(known_perms.get());
2081 2081
(...skipping 21 matching lines...) Expand all
2103 // since they don't support plugins. 2103 // since they don't support plugins.
2104 TEST_F(ExtensionServiceTest, GrantedFullAccessPermissions) { 2104 TEST_F(ExtensionServiceTest, GrantedFullAccessPermissions) {
2105 InitPluginService(); 2105 InitPluginService();
2106 2106
2107 InitializeEmptyExtensionService(); 2107 InitializeEmptyExtensionService();
2108 2108
2109 ASSERT_TRUE(base::PathExists(good1_path())); 2109 ASSERT_TRUE(base::PathExists(good1_path()));
2110 const Extension* extension = PackAndInstallCRX(good1_path(), INSTALL_NEW); 2110 const Extension* extension = PackAndInstallCRX(good1_path(), INSTALL_NEW);
2111 EXPECT_EQ(0u, GetErrors().size()); 2111 EXPECT_EQ(0u, GetErrors().size());
2112 EXPECT_EQ(1u, service_->extensions()->size()); 2112 EXPECT_EQ(1u, service_->extensions()->size());
2113 ExtensionPrefs* prefs = service_->extension_prefs(); 2113 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2114 2114
2115 scoped_refptr<PermissionSet> permissions( 2115 scoped_refptr<PermissionSet> permissions(
2116 prefs->GetGrantedPermissions(extension->id())); 2116 prefs->GetGrantedPermissions(extension->id()));
2117 EXPECT_FALSE(permissions->IsEmpty()); 2117 EXPECT_FALSE(permissions->IsEmpty());
2118 EXPECT_TRUE(permissions->HasEffectiveFullAccess()); 2118 EXPECT_TRUE(permissions->HasEffectiveFullAccess());
2119 EXPECT_FALSE(permissions->apis().empty()); 2119 EXPECT_FALSE(permissions->apis().empty());
2120 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin)); 2120 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin));
2121 2121
2122 // Full access implies full host access too... 2122 // Full access implies full host access too...
2123 EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts()); 2123 EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts());
(...skipping 11 matching lines...) Expand all
2135 .AppendASCII("unknown"); 2135 .AppendASCII("unknown");
2136 2136
2137 ASSERT_TRUE(base::PathExists(path)); 2137 ASSERT_TRUE(base::PathExists(path));
2138 2138
2139 const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW); 2139 const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW);
2140 2140
2141 EXPECT_EQ(0u, GetErrors().size()); 2141 EXPECT_EQ(0u, GetErrors().size());
2142 EXPECT_EQ(1u, service_->extensions()->size()); 2142 EXPECT_EQ(1u, service_->extensions()->size());
2143 std::string extension_id = extension->id(); 2143 std::string extension_id = extension->id();
2144 2144
2145 ExtensionPrefs* prefs = service_->extension_prefs(); 2145 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
2146 2146
2147 APIPermissionSet expected_api_permissions; 2147 APIPermissionSet expected_api_permissions;
2148 URLPatternSet expected_host_permissions; 2148 URLPatternSet expected_host_permissions;
2149 2149
2150 expected_api_permissions.insert(APIPermission::kTab); 2150 expected_api_permissions.insert(APIPermission::kTab);
2151 AddPattern(&expected_host_permissions, "http://*.google.com/*"); 2151 AddPattern(&expected_host_permissions, "http://*.google.com/*");
2152 AddPattern(&expected_host_permissions, "https://*.google.com/*"); 2152 AddPattern(&expected_host_permissions, "https://*.google.com/*");
2153 AddPattern(&expected_host_permissions, "http://*.google.com.hk/*"); 2153 AddPattern(&expected_host_permissions, "http://*.google.com.hk/*");
2154 AddPattern(&expected_host_permissions, "http://www.example.com/*"); 2154 AddPattern(&expected_host_permissions, "http://www.example.com/*");
2155 2155
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
2631 // Tests that file access is OFF by default. 2631 // Tests that file access is OFF by default.
2632 TEST_F(ExtensionServiceTest, DefaultFileAccess) { 2632 TEST_F(ExtensionServiceTest, DefaultFileAccess) {
2633 InitializeEmptyExtensionService(); 2633 InitializeEmptyExtensionService();
2634 const Extension* extension = 2634 const Extension* extension =
2635 PackAndInstallCRX(data_dir_ 2635 PackAndInstallCRX(data_dir_
2636 .AppendASCII("permissions") 2636 .AppendASCII("permissions")
2637 .AppendASCII("files"), 2637 .AppendASCII("files"),
2638 INSTALL_NEW); 2638 INSTALL_NEW);
2639 EXPECT_EQ(0u, GetErrors().size()); 2639 EXPECT_EQ(0u, GetErrors().size());
2640 EXPECT_EQ(1u, service_->extensions()->size()); 2640 EXPECT_EQ(1u, service_->extensions()->size());
2641 EXPECT_FALSE(service_->extension_prefs()->AllowFileAccess(extension->id())); 2641 EXPECT_FALSE(
2642 ExtensionPrefs::Get(profile_.get())->AllowFileAccess(extension->id()));
2642 } 2643 }
2643 2644
2644 TEST_F(ExtensionServiceTest, UpdateApps) { 2645 TEST_F(ExtensionServiceTest, UpdateApps) {
2645 InitializeEmptyExtensionService(); 2646 InitializeEmptyExtensionService();
2646 base::FilePath extensions_path = data_dir_.AppendASCII("app_update"); 2647 base::FilePath extensions_path = data_dir_.AppendASCII("app_update");
2647 2648
2648 // First install v1 of a hosted app. 2649 // First install v1 of a hosted app.
2649 const Extension* extension = 2650 const Extension* extension =
2650 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW); 2651 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW);
2651 ASSERT_EQ(1u, service_->extensions()->size()); 2652 ASSERT_EQ(1u, service_->extensions()->size());
2652 std::string id = extension->id(); 2653 std::string id = extension->id();
2653 ASSERT_EQ(std::string("1"), extension->version()->GetString()); 2654 ASSERT_EQ(std::string("1"), extension->version()->GetString());
2654 2655
2655 // Now try updating to v2. 2656 // Now try updating to v2.
2656 UpdateExtension(id, 2657 UpdateExtension(id,
2657 extensions_path.AppendASCII("v2.crx"), 2658 extensions_path.AppendASCII("v2.crx"),
2658 ENABLED); 2659 ENABLED);
2659 ASSERT_EQ(std::string("2"), 2660 ASSERT_EQ(std::string("2"),
2660 service_->GetExtensionById(id, false)->version()->GetString()); 2661 service_->GetExtensionById(id, false)->version()->GetString());
2661 } 2662 }
2662 2663
2663 // Verifies that the NTP page and launch ordinals are kept when updating apps. 2664 // Verifies that the NTP page and launch ordinals are kept when updating apps.
2664 TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) { 2665 TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) {
2665 InitializeEmptyExtensionService(); 2666 InitializeEmptyExtensionService();
2666 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 2667 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
2667 base::FilePath extensions_path = data_dir_.AppendASCII("app_update"); 2668 base::FilePath extensions_path = data_dir_.AppendASCII("app_update");
2668 2669
2669 // First install v1 of a hosted app. 2670 // First install v1 of a hosted app.
2670 const Extension* extension = 2671 const Extension* extension =
2671 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW); 2672 InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW);
2672 ASSERT_EQ(1u, service_->extensions()->size()); 2673 ASSERT_EQ(1u, service_->extensions()->size());
2673 std::string id = extension->id(); 2674 std::string id = extension->id();
2674 ASSERT_EQ(std::string("1"), extension->version()->GetString()); 2675 ASSERT_EQ(std::string("1"), extension->version()->GetString());
2675 2676
2676 // Modify the ordinals so we can distinguish them from the defaults. 2677 // Modify the ordinals so we can distinguish them from the defaults.
(...skipping 15 matching lines...) Expand all
2692 ASSERT_TRUE(new_launch_ordinal.Equals(sorting->GetAppLaunchOrdinal(id))); 2693 ASSERT_TRUE(new_launch_ordinal.Equals(sorting->GetAppLaunchOrdinal(id)));
2693 } 2694 }
2694 2695
2695 // Ensures that the CWS has properly initialized ordinals. 2696 // Ensures that the CWS has properly initialized ordinals.
2696 TEST_F(ExtensionServiceTest, EnsureCWSOrdinalsInitialized) { 2697 TEST_F(ExtensionServiceTest, EnsureCWSOrdinalsInitialized) {
2697 InitializeEmptyExtensionService(); 2698 InitializeEmptyExtensionService();
2698 service_->component_loader()->Add( 2699 service_->component_loader()->Add(
2699 IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store"))); 2700 IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store")));
2700 service_->Init(); 2701 service_->Init();
2701 2702
2702 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 2703 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
2703 EXPECT_TRUE( 2704 EXPECT_TRUE(
2704 sorting->GetPageOrdinal(extension_misc::kWebStoreAppId).IsValid()); 2705 sorting->GetPageOrdinal(extension_misc::kWebStoreAppId).IsValid());
2705 EXPECT_TRUE( 2706 EXPECT_TRUE(
2706 sorting->GetAppLaunchOrdinal(extension_misc::kWebStoreAppId).IsValid()); 2707 sorting->GetAppLaunchOrdinal(extension_misc::kWebStoreAppId).IsValid());
2707 } 2708 }
2708 2709
2709 TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) { 2710 TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) {
2710 InitializeEmptyExtensionService(); 2711 InitializeEmptyExtensionService();
2711 EXPECT_TRUE(service_->extensions()->is_empty()); 2712 EXPECT_TRUE(service_->extensions()->is_empty());
2712 2713
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2972 base::FilePath path = data_dir_.AppendASCII("good.crx"); 2973 base::FilePath path = data_dir_.AppendASCII("good.crx");
2973 2974
2974 const Extension* good = InstallCRX(path, INSTALL_NEW); 2975 const Extension* good = InstallCRX(path, INSTALL_NEW);
2975 ASSERT_EQ("1.0.0.0", good->VersionString()); 2976 ASSERT_EQ("1.0.0.0", good->VersionString());
2976 ASSERT_EQ(good_crx, good->id()); 2977 ASSERT_EQ(good_crx, good->id());
2977 2978
2978 // Disable it and allow it to run in incognito. These settings should carry 2979 // Disable it and allow it to run in incognito. These settings should carry
2979 // over to the updated version. 2980 // over to the updated version.
2980 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION); 2981 service_->DisableExtension(good->id(), Extension::DISABLE_USER_ACTION);
2981 extensions::util::SetIsIncognitoEnabled(good->id(), profile_.get(), true); 2982 extensions::util::SetIsIncognitoEnabled(good->id(), profile_.get(), true);
2982 service_->extension_prefs()->SetDidExtensionEscalatePermissions(good, true); 2983 ExtensionPrefs::Get(profile_.get())->
2984 SetDidExtensionEscalatePermissions(good, true);
2983 2985
2984 path = data_dir_.AppendASCII("good2.crx"); 2986 path = data_dir_.AppendASCII("good2.crx");
2985 UpdateExtension(good_crx, path, INSTALLED); 2987 UpdateExtension(good_crx, path, INSTALLED);
2986 ASSERT_EQ(1u, service_->disabled_extensions()->size());\ 2988 ASSERT_EQ(1u, service_->disabled_extensions()->size());\
2987 const Extension* good2 = service_->GetExtensionById(good_crx, true); 2989 const Extension* good2 = service_->GetExtensionById(good_crx, true);
2988 ASSERT_EQ("1.0.0.1", good2->version()->GetString()); 2990 ASSERT_EQ("1.0.0.1", good2->version()->GetString());
2989 EXPECT_TRUE(extensions::util::IsIncognitoEnabled( 2991 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(
2990 good2->id(), profile_.get())); 2992 good2->id(), profile_.get()));
2991 EXPECT_TRUE(service_->extension_prefs()->DidExtensionEscalatePermissions( 2993 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())->
2992 good2->id())); 2994 DidExtensionEscalatePermissions(good2->id()));
2993 } 2995 }
2994 2996
2995 // Tests that updating preserves extension location. 2997 // Tests that updating preserves extension location.
2996 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { 2998 TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) {
2997 InitializeEmptyExtensionService(); 2999 InitializeEmptyExtensionService();
2998 3000
2999 base::FilePath path = data_dir_.AppendASCII("good.crx"); 3001 base::FilePath path = data_dir_.AppendASCII("good.crx");
3000 3002
3001 const Extension* good = 3003 const Extension* good =
3002 InstallCRXWithLocation(path, Manifest::EXTERNAL_PREF, INSTALL_NEW); 3004 InstallCRXWithLocation(path, Manifest::EXTERNAL_PREF, INSTALL_NEW);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
3105 base::RunLoop().RunUntilIdle(); 3107 base::RunLoop().RunUntilIdle();
3106 EXPECT_EQ(0u, GetErrors().size()); 3108 EXPECT_EQ(0u, GetErrors().size());
3107 EXPECT_EQ(2u, loaded_.size()); 3109 EXPECT_EQ(2u, loaded_.size());
3108 EXPECT_EQ(2u, service_->extensions()->size()); 3110 EXPECT_EQ(2u, service_->extensions()->size());
3109 EXPECT_EQ(0u, service_->disabled_extensions()->size()); 3111 EXPECT_EQ(0u, service_->disabled_extensions()->size());
3110 EXPECT_TRUE(service_->extensions()->Contains(good1)); 3112 EXPECT_TRUE(service_->extensions()->Contains(good1));
3111 EXPECT_TRUE(service_->extensions()->Contains(good2)); 3113 EXPECT_TRUE(service_->extensions()->Contains(good2));
3112 3114
3113 // Make sure the granted permissions have been setup. 3115 // Make sure the granted permissions have been setup.
3114 scoped_refptr<PermissionSet> permissions( 3116 scoped_refptr<PermissionSet> permissions(
3115 service_->extension_prefs()->GetGrantedPermissions(good1)); 3117 ExtensionPrefs::Get(profile_.get())->GetGrantedPermissions(good1));
3116 EXPECT_FALSE(permissions->IsEmpty()); 3118 EXPECT_FALSE(permissions->IsEmpty());
3117 EXPECT_TRUE(permissions->HasEffectiveFullAccess()); 3119 EXPECT_TRUE(permissions->HasEffectiveFullAccess());
3118 EXPECT_FALSE(permissions->apis().empty()); 3120 EXPECT_FALSE(permissions->apis().empty());
3119 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin)); 3121 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kPlugin));
3120 3122
3121 // We should be able to reload the extension without getting another prompt. 3123 // We should be able to reload the extension without getting another prompt.
3122 loaded_.clear(); 3124 loaded_.clear();
3123 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 3125 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
3124 switches::kAppsGalleryInstallAutoConfirmForTests, 3126 switches::kAppsGalleryInstallAutoConfirmForTests,
3125 "cancel"); 3127 "cancel");
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3201 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3203 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3202 3204
3203 base::FilePath path = data_dir_.AppendASCII("theme.crx"); 3205 base::FilePath path = data_dir_.AppendASCII("theme.crx");
3204 UpdateExtension(theme_crx, path, ENABLED); 3206 UpdateExtension(theme_crx, path, ENABLED);
3205 3207
3206 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3208 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3207 3209
3208 const Extension* extension = service_->GetExtensionById(theme_crx, true); 3210 const Extension* extension = service_->GetExtensionById(theme_crx, true);
3209 ASSERT_TRUE(extension); 3211 ASSERT_TRUE(extension);
3210 3212
3211 EXPECT_FALSE( 3213 EXPECT_FALSE(ExtensionPrefs::Get(profile_.get())->
3212 service_->extension_prefs()->IsExtensionDisabled(extension->id())); 3214 IsExtensionDisabled(extension->id()));
3213 EXPECT_TRUE(service_->IsExtensionEnabled(theme_crx)); 3215 EXPECT_TRUE(service_->IsExtensionEnabled(theme_crx));
3214 } 3216 }
3215 3217
3216 #if defined(OS_CHROMEOS) 3218 #if defined(OS_CHROMEOS)
3217 // Always fails on ChromeOS: http://crbug.com/79737 3219 // Always fails on ChromeOS: http://crbug.com/79737
3218 #define MAYBE_UpdatePendingExternalCrx DISABLED_UpdatePendingExternalCrx 3220 #define MAYBE_UpdatePendingExternalCrx DISABLED_UpdatePendingExternalCrx
3219 #else 3221 #else
3220 #define MAYBE_UpdatePendingExternalCrx UpdatePendingExternalCrx 3222 #define MAYBE_UpdatePendingExternalCrx UpdatePendingExternalCrx
3221 #endif 3223 #endif
3222 // Test updating a pending CRX as if the source is an external extension 3224 // Test updating a pending CRX as if the source is an external extension
3223 // with an update URL. In this case we don't know if the CRX is a theme 3225 // with an update URL. In this case we don't know if the CRX is a theme
3224 // or not. 3226 // or not.
3225 TEST_F(ExtensionServiceTest, MAYBE_UpdatePendingExternalCrx) { 3227 TEST_F(ExtensionServiceTest, MAYBE_UpdatePendingExternalCrx) {
3226 InitializeEmptyExtensionService(); 3228 InitializeEmptyExtensionService();
3227 EXPECT_TRUE(service_->pending_extension_manager()->AddFromExternalUpdateUrl( 3229 EXPECT_TRUE(service_->pending_extension_manager()->AddFromExternalUpdateUrl(
3228 theme_crx, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS, 3230 theme_crx, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, Extension::NO_FLAGS,
3229 false)); 3231 false));
3230 3232
3231 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3233 EXPECT_TRUE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3232 3234
3233 base::FilePath path = data_dir_.AppendASCII("theme.crx"); 3235 base::FilePath path = data_dir_.AppendASCII("theme.crx");
3234 UpdateExtension(theme_crx, path, ENABLED); 3236 UpdateExtension(theme_crx, path, ENABLED);
3235 3237
3236 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx)); 3238 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(theme_crx));
3237 3239
3238 const Extension* extension = service_->GetExtensionById(theme_crx, true); 3240 const Extension* extension = service_->GetExtensionById(theme_crx, true);
3239 ASSERT_TRUE(extension); 3241 ASSERT_TRUE(extension);
3240 3242
3241 EXPECT_FALSE( 3243 EXPECT_FALSE(ExtensionPrefs::Get(profile_.get())->
3242 service_->extension_prefs()->IsExtensionDisabled(extension->id())); 3244 IsExtensionDisabled(extension->id()));
3243 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id())); 3245 EXPECT_TRUE(service_->IsExtensionEnabled(extension->id()));
3244 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(extension->id(), 3246 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(extension->id(),
3245 profile_.get())); 3247 profile_.get()));
3246 } 3248 }
3247 3249
3248 // Test updating a pending CRX as if the source is an external extension 3250 // Test updating a pending CRX as if the source is an external extension
3249 // with an update URL. The external update should overwrite a sync update, 3251 // with an update URL. The external update should overwrite a sync update,
3250 // but a sync update should not overwrite a non-sync update. 3252 // but a sync update should not overwrite a non-sync update.
3251 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) { 3253 TEST_F(ExtensionServiceTest, UpdatePendingExternalCrxWinsOverSync) {
3252 InitializeEmptyExtensionService(); 3254 InitializeEmptyExtensionService();
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
3467 test_blacklist.Attach(service_->blacklist_); 3469 test_blacklist.Attach(service_->blacklist_);
3468 3470
3469 base::FilePath path = data_dir_.AppendASCII("good.crx"); 3471 base::FilePath path = data_dir_.AppendASCII("good.crx");
3470 3472
3471 const Extension* good = InstallCRX(path, INSTALL_NEW); 3473 const Extension* good = InstallCRX(path, INSTALL_NEW);
3472 EXPECT_EQ(good_crx, good->id()); 3474 EXPECT_EQ(good_crx, good->id());
3473 UpdateExtension(good_crx, path, FAILED_SILENTLY); 3475 UpdateExtension(good_crx, path, FAILED_SILENTLY);
3474 EXPECT_EQ(1u, service_->extensions()->size()); 3476 EXPECT_EQ(1u, service_->extensions()->size());
3475 3477
3476 base::ListValue whitelist; 3478 base::ListValue whitelist;
3477 PrefService* prefs = service_->extension_prefs()->pref_service(); 3479 PrefService* prefs = ExtensionPrefs::Get(profile_.get())->pref_service();
3478 whitelist.Append(new base::StringValue(good_crx)); 3480 whitelist.Append(new base::StringValue(good_crx));
3479 prefs->Set(extensions::pref_names::kInstallAllowList, whitelist); 3481 prefs->Set(extensions::pref_names::kInstallAllowList, whitelist);
3480 3482
3481 test_blacklist.SetBlacklistState( 3483 test_blacklist.SetBlacklistState(
3482 good_crx, extensions::BLACKLISTED_MALWARE, true); 3484 good_crx, extensions::BLACKLISTED_MALWARE, true);
3483 base::RunLoop().RunUntilIdle(); 3485 base::RunLoop().RunUntilIdle();
3484 3486
3485 // The good_crx is blacklisted and the whitelist doesn't negate it. 3487 // The good_crx is blacklisted and the whitelist doesn't negate it.
3486 ASSERT_TRUE(ValidateBooleanPref(good_crx, "blacklist", true)); 3488 ASSERT_TRUE(ValidateBooleanPref(good_crx, "blacklist", true));
3487 EXPECT_EQ(0u, service_->extensions()->size()); 3489 EXPECT_EQ(0u, service_->extensions()->size());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3519 #endif // defined(ENABLE_BLACKLIST_TESTS) 3521 #endif // defined(ENABLE_BLACKLIST_TESTS)
3520 3522
3521 #if defined(ENABLE_BLACKLIST_TESTS) 3523 #if defined(ENABLE_BLACKLIST_TESTS)
3522 // Tests extensions blacklisted in prefs on startup; one still blacklisted by 3524 // Tests extensions blacklisted in prefs on startup; one still blacklisted by
3523 // safe browsing, the other not. The not-blacklisted one should recover. 3525 // safe browsing, the other not. The not-blacklisted one should recover.
3524 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) { 3526 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) {
3525 extensions::TestBlacklist test_blacklist; 3527 extensions::TestBlacklist test_blacklist;
3526 3528
3527 InitializeGoodInstalledExtensionService(); 3529 InitializeGoodInstalledExtensionService();
3528 test_blacklist.Attach(service_->blacklist_); 3530 test_blacklist.Attach(service_->blacklist_);
3529 service_->extension_prefs()->SetExtensionBlacklisted(good0, true); 3531 ExtensionPrefs::Get(profile_.get())->SetExtensionBlacklisted(good0, true);
3530 service_->extension_prefs()->SetExtensionBlacklisted(good1, true); 3532 ExtensionPrefs::Get(profile_.get())->SetExtensionBlacklisted(good1, true);
3531 3533
3532 test_blacklist.SetBlacklistState( 3534 test_blacklist.SetBlacklistState(
3533 good1, extensions::BLACKLISTED_MALWARE, false); 3535 good1, extensions::BLACKLISTED_MALWARE, false);
3534 3536
3535 service_->Init(); 3537 service_->Init();
3536 3538
3537 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); 3539 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get());
3538 ASSERT_EQ(2u, registry->blacklisted_extensions().size()); 3540 ASSERT_EQ(2u, registry->blacklisted_extensions().size());
3539 ASSERT_EQ(1u, registry->enabled_extensions().size()); 3541 ASSERT_EQ(1u, registry->enabled_extensions().size());
3540 3542
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
4049 content::WindowedNotificationObserver observer( 4051 content::WindowedNotificationObserver observer(
4050 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 4052 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
4051 base::Bind(&WaitForCountNotificationsCallback, &count)); 4053 base::Bind(&WaitForCountNotificationsCallback, &count));
4052 service_->CheckForExternalUpdates(); 4054 service_->CheckForExternalUpdates();
4053 4055
4054 observer.Wait(); 4056 observer.Wait();
4055 4057
4056 ASSERT_EQ(2u, service_->extensions()->size()); 4058 ASSERT_EQ(2u, service_->extensions()->size());
4057 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); 4059 EXPECT_TRUE(service_->GetExtensionById(good_crx, false));
4058 EXPECT_TRUE(service_->GetExtensionById(page_action, false)); 4060 EXPECT_TRUE(service_->GetExtensionById(page_action, false));
4059 ExtensionPrefs* prefs = service_->extension_prefs(); 4061 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
4060 ASSERT_TRUE(!prefs->IsExternalExtensionAcknowledged(good_crx)); 4062 ASSERT_TRUE(!prefs->IsExternalExtensionAcknowledged(good_crx));
4061 ASSERT_TRUE(prefs->IsExternalExtensionAcknowledged(page_action)); 4063 ASSERT_TRUE(prefs->IsExternalExtensionAcknowledged(page_action));
4062 } 4064 }
4063 4065
4064 #if !defined(OS_CHROMEOS) 4066 #if !defined(OS_CHROMEOS)
4065 // This tests if default apps are installed correctly. 4067 // This tests if default apps are installed correctly.
4066 TEST_F(ExtensionServiceTest, DefaultAppsInstall) { 4068 TEST_F(ExtensionServiceTest, DefaultAppsInstall) {
4067 InitializeEmptyExtensionService(); 4069 InitializeEmptyExtensionService();
4068 set_extensions_enabled(true); 4070 set_extensions_enabled(true);
4069 4071
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
4258 base::RunLoop().RunUntilIdle(); 4260 base::RunLoop().RunUntilIdle();
4259 4261
4260 EXPECT_EQ(1u, service_->extensions()->size()); 4262 EXPECT_EQ(1u, service_->extensions()->size());
4261 EXPECT_EQ(0u, service_->disabled_extensions()->size()); 4263 EXPECT_EQ(0u, service_->disabled_extensions()->size());
4262 4264
4263 service_->ReloadExtension(extension_id); 4265 service_->ReloadExtension(extension_id);
4264 4266
4265 // Extension should be disabled now, waiting to be reloaded. 4267 // Extension should be disabled now, waiting to be reloaded.
4266 EXPECT_EQ(0u, service_->extensions()->size()); 4268 EXPECT_EQ(0u, service_->extensions()->size());
4267 EXPECT_EQ(1u, service_->disabled_extensions()->size()); 4269 EXPECT_EQ(1u, service_->disabled_extensions()->size());
4268 EXPECT_EQ(Extension::DISABLE_RELOAD, 4270 EXPECT_EQ(Extension::DISABLE_RELOAD, ExtensionPrefs::Get(profile_.get())->
4269 service_->extension_prefs()->GetDisableReasons(extension_id)); 4271 GetDisableReasons(extension_id));
4270 4272
4271 // Reloading again should not crash. 4273 // Reloading again should not crash.
4272 service_->ReloadExtension(extension_id); 4274 service_->ReloadExtension(extension_id);
4273 4275
4274 // Finish reloading 4276 // Finish reloading
4275 base::RunLoop().RunUntilIdle(); 4277 base::RunLoop().RunUntilIdle();
4276 4278
4277 // Extension should be enabled again. 4279 // Extension should be enabled again.
4278 EXPECT_EQ(1u, service_->extensions()->size()); 4280 EXPECT_EQ(1u, service_->extensions()->size());
4279 EXPECT_EQ(0u, service_->disabled_extensions()->size()); 4281 EXPECT_EQ(0u, service_->disabled_extensions()->size());
(...skipping 1533 matching lines...) Expand 10 before | Expand all | Expand 10 after
5813 { 5815 {
5814 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData( 5816 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData(
5815 syncer::APPS); 5817 syncer::APPS);
5816 ASSERT_EQ(list.size(), 1U); 5818 ASSERT_EQ(list.size(), 1U);
5817 5819
5818 extensions::AppSyncData app_sync_data(list[0]); 5820 extensions::AppSyncData app_sync_data(list[0]);
5819 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal())); 5821 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal()));
5820 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); 5822 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal()));
5821 } 5823 }
5822 5824
5823 AppSorting* sorting = service_->extension_prefs()->app_sorting(); 5825 AppSorting* sorting = ExtensionPrefs::Get(profile_.get())->app_sorting();
5824 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); 5826 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter());
5825 { 5827 {
5826 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData( 5828 syncer::SyncDataList list = extension_sync_service_->GetAllSyncData(
5827 syncer::APPS); 5829 syncer::APPS);
5828 ASSERT_EQ(list.size(), 1U); 5830 ASSERT_EQ(list.size(), 1U);
5829 5831
5830 extensions::AppSyncData app_sync_data(list[0]); 5832 extensions::AppSyncData app_sync_data(list[0]);
5831 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); 5833 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal()));
5832 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); 5834 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal()));
5833 } 5835 }
(...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after
6902 6904
6903 // Extension was installed but not loaded. 6905 // Extension was installed but not loaded.
6904 EXPECT_TRUE(notifications.CheckNotifications( 6906 EXPECT_TRUE(notifications.CheckNotifications(
6905 chrome::NOTIFICATION_EXTENSION_INSTALLED)); 6907 chrome::NOTIFICATION_EXTENSION_INSTALLED));
6906 EXPECT_TRUE(service_->GetInstalledExtension(id)); 6908 EXPECT_TRUE(service_->GetInstalledExtension(id));
6907 6909
6908 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); 6910 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get());
6909 EXPECT_FALSE(registry->enabled_extensions().Contains(id)); 6911 EXPECT_FALSE(registry->enabled_extensions().Contains(id));
6910 EXPECT_TRUE(registry->blacklisted_extensions().Contains(id)); 6912 EXPECT_TRUE(registry->blacklisted_extensions().Contains(id));
6911 6913
6912 EXPECT_TRUE(service_->extension_prefs()->IsExtensionBlacklisted(id)); 6914 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())->IsExtensionBlacklisted(id));
6913 EXPECT_TRUE( 6915 EXPECT_TRUE(ExtensionPrefs::Get(profile_.get())->
6914 service_->extension_prefs()->IsBlacklistedExtensionAcknowledged(id)); 6916 IsBlacklistedExtensionAcknowledged(id));
6915 } 6917 }
6916 6918
6917 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) { 6919 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) {
6918 // A profile with 3 extensions installed: good0, good1, and good2. 6920 // A profile with 3 extensions installed: good0, good1, and good2.
6919 InitializeGoodInstalledExtensionService(); 6921 InitializeGoodInstalledExtensionService();
6920 6922
6921 // Initializing shouldn't disable any extensions if none are known to be 6923 // Initializing shouldn't disable any extensions if none are known to be
6922 // disabled. 6924 // disabled.
6923 service_->Init(); 6925 service_->Init();
6924 6926
6925 extensions::ExtensionIdSet expected_extensions; 6927 extensions::ExtensionIdSet expected_extensions;
6926 expected_extensions.insert(good0); 6928 expected_extensions.insert(good0);
6927 expected_extensions.insert(good1); 6929 expected_extensions.insert(good1);
6928 expected_extensions.insert(good2); 6930 expected_extensions.insert(good2);
6929 6931
6930 extensions::ExtensionIdSet expected_disabled_extensions; 6932 extensions::ExtensionIdSet expected_disabled_extensions;
6931 6933
6932 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); 6934 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs());
6933 EXPECT_EQ(expected_disabled_extensions, 6935 EXPECT_EQ(expected_disabled_extensions,
6934 service_->disabled_extensions()->GetIDs()); 6936 service_->disabled_extensions()->GetIDs());
6935 } 6937 }
6936 6938
6937 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledWithSideEnable) { 6939 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledWithSideEnable) {
6938 // A profile with 3 extensions installed: good0, good1, and good2. 6940 // A profile with 3 extensions installed: good0, good1, and good2.
6939 InitializeGoodInstalledExtensionService(); 6941 InitializeGoodInstalledExtensionService();
6940 6942
6941 ExtensionPrefs* extension_prefs = service_->extension_prefs(); 6943 ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(profile_.get());
6942 6944
6943 // Disable good1. 6945 // Disable good1.
6944 extension_prefs->SetExtensionState(good1, Extension::DISABLED); 6946 extension_prefs->SetExtensionState(good1, Extension::DISABLED);
6945 6947
6946 // Mark both good1 and good2 as "known_disabled" (effectively making good2 6948 // Mark both good1 and good2 as "known_disabled" (effectively making good2
6947 // look as if it had been side-enabled). 6949 // look as if it had been side-enabled).
6948 extensions::ExtensionIdSet known_disabled; 6950 extensions::ExtensionIdSet known_disabled;
6949 known_disabled.insert(good1); 6951 known_disabled.insert(good1);
6950 known_disabled.insert(good2); 6952 known_disabled.insert(good2);
6951 extension_prefs->SetKnownDisabled(known_disabled); 6953 extension_prefs->SetKnownDisabled(known_disabled);
(...skipping 17 matching lines...) Expand all
6969 // ReconcileKnownDisabled(). 6971 // ReconcileKnownDisabled().
6970 service_->EnableExtension(good2); 6972 service_->EnableExtension(good2);
6971 service_->ReconcileKnownDisabled(); 6973 service_->ReconcileKnownDisabled();
6972 expected_extensions.insert(good2); 6974 expected_extensions.insert(good2);
6973 expected_disabled_extensions.erase(good2); 6975 expected_disabled_extensions.erase(good2);
6974 6976
6975 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); 6977 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs());
6976 EXPECT_EQ(expected_disabled_extensions, 6978 EXPECT_EQ(expected_disabled_extensions,
6977 service_->disabled_extensions()->GetIDs()); 6979 service_->disabled_extensions()->GetIDs());
6978 } 6980 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698