diff options
Diffstat (limited to 'net/url_request/url_request_unittest.cc')
-rw-r--r-- | net/url_request/url_request_unittest.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index 7fe23bf..f6721ba 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc @@ -25,6 +25,7 @@ #include "base/stringprintf.h" #include "base/utf_string_conversions.h" #include "net/base/cookie_monster.h" +#include "net/base/cookie_store_test_helpers.h" #include "net/base/load_flags.h" #include "net/base/mock_host_resolver.h" #include "net/base/net_errors.h" @@ -1631,6 +1632,43 @@ TEST_F(URLRequestTestHTTP, BasicAuthWithCookies) { } } +TEST_F(URLRequestTest, DelayedCookieCallback) { + TestServer test_server(TestServer::TYPE_HTTP, FilePath()); + ASSERT_TRUE(test_server.Start()); + + scoped_refptr<URLRequestContext> context(new TestURLRequestContext()); + scoped_refptr<DelayedCookieMonster> delayed_cm = + new DelayedCookieMonster(); + scoped_refptr<CookieStore> cookie_store = delayed_cm; + context->set_cookie_store(delayed_cm); + + // Set up a cookie. + { + TestDelegate d; + URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), &d); + req.set_context(context); + req.Start(); + MessageLoop::current()->Run(); + EXPECT_EQ(0, d.blocked_get_cookies_count()); + EXPECT_EQ(0, d.blocked_set_cookie_count()); + EXPECT_EQ(1, d.set_cookie_count()); + } + + // Verify that the cookie is set. + { + TestDelegate d; + TestURLRequest req(test_server.GetURL("echoheader?Cookie"), &d); + req.set_context(context); + req.Start(); + MessageLoop::current()->Run(); + + EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") + != std::string::npos); + EXPECT_EQ(0, d.blocked_get_cookies_count()); + EXPECT_EQ(0, d.blocked_set_cookie_count()); + } +} + TEST_F(URLRequestTest, DoNotSendCookies) { TestServer test_server(TestServer::TYPE_HTTP, FilePath()); ASSERT_TRUE(test_server.Start()); |