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

Side by Side Diff: components/content_settings/core/browser/cookie_settings_unittest.cc

Issue 2655443003: Unify the "get" and "set" cookie access settings. (Closed)
Patch Set: fix android Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/content_settings/core/browser/cookie_settings.h" 5 #include "components/content_settings/core/browser/cookie_settings.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "components/content_settings/core/browser/host_content_settings_map.h" 8 #include "components/content_settings/core/browser/host_content_settings_map.h"
9 #include "components/content_settings/core/common/content_settings_pattern.h" 9 #include "components/content_settings/core/common/content_settings_pattern.h"
10 #include "components/content_settings/core/common/pref_names.h" 10 #include "components/content_settings/core/common/pref_names.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 const GURL kFirstPartySite; 51 const GURL kFirstPartySite;
52 const GURL kChromeURL; 52 const GURL kChromeURL;
53 const GURL kExtensionURL; 53 const GURL kExtensionURL;
54 const GURL kHttpSite; 54 const GURL kHttpSite;
55 const GURL kHttpsSite; 55 const GURL kHttpsSite;
56 ContentSettingsPattern kAllHttpsSitesPattern; 56 ContentSettingsPattern kAllHttpsSitesPattern;
57 }; 57 };
58 58
59 TEST_F(CookieSettingsTest, TestWhitelistedScheme) { 59 TEST_F(CookieSettingsTest, TestWhitelistedScheme) {
60 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 60 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
61 EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(kHttpSite, kChromeURL)); 61 EXPECT_FALSE(cookie_settings_->IsCookieAccessAllowed(kHttpSite, kChromeURL));
62 EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(kHttpsSite, kChromeURL)); 62 EXPECT_TRUE(cookie_settings_->IsCookieAccessAllowed(kHttpsSite, kChromeURL));
63 EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(kChromeURL, kHttpSite)); 63 EXPECT_TRUE(cookie_settings_->IsCookieAccessAllowed(kChromeURL, kHttpSite));
64 #if BUILDFLAG(ENABLE_EXTENSIONS) 64 #if BUILDFLAG(ENABLE_EXTENSIONS)
65 EXPECT_TRUE( 65 EXPECT_TRUE(
66 cookie_settings_->IsReadingCookieAllowed(kExtensionURL, kExtensionURL)); 66 cookie_settings_->IsCookieAccessAllowed(kExtensionURL, kExtensionURL));
67 #else 67 #else
68 EXPECT_FALSE( 68 EXPECT_FALSE(
69 cookie_settings_->IsReadingCookieAllowed(kExtensionURL, kExtensionURL)); 69 cookie_settings_->IsCookieAccessAllowed(kExtensionURL, kExtensionURL));
70 #endif 70 #endif
71 EXPECT_FALSE( 71 EXPECT_FALSE(
72 cookie_settings_->IsReadingCookieAllowed(kExtensionURL, kHttpSite)); 72 cookie_settings_->IsCookieAccessAllowed(kExtensionURL, kHttpSite));
73 } 73 }
74 74
75 TEST_F(CookieSettingsTest, CookiesBlockSingle) { 75 TEST_F(CookieSettingsTest, CookiesBlockSingle) {
76 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK); 76 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK);
77 EXPECT_FALSE( 77 EXPECT_FALSE(
78 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kBlockedSite)); 78 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kBlockedSite));
79 } 79 }
80 80
81 TEST_F(CookieSettingsTest, CookiesBlockThirdParty) { 81 TEST_F(CookieSettingsTest, CookiesBlockThirdParty) {
82 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true); 82 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true);
83 EXPECT_FALSE( 83 EXPECT_FALSE(
84 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kFirstPartySite)); 84 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kFirstPartySite));
85 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite)); 85 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
86 EXPECT_FALSE(
87 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
88 } 86 }
89 87
90 TEST_F(CookieSettingsTest, CookiesAllowThirdParty) { 88 TEST_F(CookieSettingsTest, CookiesAllowThirdParty) {
91 EXPECT_TRUE( 89 EXPECT_TRUE(
92 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kFirstPartySite)); 90 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kFirstPartySite));
93 EXPECT_TRUE(
94 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
95 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite)); 91 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
96 } 92 }
97 93
98 TEST_F(CookieSettingsTest, CookiesExplicitBlockSingleThirdParty) { 94 TEST_F(CookieSettingsTest, CookiesExplicitBlockSingleThirdParty) {
99 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK); 95 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK);
100 EXPECT_FALSE( 96 EXPECT_FALSE(
101 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kFirstPartySite)); 97 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kFirstPartySite));
102 EXPECT_FALSE(
103 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
104 EXPECT_TRUE( 98 EXPECT_TRUE(
105 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kFirstPartySite)); 99 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kFirstPartySite));
106 } 100 }
107 101
108 TEST_F(CookieSettingsTest, CookiesExplicitSessionOnly) { 102 TEST_F(CookieSettingsTest, CookiesExplicitSessionOnly) {
109 cookie_settings_->SetCookieSetting(kBlockedSite, 103 cookie_settings_->SetCookieSetting(kBlockedSite,
110 CONTENT_SETTING_SESSION_ONLY); 104 CONTENT_SETTING_SESSION_ONLY);
111 EXPECT_TRUE( 105 EXPECT_TRUE(
112 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kFirstPartySite)); 106 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kFirstPartySite));
113 EXPECT_TRUE(
114 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
115 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite)); 107 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
116 108
117 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true); 109 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true);
118 EXPECT_TRUE( 110 EXPECT_TRUE(
119 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kFirstPartySite)); 111 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kFirstPartySite));
120 EXPECT_TRUE(
121 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
122 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite)); 112 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kBlockedSite));
123 } 113 }
124 114
125 TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedExplicitAllow) { 115 TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedExplicitAllow) {
126 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW); 116 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW);
127 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true); 117 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true);
128 EXPECT_TRUE( 118 EXPECT_TRUE(
129 cookie_settings_->IsReadingCookieAllowed(kAllowedSite, kFirstPartySite)); 119 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kFirstPartySite));
130 EXPECT_TRUE(
131 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kFirstPartySite));
132 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite)); 120 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
133 121
134 // Extensions should always be allowed to use cookies. 122 // Extensions should always be allowed to use cookies.
135 EXPECT_TRUE( 123 EXPECT_TRUE(
136 cookie_settings_->IsReadingCookieAllowed(kAllowedSite, kExtensionURL)); 124 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kExtensionURL));
137 EXPECT_TRUE(
138 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kExtensionURL));
139 } 125 }
140 126
141 TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedAllSitesAllowed) { 127 TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedAllSitesAllowed) {
142 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW); 128 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW);
143 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true); 129 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true);
144 // As an example for a url that matches all hosts but not all origins, 130 // As an example for a url that matches all hosts but not all origins,
145 // match all HTTPS sites. 131 // match all HTTPS sites.
146 settings_map_->SetContentSettingCustomScope( 132 settings_map_->SetContentSettingCustomScope(
147 kAllHttpsSitesPattern, ContentSettingsPattern::Wildcard(), 133 kAllHttpsSitesPattern, ContentSettingsPattern::Wildcard(),
148 CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_ALLOW); 134 CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_ALLOW);
149 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY); 135 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY);
150 136
151 // |kAllowedSite| should be allowed. 137 // |kAllowedSite| should be allowed.
152 EXPECT_TRUE( 138 EXPECT_TRUE(
153 cookie_settings_->IsReadingCookieAllowed(kAllowedSite, kBlockedSite)); 139 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kBlockedSite));
154 EXPECT_TRUE(
155 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kBlockedSite));
156 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite)); 140 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
157 141
158 // HTTPS sites should be allowed in a first-party context. 142 // HTTPS sites should be allowed in a first-party context.
159 EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(kHttpsSite, kHttpsSite)); 143 EXPECT_TRUE(cookie_settings_->IsCookieAccessAllowed(kHttpsSite, kHttpsSite));
160 EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(kHttpsSite, kHttpsSite));
161 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite)); 144 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
162 145
163 // HTTP sites should be allowed, but session-only. 146 // HTTP sites should be allowed, but session-only.
164 EXPECT_TRUE(cookie_settings_->IsReadingCookieAllowed(kFirstPartySite, 147 EXPECT_TRUE(cookie_settings_->IsCookieAccessAllowed(kFirstPartySite,
165 kFirstPartySite)); 148 kFirstPartySite));
166 EXPECT_TRUE(cookie_settings_->IsSettingCookieAllowed(kFirstPartySite,
167 kFirstPartySite));
168 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kFirstPartySite)); 149 EXPECT_TRUE(cookie_settings_->IsCookieSessionOnly(kFirstPartySite));
169 150
170 // Third-party cookies should be blocked. 151 // Third-party cookies should be blocked.
171 EXPECT_FALSE( 152 EXPECT_FALSE(
172 cookie_settings_->IsReadingCookieAllowed(kFirstPartySite, kBlockedSite)); 153 cookie_settings_->IsCookieAccessAllowed(kFirstPartySite, kBlockedSite));
173 EXPECT_FALSE( 154 EXPECT_FALSE(
174 cookie_settings_->IsSettingCookieAllowed(kFirstPartySite, kBlockedSite)); 155 cookie_settings_->IsCookieAccessAllowed(kHttpsSite, kBlockedSite));
175 EXPECT_FALSE(
176 cookie_settings_->IsReadingCookieAllowed(kHttpsSite, kBlockedSite));
177 EXPECT_FALSE(
178 cookie_settings_->IsSettingCookieAllowed(kHttpsSite, kBlockedSite));
179 } 156 }
180 157
181 TEST_F(CookieSettingsTest, CookiesBlockEverything) { 158 TEST_F(CookieSettingsTest, CookiesBlockEverything) {
182 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 159 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
183 160
184 EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(kFirstPartySite, 161 EXPECT_FALSE(cookie_settings_->IsCookieAccessAllowed(kFirstPartySite,
185 kFirstPartySite)); 162 kFirstPartySite));
186 EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(kFirstPartySite,
187 kFirstPartySite));
188 EXPECT_FALSE( 163 EXPECT_FALSE(
189 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kFirstPartySite)); 164 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kFirstPartySite));
190 } 165 }
191 166
192 TEST_F(CookieSettingsTest, CookiesBlockEverythingExceptAllowed) { 167 TEST_F(CookieSettingsTest, CookiesBlockEverythingExceptAllowed) {
193 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 168 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
194 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW); 169 cookie_settings_->SetCookieSetting(kAllowedSite, CONTENT_SETTING_ALLOW);
195 EXPECT_FALSE(cookie_settings_->IsReadingCookieAllowed(kFirstPartySite, 170 EXPECT_FALSE(cookie_settings_->IsCookieAccessAllowed(kFirstPartySite,
196 kFirstPartySite)); 171 kFirstPartySite));
197 EXPECT_FALSE(cookie_settings_->IsSettingCookieAllowed(kFirstPartySite,
198 kFirstPartySite));
199 EXPECT_TRUE( 172 EXPECT_TRUE(
200 cookie_settings_->IsReadingCookieAllowed(kAllowedSite, kFirstPartySite)); 173 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kFirstPartySite));
201 EXPECT_TRUE( 174 EXPECT_TRUE(
202 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kFirstPartySite)); 175 cookie_settings_->IsCookieAccessAllowed(kAllowedSite, kAllowedSite));
203 EXPECT_TRUE(
204 cookie_settings_->IsReadingCookieAllowed(kAllowedSite, kAllowedSite));
205 EXPECT_TRUE(
206 cookie_settings_->IsSettingCookieAllowed(kAllowedSite, kAllowedSite));
207 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite)); 176 EXPECT_FALSE(cookie_settings_->IsCookieSessionOnly(kAllowedSite));
208 } 177 }
209 178
210 TEST_F(CookieSettingsTest, ExtensionsRegularSettings) { 179 TEST_F(CookieSettingsTest, ExtensionsRegularSettings) {
211 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK); 180 cookie_settings_->SetCookieSetting(kBlockedSite, CONTENT_SETTING_BLOCK);
212 181
213 // Regular cookie settings also apply to extensions. 182 // Regular cookie settings also apply to extensions.
214 EXPECT_FALSE( 183 EXPECT_FALSE(
215 cookie_settings_->IsReadingCookieAllowed(kBlockedSite, kExtensionURL)); 184 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kExtensionURL));
216 } 185 }
217 186
218 TEST_F(CookieSettingsTest, ExtensionsOwnCookies) { 187 TEST_F(CookieSettingsTest, ExtensionsOwnCookies) {
219 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 188 cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
220 189
221 #if BUILDFLAG(ENABLE_EXTENSIONS) 190 #if BUILDFLAG(ENABLE_EXTENSIONS)
222 // Extensions can always use cookies (and site data) in their own origin. 191 // Extensions can always use cookies (and site data) in their own origin.
223 EXPECT_TRUE( 192 EXPECT_TRUE(
224 cookie_settings_->IsReadingCookieAllowed(kExtensionURL, kExtensionURL)); 193 cookie_settings_->IsCookieAccessAllowed(kExtensionURL, kExtensionURL));
225 #else 194 #else
226 // Except if extensions are disabled. Then the extension-specific checks do 195 // Except if extensions are disabled. Then the extension-specific checks do
227 // not exist and the default setting is to block. 196 // not exist and the default setting is to block.
228 EXPECT_FALSE( 197 EXPECT_FALSE(
229 cookie_settings_->IsReadingCookieAllowed(kExtensionURL, kExtensionURL)); 198 cookie_settings_->IsCookieAccessAllowed(kExtensionURL, kExtensionURL));
230 #endif 199 #endif
231 } 200 }
232 201
233 TEST_F(CookieSettingsTest, ExtensionsThirdParty) { 202 TEST_F(CookieSettingsTest, ExtensionsThirdParty) {
234 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true); 203 prefs_.SetBoolean(prefs::kBlockThirdPartyCookies, true);
235 204
236 // XHRs stemming from extensions are exempt from third-party cookie blocking 205 // XHRs stemming from extensions are exempt from third-party cookie blocking
237 // rules (as the first party is always the extension's security origin). 206 // rules (as the first party is always the extension's security origin).
238 EXPECT_TRUE( 207 EXPECT_TRUE(
239 cookie_settings_->IsSettingCookieAllowed(kBlockedSite, kExtensionURL)); 208 cookie_settings_->IsCookieAccessAllowed(kBlockedSite, kExtensionURL));
240 } 209 }
241 210
242 } // namespace 211 } // namespace
243 212
244 } // namespace content_settings 213 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698