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

Unified Diff: chrome/browser/content_settings/cookie_settings_unittest.cc

Issue 10574045: Make third-party cookie blocking take precedence over any rules that match all hosts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test Created 8 years, 6 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
« no previous file with comments | « chrome/browser/content_settings/cookie_settings.cc ('k') | chrome/common/content_settings_pattern.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/content_settings/cookie_settings_unittest.cc
diff --git a/chrome/browser/content_settings/cookie_settings_unittest.cc b/chrome/browser/content_settings/cookie_settings_unittest.cc
index 23572add0cf94336bfbec9b43b24dfe0d282eb24..b638f61589c1c988320f06ac5251f5bd6e57b6e3 100644
--- a/chrome/browser/content_settings/cookie_settings_unittest.cc
+++ b/chrome/browser/content_settings/cookie_settings_unittest.cc
@@ -24,251 +24,269 @@ class CookieSettingsTest : public testing::Test {
public:
CookieSettingsTest() :
ui_thread_(BrowserThread::UI, &message_loop_),
+ cookie_settings_(CookieSettings::Factory::GetForProfile(&profile_)),
kBlockedSite("http://ads.thirdparty.com"),
kAllowedSite("http://good.allays.com"),
kFirstPartySite("http://cool.things.com"),
kBlockedFirstPartySite("http://no.thirdparties.com"),
- kExtensionURL("chrome-extension://deadbeef") {}
+ kExtensionURL("chrome-extension://deadbeef"),
+ kHttpsSite("https://example.com"),
+ kAllHttpsSitesPattern(ContentSettingsPattern::FromString("https://*")) {
+}
protected:
MessageLoop message_loop_;
content::TestBrowserThread ui_thread_;
+ TestingProfile profile_;
+ CookieSettings* cookie_settings_;
const GURL kBlockedSite;
const GURL kAllowedSite;
const GURL kFirstPartySite;
const GURL kBlockedFirstPartySite;
const GURL kExtensionURL;
+ const GURL kHttpsSite;
+ ContentSettingsPattern kAllHttpsSitesPattern;
};
TEST_F(CookieSettingsTest, CookiesBlockSingle) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kBlockedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_BLOCK);
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kBlockedSite));
}
TEST_F(CookieSettingsTest, CookiesBlockThirdParty) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ profile_.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kFirstPartySite));
CommandLine* cmd = CommandLine::ForCurrentProcess();
AutoReset<CommandLine> auto_reset(cmd, *cmd);
cmd->AppendSwitch(switches::kOnlyBlockSettingThirdPartyCookies);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kFirstPartySite));
}
TEST_F(CookieSettingsTest, CookiesAllowThirdParty) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
}
TEST_F(CookieSettingsTest, CookiesExplicitBlockSingleThirdParty) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kBlockedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_BLOCK);
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
}
TEST_F(CookieSettingsTest, CookiesExplicitSessionOnly) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kBlockedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_SESSION_ONLY);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
+ EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
- profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
- EXPECT_TRUE(cookie_settings->
+ profile_.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
+ EXPECT_TRUE(cookie_settings_->
IsReadingCookieAllowed(kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->
+ EXPECT_TRUE(cookie_settings_->
IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
+ EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
}
TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedExplicitAllow) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kAllowedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_ALLOW);
- profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ profile_.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
// Extensions should always be allowed to use cookies.
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kExtensionURL));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kExtensionURL));
// Extensions should always be allowed to use cookies.
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kExtensionURL));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kExtensionURL));
}
+TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedAllSitesAllowed) {
+ cookie_settings_->SetCookieSetting(
+ ContentSettingsPattern::FromURL(kAllowedSite),
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTING_ALLOW);
+ profile_.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
+ // As an example for a pattern that matches all hosts but not all origins,
+ // match all HTTPS sites.
+ cookie_settings_->SetCookieSetting(
+ kAllHttpsSitesPattern,
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTING_ALLOW);
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY);
+
+ // |kAllowedSite| should be allowed.
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
+ kAllowedSite, kBlockedSite));
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
+ kAllowedSite, kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
+
+ // HTTPS sites should be allowed in a first-party context.
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
+ kHttpsSite, kHttpsSite));
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
+ kHttpsSite, kHttpsSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
+
+ // HTTP sites should be allowed, but session-only.
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
+ kFirstPartySite, kFirstPartySite));
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
+ kFirstPartySite, kFirstPartySite));
+ EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kFirstPartySite));
+
+ // Third-party cookies should be blocked.
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
+ kFirstPartySite, kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
+ kFirstPartySite, kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
+ kHttpsSite, kBlockedSite));
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
+ kHttpsSite, kBlockedSite));
+}
+
TEST_F(CookieSettingsTest, CookiesBlockEverything) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kFirstPartySite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kFirstPartySite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
}
TEST_F(CookieSettingsTest, CookiesBlockEverythingExceptAllowed) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kAllowedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_ALLOW);
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kFirstPartySite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kFirstPartySite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kAllowedSite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kAllowedSite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
}
TEST_F(CookieSettingsTest, CookiesBlockSingleFirstParty) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kAllowedSite),
ContentSettingsPattern::FromURL(kFirstPartySite),
CONTENT_SETTING_ALLOW);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kAllowedSite),
ContentSettingsPattern::FromURL(kBlockedFirstPartySite),
CONTENT_SETTING_BLOCK);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kBlockedFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kBlockedFirstPartySite));
- cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
+ EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kBlockedFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kBlockedFirstPartySite));
- cookie_settings->ResetCookieSetting(
+ cookie_settings_->ResetCookieSetting(
ContentSettingsPattern::FromURL(kAllowedSite),
ContentSettingsPattern::FromURL(kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kAllowedSite, kFirstPartySite));
- EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(
kAllowedSite, kFirstPartySite));
}
TEST_F(CookieSettingsTest, ExtensionsRegularSettings) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetCookieSetting(
+ cookie_settings_->SetCookieSetting(
ContentSettingsPattern::FromURL(kBlockedSite),
ContentSettingsPattern::Wildcard(),
CONTENT_SETTING_BLOCK);
// Regular cookie settings also apply to extensions.
- EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(
kBlockedSite, kExtensionURL));
}
TEST_F(CookieSettingsTest, ExtensionsOwnCookies) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
// Extensions can always use cookies (and site data) in their own origin.
- EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(
kExtensionURL, kExtensionURL));
}
TEST_F(CookieSettingsTest, ExtensionsThirdParty) {
- TestingProfile profile;
- CookieSettings* cookie_settings =
- CookieSettings::Factory::GetForProfile(&profile);
- profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
+ profile_.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
// XHRs stemming from extensions are exempt from third-party cookie blocking
// rules (as the first party is always the extension's security origin).
- EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
+ EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(
kBlockedSite, kExtensionURL));
}
« no previous file with comments | « chrome/browser/content_settings/cookie_settings.cc ('k') | chrome/common/content_settings_pattern.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698