diff options
author | serya@chromium.org <serya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-08 08:52:10 +0000 |
---|---|---|
committer | serya@chromium.org <serya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-08 08:52:10 +0000 |
commit | 43cbd759bddfc293d3dfc315c7b7ee893fe50c4e (patch) | |
tree | c045ff9c848b51e4280b93d5b37d379c874ab642 /chrome/browser/extensions/component_loader_unittest.cc | |
parent | 0fd2fb36c96bc3df5f22de9cc1a8e37606e95cb5 (diff) | |
download | chromium_src-43cbd759bddfc293d3dfc315c7b7ee893fe50c4e.zip chromium_src-43cbd759bddfc293d3dfc315c7b7ee893fe50c4e.tar.gz chromium_src-43cbd759bddfc293d3dfc315c7b7ee893fe50c4e.tar.bz2 |
Removed flag --expose-private-extension-api. Added --load-component-extension.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/8659002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113578 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/component_loader_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/component_loader_unittest.cc | 65 |
1 files changed, 53 insertions, 12 deletions
diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc index 69b5790..2344564 100644 --- a/chrome/browser/extensions/component_loader_unittest.cc +++ b/chrome/browser/extensions/component_loader_unittest.cc @@ -21,13 +21,15 @@ namespace { class MockExtensionService : public TestExtensionService { private: bool ready_; + size_t unloaded_count_; ExtensionSet extension_set_; public: - MockExtensionService() : ready_(false) { + MockExtensionService() : ready_(false), unloaded_count_(0) { } virtual void AddExtension(const Extension* extension) OVERRIDE { + ASSERT_FALSE(extension_set_.Contains(extension->id())); // ExtensionService must become the owner of the extension object. extension_set_.Insert(extension); } @@ -35,8 +37,10 @@ class MockExtensionService : public TestExtensionService { virtual void UnloadExtension( const std::string& extension_id, extension_misc::UnloadedExtensionReason reason) OVERRIDE { + ASSERT_TRUE(extension_set_.Contains(extension_id)); // Remove the extension with the matching id. extension_set_.Remove(extension_id); + unloaded_count_++; } virtual bool is_ready() OVERRIDE { @@ -51,6 +55,10 @@ class MockExtensionService : public TestExtensionService { ready_ = ready; } + size_t unloaded_count() const { + return unloaded_count_; + } + void clear_extensions() { extension_set_.Clear(); } @@ -69,11 +77,8 @@ class ComponentLoaderTest : public testing::Test { } void SetUp() { - FilePath test_data_dir; - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)); extension_path_ = - test_data_dir.AppendASCII("extensions") - .AppendASCII("good") + GetBasePath().AppendASCII("good") .AppendASCII("Extensions") .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") .AppendASCII("1.0.0.0"); @@ -103,6 +108,12 @@ class ComponentLoaderTest : public testing::Test { // The contents of the text extension's manifest file. std::string manifest_contents_; + + FilePath GetBasePath() { + FilePath test_data_dir; + PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir); + return test_data_dir.AppendASCII("extensions"); + } }; TEST_F(ComponentLoaderTest, ParseManifest) { @@ -160,7 +171,7 @@ TEST_F(ComponentLoaderTest, AddWhenNotReady) { extension_service_.set_ready(false); extension = component_loader_.Add(manifest_contents_, extension_path_); ASSERT_EQ((Extension*)NULL, extension.get()); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.extensions()->size()); } // Test that it *is* loaded when the extension service *is* ready. @@ -169,7 +180,7 @@ TEST_F(ComponentLoaderTest, AddWhenReady) { extension_service_.set_ready(true); extension = component_loader_.Add(manifest_contents_, extension_path_); ASSERT_NE((Extension*)NULL, extension.get()); - ASSERT_EQ(1U, extension_service_.extensions()->size()); + ASSERT_EQ(1u, extension_service_.extensions()->size()); } TEST_F(ComponentLoaderTest, Remove) { @@ -177,13 +188,13 @@ TEST_F(ComponentLoaderTest, Remove) { // Removing an extension that was never added should be ok. component_loader_.Remove(extension_path_); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.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(); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.extensions()->size()); // Load an extension, and check that it's unloaded when Remove() is called. scoped_refptr<const Extension> extension; @@ -191,11 +202,11 @@ TEST_F(ComponentLoaderTest, Remove) { extension = component_loader_.Add(manifest_contents_, extension_path_); ASSERT_NE((Extension*)NULL, extension.get()); component_loader_.Remove(extension_path_); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.extensions()->size()); // And after calling LoadAll(), it shouldn't get loaded. component_loader_.LoadAll(); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.extensions()->size()); } TEST_F(ComponentLoaderTest, LoadAll) { @@ -203,7 +214,7 @@ TEST_F(ComponentLoaderTest, LoadAll) { // No extensions should be loaded if none were added. component_loader_.LoadAll(); - ASSERT_EQ(0U, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.extensions()->size()); // Use LoadAll() to load the default extensions. component_loader_.AddDefaultComponentExtensions(); @@ -243,4 +254,34 @@ TEST_F(ComponentLoaderTest, EnterpriseWebStore) { ASSERT_EQ(default_count + 1, extension_service_.extensions()->size()); } +TEST_F(ComponentLoaderTest, AddOrReplace) { + ASSERT_EQ(0u, component_loader_.registered_extensions_count()); + component_loader_.AddDefaultComponentExtensions(); + size_t const default_count = component_loader_.registered_extensions_count(); + FilePath known_extension = GetBasePath() + .AppendASCII("override_component_extension"); + FilePath unknow_extension = extension_path_; + + // Replace a default component extension. + component_loader_.AddOrReplace(known_extension); + ASSERT_EQ(default_count, + component_loader_.registered_extensions_count()); + + // Add a new component extension. + component_loader_.AddOrReplace(unknow_extension); + ASSERT_EQ(default_count + 1, + component_loader_.registered_extensions_count()); + + extension_service_.set_ready(true); + component_loader_.LoadAll(); + + ASSERT_EQ(default_count + 1, extension_service_.extensions()->size()); + ASSERT_EQ(0u, extension_service_.unloaded_count()); + + // replace loaded component extension. + component_loader_.AddOrReplace(known_extension); + ASSERT_EQ(default_count + 1, extension_service_.extensions()->size()); + ASSERT_EQ(1u, extension_service_.unloaded_count()); +} + } // namespace extensions |