summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_prefs_unittest.cc
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-06 23:55:28 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-06 23:55:28 +0000
commit695b5719c9e9c2e98f0b26c0776974d372ab594e (patch)
tree50cc7071a6ff7f6bd155ac734eded9db118e2e0c /chrome/browser/extensions/extension_prefs_unittest.cc
parentfe2c5f5de80f2c33cb3e2c6cfda754f7aba733b9 (diff)
downloadchromium_src-695b5719c9e9c2e98f0b26c0776974d372ab594e.zip
chromium_src-695b5719c9e9c2e98f0b26c0776974d372ab594e.tar.gz
chromium_src-695b5719c9e9c2e98f0b26c0776974d372ab594e.tar.bz2
Reland 171079, as it wasn't the CL that caused the perf regression
> Revert 171079 - investigating perf regression. > > > Make Blacklist::IsBlacklist asynchronous (it will need to be for safe > > browsing), and unravel the knots that result from it: > > - Decouple it from the admin policy. > > - Take the other half of blacklist logic out of ExtensionPrefs and into > > Blacklist. > > - Fix bug where blacklisted extensions couldn't be re-installed (let alone > > re-enabled) if they get taken off the blacklist. > > > > > > TBR=sky@chromium.org > > BUG=154149,156750 > > > > > > Review URL: https://chromiumcodereview.appspot.com/11415216 > > TBR=kalman@chromium.org > > Review URL: https://codereview.chromium.org/11478003 TBR=kalman@chromium.org Review URL: https://codereview.chromium.org/11465014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171642 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_prefs_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_prefs_unittest.cc80
1 files changed, 79 insertions, 1 deletions
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc
index 9ddedbd..49e450c 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