Chromium Code Reviews| 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..f20ae0ec6a509deef2552e869fe1c707ee0cd341 100644 |
| --- a/net/cookies/cookie_store_unittest.h |
| +++ b/net/cookies/cookie_store_unittest.h |
| @@ -248,11 +248,26 @@ class CookieStoreTest : public testing::Test { |
| const GURL& url) { |
| 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, |
| + CookieStore::CreatePredicateForHostCookies(url), |
| + base::Bind(&ResultSavingCookieCallback<int>::Run, |
| + base::Unretained(&callback))); |
| + callback.WaitUntilDone(); |
| + return callback.result(); |
| + } |
| + |
| + int DeleteAllCreatedBetweenWithPredicate( |
| + CookieStore* cs, |
| + const base::Time delete_begin, |
| + const base::Time delete_end, |
| + const CookieStore::CookiePredicate& predicate) { |
| + DCHECK(cs); |
| + ResultSavingCookieCallback<int> callback; |
| + cs->DeleteAllCreatedBetweenWithPredicateAsync( |
| + delete_begin, delete_end, predicate, |
| + base::Bind(&ResultSavingCookieCallback<int>::Run, |
| + base::Unretained(&callback))); |
| callback.WaitUntilDone(); |
| return callback.result(); |
| } |
| @@ -1063,6 +1078,34 @@ TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) { |
| this->http_www_google_.url())); |
| } |
| +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"); |
|
Mike West
2016/04/01 07:40:52
Nit: You could use `this->http_foo_com_.url()` ins
dmurph
2016/04/01 23:16:46
done.
|
| + base::Time now = base::Time::Now(); |
| + 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=B")); |
| + |
| + // Delete cookies. |
| + EXPECT_EQ(2, // Deletes A=B, C=D, Y=Z |
|
Mike West
2016/04/01 07:40:52
This doesn't delete `A=B`, does it?
It would be g
dmurph
2016/04/01 23:16:46
Done.
|
| + this->DeleteAllCreatedBetweenWithPredicate( |
| + cs, now, base::Time::Max(), |
| + base::Bind(&CookieHasValue, desired_value))); |
| +} |
| + |
| TYPED_TEST_P(CookieStoreTest, TestSecure) { |
| CookieStore* cs = this->GetCookieStore(); |
| @@ -1373,6 +1416,7 @@ REGISTER_TYPED_TEST_CASE_P(CookieStoreTest, |
| TestDeleteAll, |
| TestDeleteAllCreatedBetween, |
| TestDeleteAllCreatedBetweenForHost, |
| + TestDeleteAllCreatedBetweenWithPredicate, |
| TestSecure, |
| NetUtilCookieTest, |
| OverwritePersistentCookie, |