Chromium Code Reviews| 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 |