diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 23:55:28 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 23:55:28 +0000 |
commit | 695b5719c9e9c2e98f0b26c0776974d372ab594e (patch) | |
tree | 50cc7071a6ff7f6bd155ac734eded9db118e2e0c /chrome/browser/extensions/extension_prefs_unittest.cc | |
parent | fe2c5f5de80f2c33cb3e2c6cfda754f7aba733b9 (diff) | |
download | chromium_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.cc | 80 |
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 |