Chromium Code Reviews| 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..c80ea9d98477ba05881d2c1261753e62eeda037b 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,123 @@ class ExtensionSpecialStoragePolicyTest : public testing::Test { |
| EXPECT_TRUE(handler_app.get()) << error; |
| return handler_app; |
| } |
| + |
| + void ExpectProtectedBy(const ExtensionSet& expected_extensions, |
|
marja
2012/07/09 08:11:43
Nit: There's no test which would assert that somet
Bernhard Bauer
2012/07/09 09:50:48
I pass in an ExtensionSet and then expect that thi
marja
2012/07/09 09:55:02
Ahh, yes, I read this sloppily, it's not enough th
|
| + 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 +247,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 +266,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()); |
| } |