OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |