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 |