| Index: chrome/browser/extensions/component_loader_unittest.cc
|
| diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc
|
| index a608afb72337b5b44bb366defd53d4f8ab0d1139..98c9e17b6c93b12ff99e4ee35bf3374654065acc 100644
|
| --- a/chrome/browser/extensions/component_loader_unittest.cc
|
| +++ b/chrome/browser/extensions/component_loader_unittest.cc
|
| @@ -16,6 +16,7 @@
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/pref_registry/pref_registry_syncable.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| +#include "extensions/browser/extension_registry.h"
|
| #include "extensions/common/constants.h"
|
| #include "extensions/common/extension.h"
|
| #include "extensions/common/extension_set.h"
|
| @@ -30,23 +31,25 @@ class MockExtensionService : public TestExtensionService {
|
| private:
|
| bool ready_;
|
| size_t unloaded_count_;
|
| - ExtensionSet extension_set_;
|
| + ExtensionRegistry* registry_;
|
|
|
| public:
|
| - MockExtensionService() : ready_(false), unloaded_count_(0) {
|
| - }
|
| + explicit MockExtensionService(Profile* profile)
|
| + : ready_(false),
|
| + unloaded_count_(0),
|
| + registry_(ExtensionRegistry::Get(profile)) {}
|
|
|
| void AddComponentExtension(const Extension* extension) override {
|
| - EXPECT_FALSE(extension_set_.Contains(extension->id()));
|
| + EXPECT_FALSE(registry_->enabled_extensions().Contains(extension->id()));
|
| // ExtensionService must become the owner of the extension object.
|
| - extension_set_.Insert(extension);
|
| + registry_->AddEnabled(extension);
|
| }
|
|
|
| void UnloadExtension(const std::string& extension_id,
|
| UnloadedExtensionInfo::Reason reason) override {
|
| - ASSERT_TRUE(extension_set_.Contains(extension_id));
|
| + ASSERT_TRUE(registry_->enabled_extensions().Contains(extension_id));
|
| // Remove the extension with the matching id.
|
| - extension_set_.Remove(extension_id);
|
| + registry_->RemoveEnabled(extension_id);
|
| unloaded_count_++;
|
| }
|
|
|
| @@ -56,8 +59,6 @@ class MockExtensionService : public TestExtensionService {
|
|
|
| bool is_ready() override { return ready_; }
|
|
|
| - const ExtensionSet* extensions() const override { return &extension_set_; }
|
| -
|
| void set_ready(bool ready) {
|
| ready_ = ready;
|
| }
|
| @@ -66,9 +67,7 @@ class MockExtensionService : public TestExtensionService {
|
| return unloaded_count_;
|
| }
|
|
|
| - void clear_extensions() {
|
| - extension_set_.Clear();
|
| - }
|
| + void clear_extensions() { registry_->ClearAll(); }
|
| };
|
|
|
| } // namespace
|
| @@ -78,11 +77,11 @@ class ComponentLoaderTest : public testing::Test {
|
| ComponentLoaderTest()
|
| // Note: we pass the same pref service here, to stand in for both
|
| // user prefs and local state.
|
| - : component_loader_(&extension_service_,
|
| + : extension_service_(&profile_),
|
| + component_loader_(&extension_service_,
|
| &prefs_,
|
| &local_state_,
|
| - &profile_) {
|
| - }
|
| + &profile_) {}
|
|
|
| void SetUp() override {
|
| extension_path_ =
|
| @@ -104,10 +103,10 @@ class ComponentLoaderTest : public testing::Test {
|
| }
|
|
|
| protected:
|
| + TestingProfile profile_;
|
| MockExtensionService extension_service_;
|
| TestingPrefServiceSyncable prefs_;
|
| TestingPrefServiceSimple local_state_;
|
| - TestingProfile profile_;
|
| ComponentLoader component_loader_;
|
|
|
| // The root directory of the text extension.
|
| @@ -180,7 +179,8 @@ TEST_F(ComponentLoaderTest, AddWhenNotReady) {
|
| std::string extension_id =
|
| component_loader_.Add(manifest_contents_, extension_path_);
|
| EXPECT_NE("", extension_id);
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
| }
|
|
|
| // Test that it *is* loaded when the extension service *is* ready.
|
| @@ -189,54 +189,58 @@ TEST_F(ComponentLoaderTest, AddWhenReady) {
|
| std::string extension_id =
|
| component_loader_.Add(manifest_contents_, extension_path_);
|
| EXPECT_NE("", extension_id);
|
| - EXPECT_EQ(1u, extension_service_.extensions()->size());
|
| - EXPECT_TRUE(extension_service_.extensions()->GetByID(extension_id));
|
| + ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
|
| + EXPECT_EQ(1u, registry->enabled_extensions().size());
|
| + EXPECT_TRUE(
|
| + registry->GetExtensionById(extension_id, ExtensionRegistry::ENABLED));
|
| }
|
|
|
| TEST_F(ComponentLoaderTest, Remove) {
|
| extension_service_.set_ready(false);
|
| + ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
|
|
|
| // Removing an extension that was never added should be ok.
|
| component_loader_.Remove(extension_path_);
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
|
|
| // Try adding and removing before LoadAll() is called.
|
| component_loader_.Add(manifest_contents_, extension_path_);
|
| component_loader_.Remove(extension_path_);
|
| component_loader_.LoadAll();
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
|
|
| // Load an extension, and check that it's unloaded when Remove() is called.
|
| extension_service_.set_ready(true);
|
| std::string extension_id =
|
| component_loader_.Add(manifest_contents_, extension_path_);
|
| - EXPECT_EQ(1u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(1u, registry->enabled_extensions().size());
|
| component_loader_.Remove(extension_path_);
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
|
|
| // And after calling LoadAll(), it shouldn't get loaded.
|
| component_loader_.LoadAll();
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
| }
|
|
|
| TEST_F(ComponentLoaderTest, LoadAll) {
|
| extension_service_.set_ready(false);
|
| + ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
|
|
|
| // No extensions should be loaded if none were added.
|
| component_loader_.LoadAll();
|
| - EXPECT_EQ(0u, extension_service_.extensions()->size());
|
| + EXPECT_EQ(0u, registry->enabled_extensions().size());
|
|
|
| // Use LoadAll() to load the default extensions.
|
| component_loader_.AddDefaultComponentExtensions(false);
|
| component_loader_.LoadAll();
|
| - unsigned int default_count = extension_service_.extensions()->size();
|
| + unsigned int default_count = registry->enabled_extensions().size();
|
|
|
| // Clear the list of loaded extensions, and reload with one more.
|
| extension_service_.clear_extensions();
|
| component_loader_.Add(manifest_contents_, extension_path_);
|
| component_loader_.LoadAll();
|
|
|
| - EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
|
| + EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
|
| }
|
|
|
| TEST_F(ComponentLoaderTest, AddOrReplace) {
|
| @@ -260,13 +264,14 @@ TEST_F(ComponentLoaderTest, AddOrReplace) {
|
|
|
| extension_service_.set_ready(true);
|
| component_loader_.LoadAll();
|
| + ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
|
|
|
| - EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
|
| + EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
|
| EXPECT_EQ(0u, extension_service_.unloaded_count());
|
|
|
| // replace loaded component extension.
|
| component_loader_.AddOrReplace(known_extension);
|
| - EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
|
| + EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
|
| EXPECT_EQ(1u, extension_service_.unloaded_count());
|
|
|
| // Add an invalid component extension.
|
|
|