Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5853)

Unified Diff: chrome/browser/extensions/component_loader_unittest.cc

Issue 14757022: Add a non-blocking "OneShotEvent" class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dcronin's comments; ExtensionSystem::ready; and WeakPtr support Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ef61a0b973bc01dbda4c80744423c5bc1b6606a7..a8b51f08cc8979a06d90eb24e211107136396854 100644
--- a/chrome/browser/extensions/component_loader_unittest.cc
+++ b/chrome/browser/extensions/component_loader_unittest.cc
@@ -26,16 +26,15 @@ namespace {
class MockExtensionService : public TestExtensionService {
private:
- bool ready_;
size_t unloaded_count_;
ExtensionSet extension_set_;
public:
- MockExtensionService() : ready_(false), unloaded_count_(0) {
+ MockExtensionService() : unloaded_count_(0) {
}
virtual void AddComponentExtension(const Extension* extension) OVERRIDE {
- EXPECT_FALSE(extension_set_.Contains(extension->id()));
+ EXPECT_FALSE(extension_set_.Contains(extension->id())) << extension->id();
// ExtensionService must become the owner of the extension object.
extension_set_.Insert(extension);
}
@@ -49,16 +48,12 @@ class MockExtensionService : public TestExtensionService {
unloaded_count_++;
}
- virtual bool is_ready() OVERRIDE {
- return ready_;
- }
-
virtual const ExtensionSet* extensions() const OVERRIDE {
return &extension_set_;
}
- void set_ready(bool ready) {
- ready_ = ready;
+ void set_ready() {
+ ready_.MarkHappened();
}
size_t unloaded_count() const {
@@ -179,7 +174,6 @@ TEST_F(ComponentLoaderTest, ParseManifest) {
// Test that the extension isn't loaded if the extension service isn't ready.
TEST_F(ComponentLoaderTest, AddWhenNotReady) {
- extension_service_.set_ready(false);
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
EXPECT_NE("", extension_id);
@@ -188,7 +182,7 @@ TEST_F(ComponentLoaderTest, AddWhenNotReady) {
// Test that it *is* loaded when the extension service *is* ready.
TEST_F(ComponentLoaderTest, AddWhenReady) {
- extension_service_.set_ready(true);
+ extension_service_.set_ready();
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
EXPECT_NE("", extension_id);
@@ -197,8 +191,6 @@ TEST_F(ComponentLoaderTest, AddWhenReady) {
}
TEST_F(ComponentLoaderTest, Remove) {
- extension_service_.set_ready(false);
-
// Removing an extension that was never added should be ok.
component_loader_.Remove(extension_path_);
EXPECT_EQ(0u, extension_service_.extensions()->size());
@@ -210,7 +202,7 @@ TEST_F(ComponentLoaderTest, Remove) {
EXPECT_EQ(0u, extension_service_.extensions()->size());
// Load an extension, and check that it's unloaded when Remove() is called.
- extension_service_.set_ready(true);
+ extension_service_.set_ready();
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
EXPECT_EQ(1u, extension_service_.extensions()->size());
@@ -223,8 +215,6 @@ TEST_F(ComponentLoaderTest, Remove) {
}
TEST_F(ComponentLoaderTest, LoadAll) {
- extension_service_.set_ready(false);
-
// No extensions should be loaded if none were added.
component_loader_.LoadAll();
EXPECT_EQ(0u, extension_service_.extensions()->size());
@@ -243,7 +233,7 @@ TEST_F(ComponentLoaderTest, LoadAll) {
}
TEST_F(ComponentLoaderTest, RemoveAll) {
- extension_service_.set_ready(true);
+ extension_service_.set_ready();
EXPECT_EQ(0u, extension_service_.extensions()->size());
// Add all the default extensions. Since the extension service is ready, they
// will be loaded immediately.
@@ -260,29 +250,43 @@ TEST_F(ComponentLoaderTest, RemoveAll) {
EXPECT_EQ(0u, extension_service_.extensions()->size());
}
-TEST_F(ComponentLoaderTest, EnterpriseWebStore) {
+static const char kEnterpriseWebStoreId[] = "afchcafgojfnemjkcbhfekplkmjaldaa";
+
+TEST_F(ComponentLoaderTest, EnterpriseWebStoreSettingPrefLoadsExtension) {
component_loader_.AddDefaultComponentExtensions(false);
component_loader_.LoadAll();
unsigned int default_count = extension_service_.extensions()->size();
+ EXPECT_FALSE(
+ extension_service_.extensions()->Contains(kEnterpriseWebStoreId));
// Set the pref, and it should get loaded automatically.
- extension_service_.set_ready(true);
+ extension_service_.set_ready();
prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
Value::CreateStringValue("http://www.google.com"));
EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+ EXPECT_TRUE(extension_service_.extensions()->Contains(kEnterpriseWebStoreId));
- // Now that the pref is set, check if it's added by default.
- extension_service_.set_ready(false);
- extension_service_.clear_extensions();
- component_loader_.ClearAllRegistered();
+ // Number of loaded extensions should be the same after changing the pref.
+ prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
+ Value::CreateStringValue("http://www.google.de"));
+ EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+}
+
+TEST_F(ComponentLoaderTest, EnterpriseWebStoreExtensionLoadsIfPrefSet) {
+ prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
+ Value::CreateStringValue("http://www.google.com"));
+ EXPECT_EQ(0U, extension_service_.extensions()->size());
component_loader_.AddDefaultComponentExtensions(false);
component_loader_.LoadAll();
- EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+
+ // Now that the pref is set, check if it's added by default.
+ EXPECT_TRUE(extension_service_.extensions()->Contains(kEnterpriseWebStoreId));
+ unsigned int extension_count = extension_service_.extensions()->size();
// Number of loaded extensions should be the same after changing the pref.
prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL,
Value::CreateStringValue("http://www.google.de"));
- EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+ EXPECT_EQ(extension_count, extension_service_.extensions()->size());
}
TEST_F(ComponentLoaderTest, AddOrReplace) {
@@ -303,7 +307,7 @@ TEST_F(ComponentLoaderTest, AddOrReplace) {
EXPECT_EQ(default_count + 1,
component_loader_.registered_extensions_count());
- extension_service_.set_ready(true);
+ extension_service_.set_ready();
component_loader_.LoadAll();
EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());

Powered by Google App Engine
This is Rietveld 408576698