Index: chrome/browser/extensions/extension_prefs_unittest.cc |
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc |
index 87a9ba5b8f9902e9c5fd2b0b40b32143807848a6..32d7254e2bd40d836c49de55fffda56b1e59400f 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -246,7 +246,6 @@ class ExtensionPrefsExtensionState : public ExtensionPrefsTest { |
}; |
TEST_F(ExtensionPrefsExtensionState, ExtensionState) {} |
- |
class ExtensionPrefsEscalatePermissions : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
@@ -1189,4 +1188,83 @@ class ExtensionPrefsDisableExtensions : public ExtensionPrefsPrepopulatedTest { |
}; |
TEST_F(ExtensionPrefsDisableExtensions, ExtensionPrefsDisableExtensions) {} |
+// Tests that blacklist state can be queried. |
+class ExtensionPrefsBlacklistedExtensions : public ExtensionPrefsTest { |
+ public: |
+ virtual ~ExtensionPrefsBlacklistedExtensions() {} |
+ |
+ virtual void Initialize() OVERRIDE { |
+ extension_a_ = prefs_.AddExtension("a"); |
+ extension_b_ = prefs_.AddExtension("b"); |
+ extension_c_ = prefs_.AddExtension("c"); |
+ } |
+ |
+ virtual void Verify() OVERRIDE { |
+ { |
+ std::set<std::string> ids; |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ prefs()->SetExtensionBlacklisted(extension_a_->id(), true); |
+ { |
+ std::set<std::string> ids; |
+ ids.insert(extension_a_->id()); |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ prefs()->SetExtensionBlacklisted(extension_b_->id(), true); |
+ prefs()->SetExtensionBlacklisted(extension_c_->id(), true); |
+ { |
+ std::set<std::string> ids; |
+ ids.insert(extension_a_->id()); |
+ ids.insert(extension_b_->id()); |
+ ids.insert(extension_c_->id()); |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ prefs()->SetExtensionBlacklisted(extension_a_->id(), false); |
+ { |
+ std::set<std::string> ids; |
+ ids.insert(extension_b_->id()); |
+ ids.insert(extension_c_->id()); |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ prefs()->SetExtensionBlacklisted(extension_b_->id(), false); |
+ prefs()->SetExtensionBlacklisted(extension_c_->id(), false); |
+ { |
+ std::set<std::string> ids; |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ |
+ // The interesting part: make sure that we're cleaning up after ourselves |
+ // when we're storing *just* the fact that the extension is blacklisted. |
+ std::string arbitrary_id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; |
+ |
+ prefs()->SetExtensionBlacklisted(arbitrary_id, true); |
+ prefs()->SetExtensionBlacklisted(extension_a_->id(), true); |
+ |
+ // (And make sure that the acknowledged bit is also cleared). |
+ prefs()->AcknowledgeBlacklistedExtension(arbitrary_id); |
+ |
+ EXPECT_TRUE(prefs()->GetExtensionPref(arbitrary_id)); |
+ { |
+ std::set<std::string> ids; |
+ ids.insert(arbitrary_id); |
+ ids.insert(extension_a_->id()); |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ prefs()->SetExtensionBlacklisted(arbitrary_id, false); |
+ prefs()->SetExtensionBlacklisted(extension_a_->id(), false); |
+ EXPECT_FALSE(prefs()->GetExtensionPref(arbitrary_id)); |
+ { |
+ std::set<std::string> ids; |
+ EXPECT_EQ(ids, prefs()->GetBlacklistedExtensions()); |
+ } |
+ } |
+ |
+ private: |
+ scoped_refptr<const Extension> extension_a_; |
+ scoped_refptr<const Extension> extension_b_; |
+ scoped_refptr<const Extension> extension_c_; |
+}; |
+TEST_F(ExtensionPrefsBlacklistedExtensions, |
+ ExtensionPrefsBlacklistedExtensions) {} |
+ |
} // namespace extensions |