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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/cookies/cookie_store_test_helpers.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cookies/cookie_store_unittest.h
diff --git a/net/cookies/cookie_store_unittest.h b/net/cookies/cookie_store_unittest.h
index ce8008f21b517539fbe4756c87d7bc5ab8fb0017..2d228a9ad9c11339f0a9a5f23692b615c99ad1fd 100644
--- a/net/cookies/cookie_store_unittest.h
+++ b/net/cookies/cookie_store_unittest.h
@@ -242,17 +242,17 @@ class CookieStoreTest : public testing::Test {
return callback.result();
}
- int DeleteAllCreatedBetweenForHost(CookieStore* cs,
- const base::Time delete_begin,
- const base::Time delete_end,
- const GURL& url) {
+ int DeleteAllCreatedBetweenWithPredicate(
+ CookieStore* cs,
+ const base::Time delete_begin,
+ const base::Time delete_end,
+ const CookieStore::CookiePredicate& predicate) {
DCHECK(cs);
ResultSavingCookieCallback<int> callback;
- cs->DeleteAllCreatedBetweenForHostAsync(
- delete_begin, delete_end, url,
- base::Bind(
- &ResultSavingCookieCallback<int>::Run,
- base::Unretained(&callback)));
+ cs->DeleteAllCreatedBetweenWithPredicateAsync(
+ delete_begin, delete_end, predicate,
+ base::Bind(&ResultSavingCookieCallback<int>::Run,
+ base::Unretained(&callback)));
callback.WaitUntilDone();
return callback.result();
}
@@ -1044,23 +1044,53 @@ TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetween) {
this->GetCookies(cs, this->http_www_google_.url()));
}
-TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) {
+namespace {
+static bool CookieHasValue(const std::string& value,
+ const CanonicalCookie& cookie) {
+ return cookie.Value() == value;
+}
+}
+
+TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenWithPredicate) {
CookieStore* cs = this->GetCookieStore();
- GURL url_not_google("http://www.notgoogle.com");
base::Time now = base::Time::Now();
+ base::Time last_month = base::Time::Now() - base::TimeDelta::FromDays(30);
+ base::Time last_minute = base::Time::Now() - base::TimeDelta::FromMinutes(1);
+ std::string desired_value("B");
// These 3 cookies match the time range and host.
EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "A=B"));
EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "C=D"));
EXPECT_TRUE(this->SetCookie(cs, this->http_www_google_.url(), "Y=Z"));
-
- // This cookie does not match host.
- EXPECT_TRUE(this->SetCookie(cs, url_not_google, "E=F"));
+ EXPECT_TRUE(this->SetCookie(cs, this->https_www_google_.url(), "E=B"));
// Delete cookies.
- EXPECT_EQ(3, // Deletes A=B, C=D, Y=Z
- this->DeleteAllCreatedBetweenForHost(cs, now, base::Time::Max(),
- this->http_www_google_.url()));
+ EXPECT_EQ(2, // Deletes A=B, E=B
+ this->DeleteAllCreatedBetweenWithPredicate(
+ cs, now, base::Time::Max(),
+ base::Bind(&CookieHasValue, desired_value)));
+
+ // Check that we deleted the right ones.
+ this->MatchCookieLines("C=D;Y=Z",
+ this->GetCookies(cs, this->https_www_google_.url()));
+
+ // Now check that using a null predicate will do nothing.
+ EXPECT_EQ(0, this->DeleteAllCreatedBetweenWithPredicate(
+ cs, now, base::Time::Max(), CookieStore::CookiePredicate()));
+
+ // Finally, check that we don't delete cookies when our time range is off.
+ desired_value = "D";
+ EXPECT_EQ(0, this->DeleteAllCreatedBetweenWithPredicate(
+ cs, last_month, last_minute,
+ base::Bind(&CookieHasValue, desired_value)));
+ this->MatchCookieLines("C=D;Y=Z",
+ this->GetCookies(cs, this->https_www_google_.url()));
+ // Same thing, but with a good time range.
+ EXPECT_EQ(1, this->DeleteAllCreatedBetweenWithPredicate(
+ cs, now, base::Time::Max(),
+ base::Bind(&CookieHasValue, desired_value)));
+ this->MatchCookieLines("Y=Z",
+ this->GetCookies(cs, this->https_www_google_.url()));
}
TYPED_TEST_P(CookieStoreTest, TestSecure) {
@@ -1372,7 +1402,7 @@ REGISTER_TYPED_TEST_CASE_P(CookieStoreTest,
TestCookieDeletion,
TestDeleteAll,
TestDeleteAllCreatedBetween,
- TestDeleteAllCreatedBetweenForHost,
+ TestDeleteAllCreatedBetweenWithPredicate,
TestSecure,
NetUtilCookieTest,
OverwritePersistentCookie,
« 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