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

Side by Side Diff: chrome/browser/content_settings/cookie_settings_unittest.cc

Issue 8383004: Adding CookieSettings for storing cookie content settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing the rebase. Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/auto_reset.h"
6 #include "base/command_line.h"
7 #include "chrome/browser/content_settings/cookie_settings.h"
8 #include "chrome/browser/prefs/pref_service.h"
9 #include "chrome/common/chrome_switches.h"
10 #include "chrome/common/content_settings_pattern.h"
11 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_profile.h"
13 #include "googleurl/src/gurl.h"
14 #include "net/base/static_cookie_policy.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16
17 namespace {
18
19 class CookieSettingsTest : public testing::Test {
20 public:
21 CookieSettingsTest() :
22 ui_thread_(BrowserThread::UI, &message_loop_),
23 kBlockedSite("http://ads.thirdparty.com"),
24 kAllowedSite("http://good.allays.com"),
25 kFirstPartySite("http://cool.things.com"),
26 kBlockedFirstPartySite("http://no.thirdparties.com"),
27 kExtensionURL("chrome-extension://deadbeef") {}
28
29 protected:
30 MessageLoop message_loop_;
31 BrowserThread ui_thread_;
32 const GURL kBlockedSite;
33 const GURL kAllowedSite;
34 const GURL kFirstPartySite;
35 const GURL kBlockedFirstPartySite;
36 const GURL kExtensionURL;
37 };
38
39 TEST_F(CookieSettingsTest, CookiesBlockSingle) {
40 TestingProfile profile;
41 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
42 cookie_settings->SetCookieSetting(
43 ContentSettingsPattern::FromURL(kBlockedSite),
44 ContentSettingsPattern::Wildcard(),
45 CONTENT_SETTING_BLOCK);
46 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
47 kBlockedSite, kBlockedSite));
48 }
49
50 TEST_F(CookieSettingsTest, CookiesBlockThirdParty) {
51 TestingProfile profile;
52 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
53 profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
54 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
55 kBlockedSite, kFirstPartySite));
56 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
57 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
58 kBlockedSite, kFirstPartySite));
59
60 CommandLine* cmd = CommandLine::ForCurrentProcess();
61 AutoReset<CommandLine> auto_reset(cmd, *cmd);
62 cmd->AppendSwitch(switches::kBlockReadingThirdPartyCookies);
63
64 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
65 kBlockedSite, kFirstPartySite));
66 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
67 kBlockedSite, kFirstPartySite));
68 }
69
70 TEST_F(CookieSettingsTest, CookiesAllowThirdParty) {
71 TestingProfile profile;
72 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
73 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
74 kBlockedSite, kFirstPartySite));
75 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
76 kBlockedSite, kFirstPartySite));
77 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
78 }
79
80 TEST_F(CookieSettingsTest, CookiesExplicitBlockSingleThirdParty) {
81 TestingProfile profile;
82 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
83 cookie_settings->SetCookieSetting(
84 ContentSettingsPattern::FromURL(kBlockedSite),
85 ContentSettingsPattern::Wildcard(),
86 CONTENT_SETTING_BLOCK);
87 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
88 kBlockedSite, kFirstPartySite));
89 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
90 kBlockedSite, kFirstPartySite));
91 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
92 kAllowedSite, kFirstPartySite));
93 }
94
95 TEST_F(CookieSettingsTest, CookiesExplicitSessionOnly) {
96 TestingProfile profile;
97 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
98 cookie_settings->SetCookieSetting(
99 ContentSettingsPattern::FromURL(kBlockedSite),
100 ContentSettingsPattern::Wildcard(),
101 CONTENT_SETTING_SESSION_ONLY);
102 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
103 kBlockedSite, kFirstPartySite));
104 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
105 kBlockedSite, kFirstPartySite));
106 EXPECT_TRUE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
107
108 profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
109 EXPECT_TRUE(cookie_settings->
110 IsReadingCookieAllowed(kBlockedSite, kFirstPartySite));
111 EXPECT_TRUE(cookie_settings->
112 IsSettingCookieAllowed(kBlockedSite, kFirstPartySite));
113 EXPECT_TRUE(cookie_settings->IsCookieSessionOnly(kBlockedSite));
114 }
115
116 TEST_F(CookieSettingsTest, CookiesThirdPartyBlockedExplicitAllow) {
117 TestingProfile profile;
118 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
119 cookie_settings->SetCookieSetting(
120 ContentSettingsPattern::FromURL(kAllowedSite),
121 ContentSettingsPattern::Wildcard(),
122 CONTENT_SETTING_ALLOW);
123 profile.GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
124 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
125 kAllowedSite, kFirstPartySite));
126 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
127 kAllowedSite, kFirstPartySite));
128 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
129
130 // Extensions should always be allowed to use cookies.
131 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
132 kAllowedSite, kExtensionURL));
133 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
134 kAllowedSite, kExtensionURL));
135
136 CommandLine* cmd = CommandLine::ForCurrentProcess();
137 AutoReset<CommandLine> auto_reset(cmd, *cmd);
138 cmd->AppendSwitch(switches::kBlockReadingThirdPartyCookies);
139
140 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
141 kAllowedSite, kFirstPartySite));
142 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
143
144 // Extensions should always be allowed to use cookies.
145 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
146 kAllowedSite, kExtensionURL));
147 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
148 kAllowedSite, kExtensionURL));
149 }
150
151 TEST_F(CookieSettingsTest, CookiesBlockEverything) {
152 TestingProfile profile;
153 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
154 cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
155
156 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
157 kFirstPartySite, kFirstPartySite));
158 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
159 kFirstPartySite, kFirstPartySite));
160 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
161 kAllowedSite, kFirstPartySite));
162 }
163
164 TEST_F(CookieSettingsTest, CookiesBlockEverythingExceptAllowed) {
165 TestingProfile profile;
166 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
167 cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
168 cookie_settings->SetCookieSetting(
169 ContentSettingsPattern::FromURL(kAllowedSite),
170 ContentSettingsPattern::Wildcard(),
171 CONTENT_SETTING_ALLOW);
172 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
173 kFirstPartySite, kFirstPartySite));
174 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
175 kFirstPartySite, kFirstPartySite));
176 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
177 kAllowedSite, kFirstPartySite));
178 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
179 kAllowedSite, kFirstPartySite));
180 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
181 kAllowedSite, kAllowedSite));
182 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
183 kAllowedSite, kAllowedSite));
184 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
185 }
186
187 TEST_F(CookieSettingsTest, CookiesBlockSingleFirstParty) {
188 TestingProfile profile;
189 CookieSettings* cookie_settings = CookieSettings::GetForProfile(&profile);
190 cookie_settings->SetCookieSetting(
191 ContentSettingsPattern::FromURL(kAllowedSite),
192 ContentSettingsPattern::FromURL(kFirstPartySite),
193 CONTENT_SETTING_ALLOW);
194 cookie_settings->SetCookieSetting(
195 ContentSettingsPattern::FromURL(kAllowedSite),
196 ContentSettingsPattern::FromURL(kBlockedFirstPartySite),
197 CONTENT_SETTING_BLOCK);
198
199 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
200 kAllowedSite, kFirstPartySite));
201 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
202 kAllowedSite, kFirstPartySite));
203 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
204
205 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
206 kAllowedSite, kBlockedFirstPartySite));
207 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
208 kAllowedSite, kBlockedFirstPartySite));
209
210 cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
211
212 EXPECT_TRUE(cookie_settings->IsReadingCookieAllowed(
213 kAllowedSite, kFirstPartySite));
214 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
215 kAllowedSite, kFirstPartySite));
216 EXPECT_FALSE(cookie_settings->IsCookieSessionOnly(kAllowedSite));
217
218 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
219 kAllowedSite, kBlockedFirstPartySite));
220 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
221 kAllowedSite, kBlockedFirstPartySite));
222
223 cookie_settings->ResetCookieSetting(
224 ContentSettingsPattern::FromURL(kAllowedSite),
225 ContentSettingsPattern::FromURL(kFirstPartySite));
226
227 EXPECT_FALSE(cookie_settings->IsReadingCookieAllowed(
228 kAllowedSite, kFirstPartySite));
229 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
230 kAllowedSite, kFirstPartySite));
231 }
232
233 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/content_settings/cookie_settings.cc ('k') | chrome/browser/content_settings/host_content_settings_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698