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 ee135242f89ad031161146e115e3b47409e11d46..ca288a17f0913ab445c773d6418c89e17144ddd0 100644 |
| --- a/net/cookies/cookie_store_unittest.h |
| +++ b/net/cookies/cookie_store_unittest.h |
| @@ -5,11 +5,17 @@ |
| #ifndef NET_COOKIES_COOKIE_STORE_UNITTEST_H_ |
| #define NET_COOKIES_COOKIE_STORE_UNITTEST_H_ |
| +#include <set> |
| +#include <string> |
| +#include <vector> |
| + |
| #include "base/bind.h" |
| #include "base/location.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/single_thread_task_runner.h" |
| +#include "base/strings/string_split.h" |
| #include "base/strings/string_tokenizer.h" |
| +#include "base/strings/string_util.h" |
| #include "base/thread_task_runner_handle.h" |
| #include "base/threading/thread.h" |
| #include "net/cookies/cookie_monster.h" |
| @@ -32,15 +38,7 @@ using base::Thread; |
| const int kTimeout = 1000; |
| -const char kUrlFtp[] = "ftp://ftp.google.izzle/"; |
| -const char kUrlGoogle[] = "http://www.google.izzle"; |
| -const char kUrlGoogleFoo[] = "http://www.google.izzle/foo"; |
| -const char kUrlGoogleBar[] = "http://www.google.izzle/bar"; |
| -const char kUrlGoogleSecure[] = "https://www.google.izzle"; |
| -const char kUrlGoogleWebSocket[] = "ws://www.google.izzle"; |
| -const char kUrlGoogleWebSocketSecure[] = "wss://www.google.izzle"; |
| const char kValidCookieLine[] = "A=B; path=/"; |
| -const char kValidDomainCookieLine[] = "A=B; path=/; domain=google.izzle"; |
| // The CookieStoreTestTraits must have the following members: |
| // struct CookieStoreTestTraits { |
| @@ -77,11 +75,45 @@ const char kValidDomainCookieLine[] = "A=B; path=/; domain=google.izzle"; |
| template <class CookieStoreTestTraits> |
| class CookieStoreTest : public testing::Test { |
| protected: |
| + class URLHelper { |
| + public: |
| + explicit URLHelper(const std::string& url_string) : url_(url_string) { |
| + std::vector<std::string> parts = SplitString( |
|
Mike West
2015/10/09 15:08:15
This constructor should be in a `.cc` file.
cmumford
2015/10/09 21:21:01
Done.
|
| + url_.host(), ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); |
| + DCHECK_EQ(parts.size(), 3u); |
| + parts.erase(parts.begin()); |
| + domain_ = base::JoinString(parts, "."); |
|
Mike West
2015/10/09 15:08:16
I think you're trying to get the registerable doma
cmumford
2015/10/09 21:21:01
Done - thx for that pointer.
|
| + tld_ = parts[1]; |
|
Mike West
2015/10/09 15:08:16
This isn't how TLDs work. Consider `co.uk`, for ex
cmumford
2015/10/09 21:21:00
Yeah - I was only trying to satisfy the needs of t
|
| + } |
| + const std::string& TLD() const { return tld_; } |
| + const std::string& domain() const { return domain_; } |
| + std::string host() const { return url_.host(); } |
| + std::string spec() const { return url_.spec(); } |
| + const GURL& url() const { return url_; } |
| + const GURL AppendPath(const std::string& path) const { |
| + return GURL(url_.spec() + path); |
| + } |
| + std::string Format(const std::string& format_string) const { |
| + std::string new_string = format_string; |
|
Mike West
2015/10/09 15:08:15
This should also be in a `.cc` file.
cmumford
2015/10/09 21:21:01
Done.
|
| + base::ReplaceSubstringsAfterOffset(&new_string, 0, "%D", domain()); |
| + base::ReplaceSubstringsAfterOffset(&new_string, 0, "%T", TLD()); |
| + return new_string; |
| + } |
| + |
| + private: |
| + const GURL url_; |
| + std::string tld_; |
| + std::string domain_; |
| + }; |
| + |
| CookieStoreTest() |
| - : url_google_(kUrlGoogle), |
| - url_google_secure_(kUrlGoogleSecure), |
| - url_google_foo_(kUrlGoogleFoo), |
| - url_google_bar_(kUrlGoogleBar) { |
| + : http_www_google_("http://www.google.izzle"), |
| + https_www_google_("https://www.google.izzle"), |
| + ftp_google_("ftp://ftp.google.izzle/"), |
| + ws_www_google_("ws://www.google.izzle"), |
| + wss_www_google_("wss://www.google.izzle"), |
| + www_google_foo_("http://www.google.izzle/foo"), |
| + www_google_bar_("http://www.google.izzle/bar") { |
| // This test may be used outside of the net test suite, and thus may not |
| // have a message loop. |
| if (!base::MessageLoop::current()) |
| @@ -252,10 +284,13 @@ class CookieStoreTest : public testing::Test { |
| << "\" does not match \"" << line << "\""; |
| } |
| - GURL url_google_; |
| - GURL url_google_secure_; |
| - GURL url_google_foo_; |
| - GURL url_google_bar_; |
| + const URLHelper http_www_google_; |
| + const URLHelper https_www_google_; |
| + const URLHelper ftp_google_; |
| + const URLHelper ws_www_google_; |
| + const URLHelper wss_www_google_; |
| + const URLHelper www_google_foo_; |
| + const URLHelper www_google_bar_; |
| scoped_ptr<base::WeakPtrFactory<base::MessageLoop> > weak_factory_; |
| scoped_ptr<base::MessageLoop> message_loop_; |
| @@ -282,55 +317,69 @@ TYPED_TEST_P(CookieStoreTest, TypeTest) { |
| TYPED_TEST_P(CookieStoreTest, DomainTest) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| - EXPECT_TRUE(this->SetCookie( |
| - cs.get(), this->url_google_, "C=D; domain=.google.izzle")); |
| - this->MatchCookieLines("A=B; C=D", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + EXPECT_TRUE( |
| + this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("C=D; domain=.%D"))); |
| + this->MatchCookieLines( |
| + "A=B; C=D", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Verify that A=B was set as a host cookie rather than a domain |
| // cookie -- should not be accessible from a sub sub-domain. |
| this->MatchCookieLines( |
| - "C=D", this->GetCookies(cs.get(), GURL("http://foo.www.google.izzle"))); |
| + "C=D", |
| + this->GetCookies( |
| + cs.get(), GURL(this->http_www_google_.Format("http://foo.www.%D")))); |
| // Test and make sure we find domain cookies on the same domain. |
| - EXPECT_TRUE(this->SetCookie( |
| - cs.get(), this->url_google_, "E=F; domain=.www.google.izzle")); |
| - this->MatchCookieLines("A=B; C=D; E=F", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE( |
| + this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("E=F; domain=.www.%D"))); |
| + this->MatchCookieLines( |
| + "A=B; C=D; E=F", |
| + this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Test setting a domain= that doesn't start w/ a dot, should |
| // treat it as a domain cookie, as if there was a pre-pended dot. |
| - EXPECT_TRUE(this->SetCookie( |
| - cs.get(), this->url_google_, "G=H; domain=www.google.izzle")); |
| - this->MatchCookieLines("A=B; C=D; E=F; G=H", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE( |
| + this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("G=H; domain=www.%D"))); |
| + this->MatchCookieLines( |
| + "A=B; C=D; E=F; G=H", |
| + this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Test domain enforcement, should fail on a sub-domain or something too deep. |
| EXPECT_FALSE( |
| - this->SetCookie(cs.get(), this->url_google_, "I=J; domain=.izzle")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), GURL("http://a.izzle"))); |
| + this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("I=J; domain=.%T"))); |
| + this->MatchCookieLines( |
| + std::string(), |
| + this->GetCookies(cs.get(), |
| + GURL(this->http_www_google_.Format("http://a.%T")))); |
| EXPECT_FALSE(this->SetCookie( |
| - cs.get(), this->url_google_, "K=L; domain=.bla.www.google.izzle")); |
| + cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("K=L; domain=.bla.www.%D"))); |
| this->MatchCookieLines( |
| "C=D; E=F; G=H", |
| - this->GetCookies(cs.get(), GURL("http://bla.www.google.izzle"))); |
| - this->MatchCookieLines("A=B; C=D; E=F; G=H", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->GetCookies( |
| + cs.get(), GURL(this->http_www_google_.Format("http://bla.www.%D")))); |
| + this->MatchCookieLines( |
| + "A=B; C=D; E=F; G=H", |
| + this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| // FireFox recognizes domains containing trailing periods as valid. |
| // IE and Safari do not. Assert the expected policy here. |
| TYPED_TEST_P(CookieStoreTest, DomainWithTrailingDotTest) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_FALSE(this->SetCookie( |
| - cs.get(), this->url_google_, "a=1; domain=.www.google.com.")); |
| - EXPECT_FALSE(this->SetCookie( |
| - cs.get(), this->url_google_, "b=2; domain=.www.google.com..")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_FALSE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + "a=1; domain=.www.google.com.")); |
| + EXPECT_FALSE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + "b=2; domain=.www.google.com..")); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| // Test that cookies can bet set on higher level domains. |
| @@ -599,18 +648,22 @@ TYPED_TEST_P(CookieStoreTest, InvalidScheme) { |
| return; |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_FALSE(this->SetCookie(cs.get(), GURL(kUrlFtp), kValidCookieLine)); |
| + EXPECT_FALSE( |
| + this->SetCookie(cs.get(), this->ftp_google_.url(), kValidCookieLine)); |
| } |
| TYPED_TEST_P(CookieStoreTest, InvalidScheme_Read) { |
| if (!TypeParam::filters_schemes) |
| return; |
| + const std::string kValidDomainCookieLine = |
| + this->http_www_google_.Format("A=B; path=/; domain=%D"); |
| + |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_TRUE( |
| - this->SetCookie(cs.get(), GURL(kUrlGoogle), kValidDomainCookieLine)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + kValidDomainCookieLine)); |
| this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), GURL(kUrlFtp))); |
| + this->GetCookies(cs.get(), this->ftp_google_.url())); |
| } |
| TYPED_TEST_P(CookieStoreTest, PathTest) { |
| @@ -671,117 +724,124 @@ TYPED_TEST_P(CookieStoreTest, HttpOnlyTest) { |
| options.set_include_httponly(); |
| // Create a httponly cookie. |
| - EXPECT_TRUE(this->SetCookieWithOptions( |
| - cs.get(), this->url_google_, "A=B; httponly", options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B; httponly", options)); |
| // Check httponly read protection. |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| this->MatchCookieLines( |
| - "A=B", this->GetCookiesWithOptions(cs.get(), this->url_google_, options)); |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookiesWithOptions(cs.get(), this->http_www_google_.url(), |
| + options)); |
| // Check httponly overwrite protection. |
| - EXPECT_FALSE(this->SetCookie(cs.get(), this->url_google_, "A=C")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_FALSE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=C")); |
| this->MatchCookieLines( |
| - "A=B", this->GetCookiesWithOptions(cs.get(), this->url_google_, options)); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=C", options)); |
| - this->MatchCookieLines("A=C", this->GetCookies(cs.get(), this->url_google_)); |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookiesWithOptions(cs.get(), this->http_www_google_.url(), |
| + options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=C", options)); |
| + this->MatchCookieLines( |
| + "A=C", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Check httponly create protection. |
| - EXPECT_FALSE(this->SetCookie(cs.get(), this->url_google_, "B=A; httponly")); |
| + EXPECT_FALSE( |
| + this->SetCookie(cs.get(), this->http_www_google_.url(), "B=A; httponly")); |
| this->MatchCookieLines( |
| - "A=C", this->GetCookiesWithOptions(cs.get(), this->url_google_, options)); |
| - EXPECT_TRUE(this->SetCookieWithOptions( |
| - cs.get(), this->url_google_, "B=A; httponly", options)); |
| + "A=C", this->GetCookiesWithOptions(cs.get(), this->http_www_google_.url(), |
| + options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "B=A; httponly", options)); |
| + this->MatchCookieLines("A=C; B=A", |
| + this->GetCookiesWithOptions( |
| + cs.get(), this->http_www_google_.url(), options)); |
| this->MatchCookieLines( |
| - "A=C; B=A", |
| - this->GetCookiesWithOptions(cs.get(), this->url_google_, options)); |
| - this->MatchCookieLines("A=C", this->GetCookies(cs.get(), this->url_google_)); |
| + "A=C", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| TYPED_TEST_P(CookieStoreTest, TestCookieDeletion) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| // Create a session cookie. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, kValidCookieLine)); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + kValidCookieLine)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete it via Max-Age. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; max-age=0")); |
| - this->MatchCookieLineWithTimeout(cs.get(), this->url_google_, std::string()); |
| + this->MatchCookieLineWithTimeout(cs.get(), this->http_www_google_.url(), |
| + std::string()); |
| // Create a session cookie. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, kValidCookieLine)); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + kValidCookieLine)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete it via Expires. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + |
| "; expires=Mon, 18-Apr-1977 22:50:13 GMT")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Create a persistent cookie. |
| EXPECT_TRUE(this->SetCookie( |
| - cs.get(), |
| - this->url_google_, |
| + cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; expires=Mon, 18-Apr-22 22:50:13 GMT")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete it via Max-Age. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; max-age=0")); |
| - this->MatchCookieLineWithTimeout(cs.get(), this->url_google_, std::string()); |
| + this->MatchCookieLineWithTimeout(cs.get(), this->http_www_google_.url(), |
| + std::string()); |
| // Create a persistent cookie. |
| EXPECT_TRUE(this->SetCookie( |
| - cs.get(), |
| - this->url_google_, |
| + cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; expires=Mon, 18-Apr-22 22:50:13 GMT")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete it via Expires. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + |
| "; expires=Mon, 18-Apr-1977 22:50:13 GMT")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Create a persistent cookie. |
| EXPECT_TRUE(this->SetCookie( |
| - cs.get(), |
| - this->url_google_, |
| + cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; expires=Mon, 18-Apr-22 22:50:13 GMT")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Check that it is not deleted with significant enough clock skew. |
| base::Time server_time; |
| EXPECT_TRUE(base::Time::FromString("Sun, 17-Apr-1977 22:50:13 GMT", |
| &server_time)); |
| EXPECT_TRUE(this->SetCookieWithServerTime( |
| - cs.get(), |
| - this->url_google_, |
| + cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; expires=Mon, 18-Apr-1977 22:50:13 GMT", |
| server_time)); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Create a persistent cookie. |
| EXPECT_TRUE(this->SetCookie( |
| - cs.get(), |
| - this->url_google_, |
| + cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + "; expires=Mon, 18-Apr-22 22:50:13 GMT")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete it via Expires, with a unix epoch of 0. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| std::string(kValidCookieLine) + |
| "; expires=Thu, 1-Jan-1970 00:00:00 GMT")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetween) { |
| @@ -796,32 +856,35 @@ TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetween) { |
| base::TimeDelta::FromDays(30); |
| // Add a cookie. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| // Check that the cookie is in the store. |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Remove cookies in empty intervals. |
| EXPECT_EQ(0, this->DeleteCreatedBetween(cs.get(), last_month, last_minute)); |
| EXPECT_EQ(0, this->DeleteCreatedBetween(cs.get(), next_minute, next_month)); |
| // Check that the cookie is still there. |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Remove the cookie with an interval defined by two dates. |
| EXPECT_EQ(1, this->DeleteCreatedBetween(cs.get(), last_minute, next_minute)); |
| // Check that the cookie disappeared. |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Add another cookie. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "C=D")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "C=D")); |
| // Check that the cookie is in the store. |
| - this->MatchCookieLines("C=D", this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + "C=D", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Remove the cookie with a null ending time. |
| EXPECT_EQ(1, this->DeleteCreatedBetween(cs.get(), last_minute, base::Time())); |
| // Check that the cookie disappeared. |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + this->MatchCookieLines( |
| + std::string(), this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) { |
| @@ -830,9 +893,9 @@ TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) { |
| base::Time now = base::Time::Now(); |
| // These 3 cookies match the time range and host. |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "C=D")); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "Y=Z")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "C=D")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "Y=Z")); |
| // This cookie does not match host. |
| EXPECT_TRUE(this->SetCookie(cs.get(), url_not_google, "E=F")); |
| @@ -840,39 +903,43 @@ TYPED_TEST_P(CookieStoreTest, TestDeleteAllCreatedBetweenForHost) { |
| // Delete cookies. |
| EXPECT_EQ( |
| 3, // Deletes A=B, C=D, Y=Z |
| - this->DeleteAllCreatedBetweenForHost( |
| - cs.get(), now, base::Time::Max(), this->url_google_)); |
| + this->DeleteAllCreatedBetweenForHost(cs.get(), now, base::Time::Max(), |
| + this->http_www_google_.url())); |
| } |
| TYPED_TEST_P(CookieStoreTest, TestSecure) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| - this->MatchCookieLines("A=B", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| this->MatchCookieLines( |
| - "A=B", this->GetCookies(cs.get(), this->url_google_secure_)); |
| + "A=B", this->GetCookies(cs.get(), this->https_www_google_.url())); |
| - EXPECT_TRUE( |
| - this->SetCookie(cs.get(), this->url_google_secure_, "A=B; secure")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->https_www_google_.url(), |
| + "A=B; secure")); |
| // The secure should overwrite the non-secure. |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| - this->MatchCookieLines("A=B", |
| - this->GetCookies(cs.get(), this->url_google_secure_)); |
| + this->MatchCookieLines( |
| + std::string(), |
| + this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->https_www_google_.url())); |
| - EXPECT_TRUE( |
| - this->SetCookie(cs.get(), this->url_google_secure_, "D=E; secure")); |
| - this->MatchCookieLines(std::string(), |
| - this->GetCookies(cs.get(), this->url_google_)); |
| - this->MatchCookieLines("A=B; D=E", |
| - this->GetCookies(cs.get(), this->url_google_secure_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->https_www_google_.url(), |
| + "D=E; secure")); |
| + this->MatchCookieLines( |
| + std::string(), |
| + this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + this->MatchCookieLines( |
| + "A=B; D=E", this->GetCookies(cs.get(), this->https_www_google_.url())); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_secure_, "A=B")); |
| + EXPECT_TRUE( |
| + this->SetCookie(cs.get(), this->https_www_google_.url(), "A=B")); |
| // The non-secure should overwrite the secure. |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| - this->MatchCookieLines("D=E; A=B", |
| - this->GetCookies(cs.get(), this->url_google_secure_)); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| + this->MatchCookieLines( |
| + "D=E; A=B", this->GetCookies(cs.get(), this->https_www_google_.url())); |
| } |
| static const int kLastAccessThresholdMilliseconds = 200; |
| @@ -993,18 +1060,18 @@ TYPED_TEST_P(CookieStoreTest, CookieOrdering) { |
| TYPED_TEST_P(CookieStoreTest, DeleteSessionCookie) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| // Create a session cookie and a persistent cookie. |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), |
| + std::string(kValidCookieLine))); |
| EXPECT_TRUE(this->SetCookie( |
| - cs.get(), this->url_google_, std::string(kValidCookieLine))); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), |
| - this->url_google_, |
| - "C=D; path=/; domain=google.izzle;" |
| - "expires=Mon, 18-Apr-22 22:50:13 GMT")); |
| - this->MatchCookieLines("A=B; C=D", |
| - this->GetCookies(cs.get(), this->url_google_)); |
| + cs.get(), this->http_www_google_.url(), |
| + this->http_www_google_.Format("C=D; path=/; domain=%D;" |
| + "expires=Mon, 18-Apr-22 22:50:13 GMT"))); |
| + this->MatchCookieLines( |
| + "A=B; C=D", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| // Delete the session cookie. |
| this->DeleteSessionCookies(cs.get()); |
| // Check that the session cookie has been deleted but not the persistent one. |
| - EXPECT_EQ("C=D", this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_EQ("C=D", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| } |
| REGISTER_TYPED_TEST_CASE_P(CookieStoreTest, |
| @@ -1110,12 +1177,13 @@ TYPED_TEST_CASE_P(MultiThreadedCookieStoreTest); |
| // thread). |
| TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookies) { |
| scoped_refptr<CookieStore> cs(this->GetCookieStore()); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| - this->MatchCookieLines("A=B", this->GetCookies(cs.get(), this->url_google_)); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| + this->MatchCookieLines( |
| + "A=B", this->GetCookies(cs.get(), this->http_www_google_.url())); |
| StringResultCookieCallback callback(&this->other_thread_); |
| - base::Closure task = |
| - base::Bind(&MultiThreadedCookieStoreTest<TypeParam>::GetCookiesTask, |
| - base::Unretained(this), cs, this->url_google_, &callback); |
| + base::Closure task = base::Bind( |
| + &MultiThreadedCookieStoreTest<TypeParam>::GetCookiesTask, |
| + base::Unretained(this), cs, this->http_www_google_.url(), &callback); |
| this->RunOnOtherThread(task); |
| EXPECT_TRUE(callback.did_run()); |
| EXPECT_EQ("A=B", callback.result()); |
| @@ -1126,13 +1194,15 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookiesWithOptions) { |
| CookieOptions options; |
| if (!TypeParam::supports_http_only) |
| options.set_include_httponly(); |
| - EXPECT_TRUE(this->SetCookie(cs.get(), this->url_google_, "A=B")); |
| + EXPECT_TRUE(this->SetCookie(cs.get(), this->http_www_google_.url(), "A=B")); |
| this->MatchCookieLines( |
| - "A=B", this->GetCookiesWithOptions(cs.get(), this->url_google_, options)); |
| + "A=B", this->GetCookiesWithOptions(cs.get(), this->http_www_google_.url(), |
| + options)); |
| StringResultCookieCallback callback(&this->other_thread_); |
| base::Closure task = base::Bind( |
| &MultiThreadedCookieStoreTest<TypeParam>::GetCookiesWithOptionsTask, |
| - base::Unretained(this), cs, this->url_google_, options, &callback); |
| + base::Unretained(this), cs, this->http_www_google_.url(), options, |
| + &callback); |
| this->RunOnOtherThread(task); |
| EXPECT_TRUE(callback.did_run()); |
| EXPECT_EQ("A=B", callback.result()); |
| @@ -1143,12 +1213,13 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckSetCookieWithOptions) { |
| CookieOptions options; |
| if (!TypeParam::supports_http_only) |
| options.set_include_httponly(); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=B", options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B", options)); |
| ResultSavingCookieCallback<bool> callback(&this->other_thread_); |
| base::Closure task = base::Bind( |
| &MultiThreadedCookieStoreTest<TypeParam>::SetCookieWithOptionsTask, |
| - base::Unretained(this), cs, this->url_google_, "A=B", options, &callback); |
| + base::Unretained(this), cs, this->http_www_google_.url(), "A=B", options, |
| + &callback); |
| this->RunOnOtherThread(task); |
| EXPECT_TRUE(callback.did_run()); |
| EXPECT_TRUE(callback.result()); |
| @@ -1159,15 +1230,15 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteCookie) { |
| CookieOptions options; |
| if (!TypeParam::supports_http_only) |
| options.set_include_httponly(); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=B", options)); |
| - this->DeleteCookie(cs.get(), this->url_google_, "A"); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=B", options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B", options)); |
| + this->DeleteCookie(cs.get(), this->http_www_google_.url(), "A"); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B", options)); |
| NoResultCookieCallback callback(&this->other_thread_); |
| - base::Closure task = |
| - base::Bind(&MultiThreadedCookieStoreTest<TypeParam>::DeleteCookieTask, |
| - base::Unretained(this), cs, this->url_google_, "A", &callback); |
| + base::Closure task = base::Bind( |
| + &MultiThreadedCookieStoreTest<TypeParam>::DeleteCookieTask, |
| + base::Unretained(this), cs, this->http_www_google_.url(), "A", &callback); |
| this->RunOnOtherThread(task); |
| EXPECT_TRUE(callback.did_run()); |
| } |
| @@ -1177,17 +1248,15 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteSessionCookies) { |
| CookieOptions options; |
| if (!TypeParam::supports_http_only) |
| options.set_include_httponly(); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=B", options)); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), |
| - this->url_google_, |
| - "B=C; expires=Mon, 18-Apr-22 22:50:13 GMT", |
| - options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B", options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions( |
| + cs.get(), this->http_www_google_.url(), |
| + "B=C; expires=Mon, 18-Apr-22 22:50:13 GMT", options)); |
| EXPECT_EQ(1, this->DeleteSessionCookies(cs.get())); |
| EXPECT_EQ(0, this->DeleteSessionCookies(cs.get())); |
| - EXPECT_TRUE( |
| - this->SetCookieWithOptions(cs.get(), this->url_google_, "A=B", options)); |
| + EXPECT_TRUE(this->SetCookieWithOptions(cs.get(), this->http_www_google_.url(), |
| + "A=B", options)); |
| ResultSavingCookieCallback<int> callback(&this->other_thread_); |
| base::Closure task = base::Bind( |
| &MultiThreadedCookieStoreTest<TypeParam>::DeleteSessionCookiesTask, |