Index: net/http/http_network_layer_unittest.cc |
diff --git a/net/http/http_network_layer_unittest.cc b/net/http/http_network_layer_unittest.cc |
index b0bfd79e8f256d9e2e4bcdeded0db48ed4a09e55..0517fe01b43e5782d858b5983975880bb8e4adfd 100644 |
--- a/net/http/http_network_layer_unittest.cc |
+++ b/net/http/http_network_layer_unittest.cc |
@@ -290,6 +290,80 @@ TEST_F(HttpNetworkLayerTest, ProxyBypassIgnoredOnDirectConnection) { |
ASSERT_EQ(0u, proxy_service_->proxy_retry_info().size()); |
} |
+TEST_F(HttpNetworkLayerTest, ConfirmNetworkVerified) { |
rvargas (doing something else)
2013/04/08 19:11:52
nit: remove "Confirm" from the name of both tests?
Randy Smith (Not in Mondays)
2013/04/08 21:03:11
Done.
|
+ MockRead data_reads[] = { |
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"), |
+ MockRead("hello world"), |
+ MockRead(SYNCHRONOUS, OK), |
+ }; |
+ MockWrite data_writes[] = { |
+ MockWrite("GET / HTTP/1.1\r\n" |
+ "Host: www.google.com\r\n" |
rvargas (doing something else)
2013/04/08 19:11:52
nit: we usually don't extra indent when splitting
Randy Smith (Not in Mondays)
2013/04/08 21:03:11
Ok. I'll fix the GET test as well (which is where
|
+ "Connection: keep-alive\r\n" |
+ "User-Agent: Foo/1.0\r\n\r\n"), |
+ }; |
+ StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
+ data_writes, arraysize(data_writes)); |
rvargas (doing something else)
2013/04/08 19:11:52
nit: indent four less spaces
Randy Smith (Not in Mondays)
2013/04/08 21:03:11
Done (in GET test as well).
|
+ mock_socket_factory_.AddSocketDataProvider(&data); |
+ |
+ TestCompletionCallback callback; |
+ |
+ HttpRequestInfo request_info; |
+ request_info.url = GURL("http://www.google.com/"); |
+ request_info.method = "GET"; |
+ request_info.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
+ "Foo/1.0"); |
+ request_info.load_flags = LOAD_NORMAL; |
+ |
+ scoped_ptr<HttpTransaction> trans; |
+ int rv = factory_->CreateTransaction(DEFAULT_PRIORITY, &trans, NULL); |
+ EXPECT_EQ(OK, rv); |
+ |
+ rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
+ if (rv == ERR_IO_PENDING) |
+ rv = callback.WaitForResult(); |
rvargas (doing something else)
2013/04/08 19:11:52
nit: callback.GetResult(rv)
Randy Smith (Not in Mondays)
2013/04/08 21:03:11
Done (GET as well).
|
+ ASSERT_EQ(OK, rv); |
+ |
+ EXPECT_TRUE(trans->GetResponseInfo()->network_accessed); |
+} |
+ |
+TEST_F(HttpNetworkLayerTest, ConfirmNetworkUnVerified) { |
+ MockRead data_reads[] = { |
+ MockRead(ASYNC, ERR_CONNECTION_RESET), |
+ }; |
+ MockWrite data_writes[] = { |
+ MockWrite("GET / HTTP/1.1\r\n" |
+ "Host: www.google.com\r\n" |
+ "Connection: keep-alive\r\n" |
+ "User-Agent: Foo/1.0\r\n\r\n"), |
+ }; |
+ StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
+ data_writes, arraysize(data_writes)); |
+ mock_socket_factory_.AddSocketDataProvider(&data); |
+ |
+ TestCompletionCallback callback; |
+ |
+ HttpRequestInfo request_info; |
+ request_info.url = GURL("http://www.google.com/"); |
+ request_info.method = "GET"; |
+ request_info.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
+ "Foo/1.0"); |
+ request_info.load_flags = LOAD_NORMAL; |
+ |
+ scoped_ptr<HttpTransaction> trans; |
+ int rv = factory_->CreateTransaction(DEFAULT_PRIORITY, &trans, NULL); |
+ EXPECT_EQ(OK, rv); |
+ |
+ rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
+ if (rv == ERR_IO_PENDING) |
+ rv = callback.WaitForResult(); |
+ ASSERT_EQ(ERR_CONNECTION_RESET, rv); |
+ |
+ // If the response info is null, that means that any consumer won't |
+ // see the network accessed bit set. |
+ EXPECT_EQ(NULL, trans->GetResponseInfo()); |
+} |
+ |
} // namespace |
} // namespace net |