summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/component_loader_unittest.cc
diff options
context:
space:
mode:
authorserya@chromium.org <serya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-08 08:52:10 +0000
committerserya@chromium.org <serya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-08 08:52:10 +0000
commit43cbd759bddfc293d3dfc315c7b7ee893fe50c4e (patch)
treec045ff9c848b51e4280b93d5b37d379c874ab642 /chrome/browser/extensions/component_loader_unittest.cc
parent0fd2fb36c96bc3df5f22de9cc1a8e37606e95cb5 (diff)
downloadchromium_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.cc65
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