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

Side by Side Diff: net/cookies/cookie_store_unittest.h

Issue 1844243002: [CookieStore] Upgrading host-based deleting to predicate-based deleting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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
« no previous file with comments | « net/cookies/cookie_store_test_helpers.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef NET_COOKIES_COOKIE_STORE_UNITTEST_H_ 5 #ifndef NET_COOKIES_COOKIE_STORE_UNITTEST_H_
6 #define NET_COOKIES_COOKIE_STORE_UNITTEST_H_ 6 #define NET_COOKIES_COOKIE_STORE_UNITTEST_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 ResultSavingCookieCallback<int> callback; 235 ResultSavingCookieCallback<int> callback;
236 cs->DeleteAllCreatedBetweenAsync( 236 cs->DeleteAllCreatedBetweenAsync(
237 delete_begin, delete_end, 237 delete_begin, delete_end,
238 base::Bind( 238 base::Bind(
239 &ResultSavingCookieCallback<int>::Run, 239 &ResultSavingCookieCallback<int>::Run,
240 base::Unretained(&callback))); 240 base::Unretained(&callback)));
241 callback.WaitUntilDone(); 241 callback.WaitUntilDone();
242 return callback.result(); 242 return callback.result();
243 } 243 }
244 244
245 int DeleteAllCreatedBetweenForHost(CookieStore* cs, 245 int DeleteAllCreatedBetweenWithPredicate(
246 const base::Time delete_begin, 246 CookieStore* cs,
247 const base::Time delete_end, 247 const base::Time delete_begin,
248 const GURL& url) { 248 const base::Time delete_end,
249 const CookieStore::CookiePredicate& predicate) {
249 DCHECK(cs); 250 DCHECK(cs);
250 ResultSavingCookieCallback<int> callback; 251 ResultSavingCookieCallback<int> callback;
251 cs->DeleteAllCreatedBetweenForHostAsync( 252 cs->DeleteAllCreatedBetweenWithPredicateAsync(
252 delete_begin, delete_end, url, 253 delete_begin, delete_end, predicate,
253 base::Bind( 254 base::Bind(&ResultSavingCookieCallback<int>::Run,
254 &ResultSavingCookieCallback<int>::Run, 255 base::Unretained(&callback)));
255 base::Unretained(&callback)));
256 callback.WaitUntilDone(); 256 callback.WaitUntilDone();
257 return callback.result(); 257 return callback.result();
258 } 258 }
259 259
260 int DeleteSessionCookies(CookieStore* cs) { 260 int DeleteSessionCookies(CookieStore* cs) {
261 DCHECK(cs); 261 DCHECK(cs);
262 ResultSavingCookieCallback<int> callback; 262 ResultSavingCookieCallback<int> callback;
263 cs->DeleteSessionCookiesAsync( 263 cs->DeleteSessionCookiesAsync(
264 base::Bind( 264 base::Bind(
265 &ResultSavingCookieCallback<int>::Run, 265 &ResultSavingCookieCallback<int>::Run,
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 this->MatchCookieLines("C=D", 1037 this->MatchCookieLines("C=D",
1038 this->GetCookies(cs, this->http_www_google_.url())); 1038 this->GetCookies(cs, this->http_www_google_.url()));
1039 1039
1040 // Remove the cookie with a null ending time. 1040 // Remove the cookie with a null ending time.
1041 EXPECT_EQ(1, this->DeleteCreatedBetween(cs, last_minute, base::Time())); 1041 EXPECT_EQ(1, this->DeleteCreatedBetween(cs, last_minute, base::Time()));
1042 // Check that the cookie disappeared. 1042 // Check that the cookie disappeared.
1043 this->MatchCookieLines(std::string(), 1043 this->MatchCookieLines(std::string(),
1044 this->GetCookies(cs, this->http_www_google_.url())); 1044 this->GetCookies(cs, this->http_www_google_.url()));
1045 } 1045 }
1046 1046
1047 TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) { 1047 namespace {
1048 static bool CookieHasValue(const std::string& value,
1049 const CanonicalCookie& cookie) {
1050 return cookie.Value() == value;
1051 }
1052 }
1053
1054 TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenWithPredicate) {
1048 CookieStore* cs = this->GetCookieStore(); 1055 CookieStore* cs = this->GetCookieStore();
1049 GURL url_not_google("http://www.notgoogle.com");
1050 base::Time now = base::Time::Now(); 1056 base::Time now = base::Time::Now();
1057 base::Time last_month = base::Time::Now() - base::TimeDelta::FromDays(30);
1058 base::Time last_minute = base::Time::Now() - base::TimeDelta::FromMinutes(1);
1059 std::string desired_value("B");
1051 1060
1052 // These 3 cookies match the time range and host. 1061 // These 3 cookies match the time range and host.
1053 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "A=B")); 1062 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "A=B"));
1054 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "C=D")); 1063 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "C=D"));
1055 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "Y=Z")); 1064 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "Y=Z"));
1056 1065 EXPECT_TRUE(this->SetCookie(cs, this->https_www_google_.url(), "E=B"));
1057 // This cookie does not match host.
1058 EXPECT_TRUE(this->SetCookie(cs, url_not_google, "E=F"));
1059 1066
1060 // Delete cookies. 1067 // Delete cookies.
1061 EXPECT_EQ(3, // Deletes A=B, C=D, Y=Z 1068 EXPECT_EQ(2, // Deletes A=B, E=B
1062 this->DeleteAllCreatedBetweenForHost(cs, now, base::Time::Max(), 1069 this->DeleteAllCreatedBetweenWithPredicate(
1063 this->http_www_google_.url())); 1070 cs, now, base::Time::Max(),
1071 base::Bind(&CookieHasValue, desired_value)));
1072
1073 // Check that we deleted the right ones.
1074 this->MatchCookieLines("C=D;Y=Z",
1075 this->GetCookies(cs, this->https_www_google_.url()));
1076
1077 // Now check that using a null predicate will do nothing.
1078 EXPECT_EQ(0, this->DeleteAllCreatedBetweenWithPredicate(
1079 cs, now, base::Time::Max(), CookieStore::CookiePredicate()));
1080
1081 // Finally, check that we don't delete cookies when our time range is off.
1082 desired_value = "D";
1083 EXPECT_EQ(0, this->DeleteAllCreatedBetweenWithPredicate(
1084 cs, last_month, last_minute,
1085 base::Bind(&CookieHasValue, desired_value)));
1086 this->MatchCookieLines("C=D;Y=Z",
1087 this->GetCookies(cs, this->https_www_google_.url()));
1088 // Same thing, but with a good time range.
1089 EXPECT_EQ(1, this->DeleteAllCreatedBetweenWithPredicate(
1090 cs, now, base::Time::Max(),
1091 base::Bind(&CookieHasValue, desired_value)));
1092 this->MatchCookieLines("Y=Z",
1093 this->GetCookies(cs, this->https_www_google_.url()));
1064 } 1094 }
1065 1095
1066 TYPED_TEST_P(CookieStoreTest, TestSecure) { 1096 TYPED_TEST_P(CookieStoreTest, TestSecure) {
1067 CookieStore* cs = this->GetCookieStore(); 1097 CookieStore* cs = this->GetCookieStore();
1068 1098
1069 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "A=B")); 1099 EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "A=B"));
1070 this->MatchCookieLines("A=B", 1100 this->MatchCookieLines("A=B",
1071 this->GetCookies(cs, this->http_www_google_.url())); 1101 this->GetCookies(cs, this->http_www_google_.url()));
1072 this->MatchCookieLines("A=B", 1102 this->MatchCookieLines("A=B",
1073 this->GetCookies(cs, this->https_www_google_.url())); 1103 this->GetCookies(cs, this->https_www_google_.url()));
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 TestSettingCookiesWithHostDomainOnUnknownTLD, 1395 TestSettingCookiesWithHostDomainOnUnknownTLD,
1366 TestHostEndsWithDot, 1396 TestHostEndsWithDot,
1367 InvalidScheme, 1397 InvalidScheme,
1368 InvalidScheme_Read, 1398 InvalidScheme_Read,
1369 PathTest, 1399 PathTest,
1370 EmptyExpires, 1400 EmptyExpires,
1371 HttpOnlyTest, 1401 HttpOnlyTest,
1372 TestCookieDeletion, 1402 TestCookieDeletion,
1373 TestDeleteAll, 1403 TestDeleteAll,
1374 TestDeleteAllCreatedBetween, 1404 TestDeleteAllCreatedBetween,
1375 TestDeleteAllCreatedBetweenForHost, 1405 TestDeleteAllCreatedBetweenWithPredicate,
1376 TestSecure, 1406 TestSecure,
1377 NetUtilCookieTest, 1407 NetUtilCookieTest,
1378 OverwritePersistentCookie, 1408 OverwritePersistentCookie,
1379 CookieOrdering, 1409 CookieOrdering,
1380 GetAllCookiesAsync, 1410 GetAllCookiesAsync,
1381 DeleteCookieAsync, 1411 DeleteCookieAsync,
1382 DeleteCanonicalCookieAsync, 1412 DeleteCanonicalCookieAsync,
1383 DeleteSessionCookie); 1413 DeleteSessionCookie);
1384 1414
1385 } // namespace net 1415 } // namespace net
1386 1416
1387 #endif // NET_COOKIES_COOKIE_STORE_UNITTEST_H_ 1417 #endif // NET_COOKIES_COOKIE_STORE_UNITTEST_H_
OLDNEW
« no previous file with comments | « net/cookies/cookie_store_test_helpers.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698