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 ecd33e95fe7c86141a754f42e4a74036964152a6..ad1885fba5bdfc8731bfd9044465be268d6b450a 100644 |
--- a/net/http/http_network_layer_unittest.cc |
+++ b/net/http/http_network_layer_unittest.cc |
@@ -88,12 +88,12 @@ TEST_F(HttpNetworkLayerTest, GET) { |
}; |
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"), |
+ "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)); |
+ data_writes, arraysize(data_writes)); |
mock_socket_factory_.AddSocketDataProvider(&data); |
TestCompletionCallback callback; |
@@ -110,8 +110,7 @@ TEST_F(HttpNetworkLayerTest, GET) { |
EXPECT_EQ(OK, rv); |
rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); |
- if (rv == ERR_IO_PENDING) |
- rv = callback.WaitForResult(); |
+ rv = callback.GetResult(rv); |
ASSERT_EQ(OK, rv); |
std::string contents; |
@@ -290,6 +289,76 @@ TEST_F(HttpNetworkLayerTest, ProxyBypassIgnoredOnDirectConnection) { |
ASSERT_EQ(0u, proxy_service_->proxy_retry_info().size()); |
} |
+TEST_F(HttpNetworkLayerTest, NetworkVerified) { |
+ 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" |
+ "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()); |
+ ASSERT_EQ(OK, callback.GetResult(rv)); |
+ |
+ EXPECT_TRUE(trans->GetResponseInfo()->network_accessed); |
+} |
+ |
+TEST_F(HttpNetworkLayerTest, NetworkUnVerified) { |
+ 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()); |
+ ASSERT_EQ(ERR_CONNECTION_RESET, callback.GetResult(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 |