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

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

Issue 10709006: Show apps protecting local data in chrome://settings/cookies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: argh Created 8 years, 5 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/extension_special_storage_policy_unittest.cc
diff --git a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
index 27505e0d4e9f60c90a2048ac498a82ba3203b252..0d5ff45341d2ab7207228b111f728b1e35482c18 100644
--- a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
@@ -20,6 +20,11 @@ using extensions::Extension;
namespace keys = extension_manifest_keys;
class ExtensionSpecialStoragePolicyTest : public testing::Test {
+ public:
+ virtual void SetUp() {
+ policy_ = new ExtensionSpecialStoragePolicy(NULL);
+ }
+
protected:
scoped_refptr<Extension> CreateProtectedApp() {
#if defined(OS_WIN)
@@ -116,104 +121,126 @@ class ExtensionSpecialStoragePolicyTest : public testing::Test {
EXPECT_TRUE(handler_app.get()) << error;
return handler_app;
}
+
+ // Verifies that the set of extensions protecting |url| is *exactly* equal to
+ // |expected_extensions|. Pass in an empty set to verify that an origin is not
+ // protected.
+ void ExpectProtectedBy(const ExtensionSet& expected_extensions,
+ const GURL& url) {
+ const ExtensionSet* extensions = policy_->ExtensionsProtectingOrigin(url);
+ EXPECT_EQ(expected_extensions.size(), extensions->size());
+ for (ExtensionSet::const_iterator it = expected_extensions.begin();
+ it != expected_extensions.end(); ++it) {
+ EXPECT_TRUE(extensions->Contains((*it)->id()))
+ << "Origin " << url << "not protected by extension ID "
+ << (*it)->id();
+ }
+ }
+
+ scoped_refptr<ExtensionSpecialStoragePolicy> policy_;
};
TEST_F(ExtensionSpecialStoragePolicyTest, EmptyPolicy) {
const GURL kHttpUrl("http://foo");
const GURL kExtensionUrl("chrome-extension://bar");
- scoped_refptr<ExtensionSpecialStoragePolicy> policy(
- new ExtensionSpecialStoragePolicy(NULL));
-
- ASSERT_FALSE(policy->IsStorageUnlimited(kHttpUrl));
- ASSERT_FALSE(policy->IsStorageUnlimited(kHttpUrl)); // test cached result
- ASSERT_FALSE(policy->IsStorageUnlimited(kExtensionUrl));
- ASSERT_FALSE(policy->IsStorageProtected(kHttpUrl));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl)); // test cached result
+ EXPECT_FALSE(policy_->IsStorageUnlimited(kExtensionUrl));
+ ExtensionSet empty_set;
+ ExpectProtectedBy(empty_set, kHttpUrl);
// This one is just based on the scheme.
- ASSERT_TRUE(policy->IsStorageProtected(kExtensionUrl));
+ EXPECT_TRUE(policy_->IsStorageProtected(kExtensionUrl));
}
TEST_F(ExtensionSpecialStoragePolicyTest, AppWithProtectedStorage) {
scoped_refptr<Extension> extension(CreateProtectedApp());
- scoped_refptr<ExtensionSpecialStoragePolicy> policy(
- new ExtensionSpecialStoragePolicy(NULL));
- policy->GrantRightsForExtension(extension);
- EXPECT_FALSE(policy->IsStorageUnlimited(extension->url()));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit:6000/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://not_listed/")));
-
- policy->RevokeRightsForExtension(extension);
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("https://bar.wildcards/")));
+ policy_->GrantRightsForExtension(extension);
+ ExtensionSet protecting_extensions;
+ protecting_extensions.Insert(extension);
+ ExtensionSet empty_set;
+
+ EXPECT_FALSE(policy_->IsStorageUnlimited(extension->url()));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("http://explicit/")));
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit:6000/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://bar.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("http://not_listed/"));
+
+ policy_->RevokeRightsForExtension(extension);
+ ExpectProtectedBy(empty_set, GURL("http://explicit/"));
+ ExpectProtectedBy(empty_set, GURL("http://foo.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("https://bar.wildcards/"));
}
TEST_F(ExtensionSpecialStoragePolicyTest, AppWithUnlimitedStorage) {
scoped_refptr<Extension> extension(CreateUnlimitedApp());
- scoped_refptr<ExtensionSpecialStoragePolicy> policy(
- new ExtensionSpecialStoragePolicy(NULL));
- policy->GrantRightsForExtension(extension);
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit:6000/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://not_listed/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(extension->url()));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("http://explicit:6000/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("https://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("http://not_listed/")));
-
- policy->RevokeRightsForExtension(extension);
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("http://explicit/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("https://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("https://bar.wildcards/")));
+ policy_->GrantRightsForExtension(extension);
+ ExtensionSet protecting_extensions;
+ protecting_extensions.Insert(extension);
+ ExtensionSet empty_set;
+
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit:6000/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://bar.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("http://not_listed/"));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(extension->url()));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("http://explicit/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("http://explicit:6000/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("https://foo.wildcards/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("https://bar.wildcards/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("http://not_listed/")));
+
+ policy_->RevokeRightsForExtension(extension);
+ ExpectProtectedBy(empty_set, GURL("http://explicit/"));
+ ExpectProtectedBy(empty_set, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("http://bar.wildcards/"));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("http://explicit/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("https://foo.wildcards/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("https://bar.wildcards/")));
}
TEST_F(ExtensionSpecialStoragePolicyTest, OverlappingApps) {
scoped_refptr<Extension> protected_app(CreateProtectedApp());
scoped_refptr<Extension> unlimited_app(CreateUnlimitedApp());
- scoped_refptr<ExtensionSpecialStoragePolicy> policy(
- new ExtensionSpecialStoragePolicy(NULL));
- policy->GrantRightsForExtension(protected_app);
- policy->GrantRightsForExtension(unlimited_app);
-
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit:6000/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://not_listed/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("http://explicit:6000/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("https://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageUnlimited(GURL("https://bar.wildcards/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("http://not_listed/")));
-
- policy->RevokeRightsForExtension(unlimited_app);
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("http://explicit/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("https://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageUnlimited(GURL("https://bar.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("http://foo.wildcards/")));
- EXPECT_TRUE(policy->IsStorageProtected(GURL("https://bar.wildcards/")));
-
- policy->RevokeRightsForExtension(protected_app);
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://explicit/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("http://foo.wildcards/")));
- EXPECT_FALSE(policy->IsStorageProtected(GURL("https://bar.wildcards/")));
+ policy_->GrantRightsForExtension(protected_app);
+ policy_->GrantRightsForExtension(unlimited_app);
+ ExtensionSet protecting_extensions;
+ ExtensionSet empty_set;
+ protecting_extensions.Insert(protected_app);
+ protecting_extensions.Insert(unlimited_app);
+
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit:6000/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://bar.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("http://not_listed/"));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("http://explicit/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("http://explicit:6000/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("https://foo.wildcards/")));
+ EXPECT_TRUE(policy_->IsStorageUnlimited(GURL("https://bar.wildcards/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("http://not_listed/")));
+
+ policy_->RevokeRightsForExtension(unlimited_app);
+ protecting_extensions.Remove(unlimited_app->id());
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("http://explicit/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("https://foo.wildcards/")));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("https://bar.wildcards/")));
+ ExpectProtectedBy(protecting_extensions, GURL("http://explicit/"));
+ ExpectProtectedBy(protecting_extensions, GURL("http://foo.wildcards/"));
+ ExpectProtectedBy(protecting_extensions, GURL("https://bar.wildcards/"));
+
+ policy_->RevokeRightsForExtension(protected_app);
+ ExpectProtectedBy(empty_set, GURL("http://explicit/"));
+ ExpectProtectedBy(empty_set, GURL("http://foo.wildcards/"));
+ ExpectProtectedBy(empty_set, GURL("https://bar.wildcards/"));
}
TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) {
@@ -223,17 +250,16 @@ TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) {
TestingProfile profile;
CookieSettings* cookie_settings =
CookieSettings::Factory::GetForProfile(&profile);
- scoped_refptr<ExtensionSpecialStoragePolicy> policy(
- new ExtensionSpecialStoragePolicy(cookie_settings));
+ policy_ = new ExtensionSpecialStoragePolicy(cookie_settings);
- EXPECT_FALSE(policy->HasSessionOnlyOrigins());
+ EXPECT_FALSE(policy_->HasSessionOnlyOrigins());
// The default setting can be session-only.
cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY);
- EXPECT_TRUE(policy->HasSessionOnlyOrigins());
+ EXPECT_TRUE(policy_->HasSessionOnlyOrigins());
cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_ALLOW);
- EXPECT_FALSE(policy->HasSessionOnlyOrigins());
+ EXPECT_FALSE(policy_->HasSessionOnlyOrigins());
// Or the session-onlyness can affect individual origins.
ContentSettingsPattern pattern =
@@ -243,11 +269,11 @@ TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) {
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_SESSION_ONLY);
- EXPECT_TRUE(policy->HasSessionOnlyOrigins());
+ EXPECT_TRUE(policy_->HasSessionOnlyOrigins());
// Clearing an origin-specific rule.
cookie_settings->ResetCookieSetting(pattern,
ContentSettingsPattern::Wildcard());
- EXPECT_FALSE(policy->HasSessionOnlyOrigins());
+ EXPECT_FALSE(policy_->HasSessionOnlyOrigins());
}
« no previous file with comments | « chrome/browser/extensions/extension_special_storage_policy.cc ('k') | chrome/browser/resources/options2/cookies_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698