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 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |