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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "chrome/browser/extensions/extension_service.h" | 45 #include "chrome/browser/extensions/extension_service.h" |
46 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 46 #include "chrome/browser/extensions/extension_special_storage_policy.h" |
47 #include "chrome/browser/extensions/extension_sync_data.h" | 47 #include "chrome/browser/extensions/extension_sync_data.h" |
48 #include "chrome/browser/extensions/extension_sync_service.h" | 48 #include "chrome/browser/extensions/extension_sync_service.h" |
49 #include "chrome/browser/extensions/extension_util.h" | 49 #include "chrome/browser/extensions/extension_util.h" |
50 #include "chrome/browser/extensions/external_install_ui.h" | 50 #include "chrome/browser/extensions/external_install_ui.h" |
51 #include "chrome/browser/extensions/external_policy_loader.h" | 51 #include "chrome/browser/extensions/external_policy_loader.h" |
52 #include "chrome/browser/extensions/external_pref_loader.h" | 52 #include "chrome/browser/extensions/external_pref_loader.h" |
53 #include "chrome/browser/extensions/external_provider_impl.h" | 53 #include "chrome/browser/extensions/external_provider_impl.h" |
54 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" | 54 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" |
55 #include "chrome/browser/extensions/install_observer.h" | |
56 #include "chrome/browser/extensions/install_tracker.h" | |
57 #include "chrome/browser/extensions/install_tracker_factory.h" | |
58 #include "chrome/browser/extensions/installed_loader.h" | 55 #include "chrome/browser/extensions/installed_loader.h" |
59 #include "chrome/browser/extensions/pack_extension_job.h" | 56 #include "chrome/browser/extensions/pack_extension_job.h" |
60 #include "chrome/browser/extensions/pending_extension_info.h" | 57 #include "chrome/browser/extensions/pending_extension_info.h" |
61 #include "chrome/browser/extensions/pending_extension_manager.h" | 58 #include "chrome/browser/extensions/pending_extension_manager.h" |
62 #include "chrome/browser/extensions/test_blacklist.h" | 59 #include "chrome/browser/extensions/test_blacklist.h" |
63 #include "chrome/browser/extensions/test_extension_system.h" | 60 #include "chrome/browser/extensions/test_extension_system.h" |
64 #include "chrome/browser/extensions/unpacked_installer.h" | 61 #include "chrome/browser/extensions/unpacked_installer.h" |
65 #include "chrome/browser/extensions/updater/extension_updater.h" | 62 #include "chrome/browser/extensions/updater/extension_updater.h" |
66 #include "chrome/browser/prefs/browser_prefs.h" | 63 #include "chrome/browser/prefs/browser_prefs.h" |
67 #include "chrome/browser/prefs/pref_service_mock_factory.h" | 64 #include "chrome/browser/prefs/pref_service_mock_factory.h" |
(...skipping 1528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1596 path = data_dir_.AppendASCII("good2048.crx"); | 1593 path = data_dir_.AppendASCII("good2048.crx"); |
1597 InstallCRX(path, INSTALL_NEW); | 1594 InstallCRX(path, INSTALL_NEW); |
1598 ValidatePrefKeyCount(++pref_count); | 1595 ValidatePrefKeyCount(++pref_count); |
1599 ValidateIntegerPref(good2048, "state", Extension::ENABLED); | 1596 ValidateIntegerPref(good2048, "state", Extension::ENABLED); |
1600 ValidateIntegerPref(good2048, "location", Manifest::INTERNAL); | 1597 ValidateIntegerPref(good2048, "location", Manifest::INTERNAL); |
1601 | 1598 |
1602 // TODO(erikkay): add more tests for many of the failure cases. | 1599 // TODO(erikkay): add more tests for many of the failure cases. |
1603 // TODO(erikkay): add tests for upgrade cases. | 1600 // TODO(erikkay): add tests for upgrade cases. |
1604 } | 1601 } |
1605 | 1602 |
1606 struct MockInstallObserver : public extensions::InstallObserver { | 1603 struct MockExtensionRegistryObserver |
1607 MockInstallObserver() { | 1604 : public extensions::ExtensionRegistryObserver { |
1608 } | 1605 virtual void OnExtensionWillBeInstalled( |
1609 | 1606 content::BrowserContext* browser_context, |
1610 virtual ~MockInstallObserver() { | 1607 const Extension* extension, |
1611 } | 1608 bool is_update, |
1612 | 1609 bool from_ephemeral, |
1613 virtual void OnExtensionInstalled(const Extension* extension) OVERRIDE { | 1610 const std::string& old_name) OVERRIDE { |
1614 last_extension_installed = extension->id(); | 1611 last_extension_installed = extension->id(); |
1615 } | 1612 } |
1616 | 1613 |
1617 virtual void OnExtensionUninstalled(const Extension* extension) OVERRIDE { | 1614 virtual void OnExtensionUninstalled(content::BrowserContext* browser_context, |
| 1615 const Extension* extension) OVERRIDE { |
1618 last_extension_uninstalled = extension->id(); | 1616 last_extension_uninstalled = extension->id(); |
1619 } | 1617 } |
1620 | 1618 |
1621 std::string last_extension_installed; | 1619 std::string last_extension_installed; |
1622 std::string last_extension_uninstalled; | 1620 std::string last_extension_uninstalled; |
1623 }; | 1621 }; |
1624 | 1622 |
1625 // Test that correct notifications are sent to InstallTracker observers on | 1623 // Test that correct notifications are sent to ExtensionRegistryObserver on |
1626 // extension install and uninstall. | 1624 // extension install and uninstall. |
1627 TEST_F(ExtensionServiceTest, InstallObserverNotified) { | 1625 TEST_F(ExtensionServiceTest, InstallObserverNotified) { |
1628 InitializeEmptyExtensionService(); | 1626 InitializeEmptyExtensionService(); |
1629 | 1627 |
1630 extensions::InstallTracker* tracker( | 1628 extensions::ExtensionRegistry* registry( |
1631 extensions::InstallTrackerFactory::GetForProfile(profile_.get())); | 1629 extensions::ExtensionRegistry::Get(profile_.get())); |
1632 MockInstallObserver observer; | 1630 MockExtensionRegistryObserver observer; |
1633 tracker->AddObserver(&observer); | 1631 registry->AddObserver(&observer); |
1634 | 1632 |
1635 // A simple extension that should install without error. | 1633 // A simple extension that should install without error. |
1636 ASSERT_TRUE(observer.last_extension_installed.empty()); | 1634 ASSERT_TRUE(observer.last_extension_installed.empty()); |
1637 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1635 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
1638 InstallCRX(path, INSTALL_NEW); | 1636 InstallCRX(path, INSTALL_NEW); |
1639 ASSERT_EQ(good_crx, observer.last_extension_installed); | 1637 ASSERT_EQ(good_crx, observer.last_extension_installed); |
1640 | 1638 |
1641 // Uninstall the extension. | 1639 // Uninstall the extension. |
1642 ASSERT_TRUE(observer.last_extension_uninstalled.empty()); | 1640 ASSERT_TRUE(observer.last_extension_uninstalled.empty()); |
1643 UninstallExtension(good_crx, false); | 1641 UninstallExtension(good_crx, false); |
1644 ASSERT_EQ(good_crx, observer.last_extension_uninstalled); | 1642 ASSERT_EQ(good_crx, observer.last_extension_uninstalled); |
1645 | 1643 |
1646 tracker->RemoveObserver(&observer); | 1644 registry->RemoveObserver(&observer); |
1647 } | 1645 } |
1648 | 1646 |
1649 // Tests that flags passed to OnExternalExtensionFileFound() make it to the | 1647 // Tests that flags passed to OnExternalExtensionFileFound() make it to the |
1650 // extension object. | 1648 // extension object. |
1651 TEST_F(ExtensionServiceTest, InstallingExternalExtensionWithFlags) { | 1649 TEST_F(ExtensionServiceTest, InstallingExternalExtensionWithFlags) { |
1652 const char kPrefFromBookmark[] = "from_bookmark"; | 1650 const char kPrefFromBookmark[] = "from_bookmark"; |
1653 | 1651 |
1654 InitializeEmptyExtensionService(); | 1652 InitializeEmptyExtensionService(); |
1655 | 1653 |
1656 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1654 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
(...skipping 5378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7035 | 7033 |
7036 service_->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, | 7034 service_->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, |
7037 content::Source<Profile>(profile_.get()), | 7035 content::Source<Profile>(profile_.get()), |
7038 content::NotificationService::NoDetails()); | 7036 content::NotificationService::NoDetails()); |
7039 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); | 7037 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); |
7040 EXPECT_EQ(0u, registry_->enabled_extensions().size()); | 7038 EXPECT_EQ(0u, registry_->enabled_extensions().size()); |
7041 EXPECT_EQ(0u, registry_->disabled_extensions().size()); | 7039 EXPECT_EQ(0u, registry_->disabled_extensions().size()); |
7042 EXPECT_EQ(0u, registry_->terminated_extensions().size()); | 7040 EXPECT_EQ(0u, registry_->terminated_extensions().size()); |
7043 EXPECT_EQ(0u, registry_->blacklisted_extensions().size()); | 7041 EXPECT_EQ(0u, registry_->blacklisted_extensions().size()); |
7044 } | 7042 } |
OLD | NEW |