| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
| 8 #include <stdarg.h> | 8 #include <stdarg.h> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 7630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7641 MockRead(true, 0, 0), | 7641 MockRead(true, 0, 0), |
| 7642 }; | 7642 }; |
| 7643 | 7643 |
| 7644 scoped_refptr<DelayedSocketData> spdy_data( | 7644 scoped_refptr<DelayedSocketData> spdy_data( |
| 7645 new DelayedSocketData( | 7645 new DelayedSocketData( |
| 7646 1, // wait for one write to finish before reading. | 7646 1, // wait for one write to finish before reading. |
| 7647 spdy_reads, arraysize(spdy_reads), | 7647 spdy_reads, arraysize(spdy_reads), |
| 7648 spdy_writes, arraysize(spdy_writes))); | 7648 spdy_writes, arraysize(spdy_writes))); |
| 7649 session_deps.socket_factory.AddSocketDataProvider(spdy_data); | 7649 session_deps.socket_factory.AddSocketDataProvider(spdy_data); |
| 7650 | 7650 |
| 7651 TestOldCompletionCallback callback; | 7651 TestOldCompletionCallback callback_old; |
| 7652 TestCompletionCallback callback; |
| 7652 | 7653 |
| 7653 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); | 7654 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); |
| 7654 | 7655 |
| 7655 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); | 7656 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); |
| 7656 | 7657 |
| 7657 int rv = trans->Start(&request, &callback, BoundNetLog()); | 7658 int rv = trans->Start(&request, &callback_old, BoundNetLog()); |
| 7658 EXPECT_EQ(ERR_IO_PENDING, rv); | 7659 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7659 EXPECT_EQ(OK, callback.WaitForResult()); | 7660 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7660 | 7661 |
| 7661 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7662 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 7662 ASSERT_TRUE(response != NULL); | 7663 ASSERT_TRUE(response != NULL); |
| 7663 ASSERT_TRUE(response->headers != NULL); | 7664 ASSERT_TRUE(response->headers != NULL); |
| 7664 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 7665 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 7665 | 7666 |
| 7666 std::string response_data; | 7667 std::string response_data; |
| 7667 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 7668 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 7668 EXPECT_EQ("hello world", response_data); | 7669 EXPECT_EQ("hello world", response_data); |
| 7669 | 7670 |
| 7670 // Set up an initial SpdySession in the pool to reuse. | 7671 // Set up an initial SpdySession in the pool to reuse. |
| 7671 HostPortPair host_port_pair("www.google.com", 443); | 7672 HostPortPair host_port_pair("www.google.com", 443); |
| 7672 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct()); | 7673 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct()); |
| 7673 scoped_refptr<SpdySession> spdy_session = | 7674 scoped_refptr<SpdySession> spdy_session = |
| 7674 session->spdy_session_pool()->Get(pair, BoundNetLog()); | 7675 session->spdy_session_pool()->Get(pair, BoundNetLog()); |
| 7675 scoped_refptr<TransportSocketParams> transport_params( | 7676 scoped_refptr<TransportSocketParams> transport_params( |
| 7676 new TransportSocketParams(host_port_pair, MEDIUM, false, false)); | 7677 new TransportSocketParams(host_port_pair, MEDIUM, false, false)); |
| 7677 | 7678 |
| 7678 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 7679 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 7679 EXPECT_EQ(ERR_IO_PENDING, | 7680 EXPECT_EQ(ERR_IO_PENDING, |
| 7680 connection->Init(host_port_pair.ToString(), | 7681 connection->Init(host_port_pair.ToString(), |
| 7681 transport_params, | 7682 transport_params, |
| 7682 LOWEST, | 7683 LOWEST, |
| 7683 &callback, | 7684 &callback_old, |
| 7684 session->GetTransportSocketPool(), | 7685 session->GetTransportSocketPool(), |
| 7685 BoundNetLog())); | 7686 BoundNetLog())); |
| 7686 EXPECT_EQ(OK, callback.WaitForResult()); | 7687 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7687 | 7688 |
| 7688 SSLConfig ssl_config; | 7689 SSLConfig ssl_config; |
| 7689 session->ssl_config_service()->GetSSLConfig(&ssl_config); | 7690 session->ssl_config_service()->GetSSLConfig(&ssl_config); |
| 7690 scoped_ptr<ClientSocketHandle> ssl_connection(new ClientSocketHandle); | 7691 scoped_ptr<ClientSocketHandle> ssl_connection(new ClientSocketHandle); |
| 7691 SSLClientSocketContext context; | 7692 SSLClientSocketContext context; |
| 7692 context.cert_verifier = session_deps.cert_verifier.get(); | 7693 context.cert_verifier = session_deps.cert_verifier.get(); |
| 7693 ssl_connection->set_socket(session_deps.socket_factory.CreateSSLClientSocket( | 7694 ssl_connection->set_socket(session_deps.socket_factory.CreateSSLClientSocket( |
| 7694 connection.release(), HostPortPair("" , 443), ssl_config, | 7695 connection.release(), HostPortPair("" , 443), ssl_config, |
| 7695 NULL /* ssl_host_info */, context)); | 7696 NULL /* ssl_host_info */, context)); |
| 7696 EXPECT_EQ(ERR_IO_PENDING, ssl_connection->socket()->Connect(&callback)); | 7697 EXPECT_EQ(ERR_IO_PENDING, |
| 7698 ssl_connection->socket()->Connect(callback.callback())); |
| 7697 EXPECT_EQ(OK, callback.WaitForResult()); | 7699 EXPECT_EQ(OK, callback.WaitForResult()); |
| 7698 | 7700 |
| 7699 EXPECT_EQ(OK, spdy_session->InitializeWithSocket(ssl_connection.release(), | 7701 EXPECT_EQ(OK, spdy_session->InitializeWithSocket(ssl_connection.release(), |
| 7700 true, OK)); | 7702 true, OK)); |
| 7701 | 7703 |
| 7702 trans.reset(new HttpNetworkTransaction(session)); | 7704 trans.reset(new HttpNetworkTransaction(session)); |
| 7703 | 7705 |
| 7704 rv = trans->Start(&request, &callback, BoundNetLog()); | 7706 rv = trans->Start(&request, &callback_old, BoundNetLog()); |
| 7705 EXPECT_EQ(ERR_IO_PENDING, rv); | 7707 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7706 EXPECT_EQ(OK, callback.WaitForResult()); | 7708 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7707 | 7709 |
| 7708 response = trans->GetResponseInfo(); | 7710 response = trans->GetResponseInfo(); |
| 7709 ASSERT_TRUE(response != NULL); | 7711 ASSERT_TRUE(response != NULL); |
| 7710 ASSERT_TRUE(response->headers != NULL); | 7712 ASSERT_TRUE(response->headers != NULL); |
| 7711 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 7713 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 7712 EXPECT_TRUE(response->was_fetched_via_spdy); | 7714 EXPECT_TRUE(response->was_fetched_via_spdy); |
| 7713 EXPECT_TRUE(response->was_npn_negotiated); | 7715 EXPECT_TRUE(response->was_npn_negotiated); |
| 7714 | 7716 |
| 7715 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 7717 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 7716 EXPECT_EQ("hello!", response_data); | 7718 EXPECT_EQ("hello!", response_data); |
| (...skipping 2127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9844 session->spdy_session_pool()->HasSession(host_port_proxy_pair_b)); | 9846 session->spdy_session_pool()->HasSession(host_port_proxy_pair_b)); |
| 9845 | 9847 |
| 9846 HttpStreamFactory::set_next_protos(std::vector<std::string>()); | 9848 HttpStreamFactory::set_next_protos(std::vector<std::string>()); |
| 9847 ClientSocketPoolManager::set_max_sockets_per_pool(old_max_sockets_per_pool); | 9849 ClientSocketPoolManager::set_max_sockets_per_pool(old_max_sockets_per_pool); |
| 9848 ClientSocketPoolManager::set_max_sockets_per_proxy_server( | 9850 ClientSocketPoolManager::set_max_sockets_per_proxy_server( |
| 9849 old_max_sockets_per_proxy_server); | 9851 old_max_sockets_per_proxy_server); |
| 9850 ClientSocketPoolManager::set_max_sockets_per_group(old_max_sockets_per_group); | 9852 ClientSocketPoolManager::set_max_sockets_per_group(old_max_sockets_per_group); |
| 9851 } | 9853 } |
| 9852 | 9854 |
| 9853 } // namespace net | 9855 } // namespace net |
| OLD | NEW |