summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/url_request/url_request_unittest.cc')
-rw-r--r--net/url_request/url_request_unittest.cc38
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());