| 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) { |
| 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) { |
| 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 |