| 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 7600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7611 MockRead(true, 0, 0), | 7611 MockRead(true, 0, 0), |
| 7612 }; | 7612 }; |
| 7613 | 7613 |
| 7614 scoped_refptr<DelayedSocketData> spdy_data( | 7614 scoped_refptr<DelayedSocketData> spdy_data( |
| 7615 new DelayedSocketData( | 7615 new DelayedSocketData( |
| 7616 1, // wait for one write to finish before reading. | 7616 1, // wait for one write to finish before reading. |
| 7617 spdy_reads, arraysize(spdy_reads), | 7617 spdy_reads, arraysize(spdy_reads), |
| 7618 spdy_writes, arraysize(spdy_writes))); | 7618 spdy_writes, arraysize(spdy_writes))); |
| 7619 session_deps.socket_factory.AddSocketDataProvider(spdy_data); | 7619 session_deps.socket_factory.AddSocketDataProvider(spdy_data); |
| 7620 | 7620 |
| 7621 TestOldCompletionCallback callback; | 7621 TestOldCompletionCallback callback_old; |
| 7622 TestCompletionCallback callback; |
| 7622 | 7623 |
| 7623 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); | 7624 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); |
| 7624 | 7625 |
| 7625 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); | 7626 scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session)); |
| 7626 | 7627 |
| 7627 int rv = trans->Start(&request, &callback, BoundNetLog()); | 7628 int rv = trans->Start(&request, &callback_old, BoundNetLog()); |
| 7628 EXPECT_EQ(ERR_IO_PENDING, rv); | 7629 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7629 EXPECT_EQ(OK, callback.WaitForResult()); | 7630 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7630 | 7631 |
| 7631 const HttpResponseInfo* response = trans->GetResponseInfo(); | 7632 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 7632 ASSERT_TRUE(response != NULL); | 7633 ASSERT_TRUE(response != NULL); |
| 7633 ASSERT_TRUE(response->headers != NULL); | 7634 ASSERT_TRUE(response->headers != NULL); |
| 7634 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 7635 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 7635 | 7636 |
| 7636 std::string response_data; | 7637 std::string response_data; |
| 7637 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 7638 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 7638 EXPECT_EQ("hello world", response_data); | 7639 EXPECT_EQ("hello world", response_data); |
| 7639 | 7640 |
| 7640 // Set up an initial SpdySession in the pool to reuse. | 7641 // Set up an initial SpdySession in the pool to reuse. |
| 7641 HostPortPair host_port_pair("www.google.com", 443); | 7642 HostPortPair host_port_pair("www.google.com", 443); |
| 7642 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct()); | 7643 HostPortProxyPair pair(host_port_pair, ProxyServer::Direct()); |
| 7643 scoped_refptr<SpdySession> spdy_session = | 7644 scoped_refptr<SpdySession> spdy_session = |
| 7644 session->spdy_session_pool()->Get(pair, BoundNetLog()); | 7645 session->spdy_session_pool()->Get(pair, BoundNetLog()); |
| 7645 scoped_refptr<TransportSocketParams> transport_params( | 7646 scoped_refptr<TransportSocketParams> transport_params( |
| 7646 new TransportSocketParams(host_port_pair, MEDIUM, false, false)); | 7647 new TransportSocketParams(host_port_pair, MEDIUM, false, false)); |
| 7647 | 7648 |
| 7648 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 7649 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 7649 EXPECT_EQ(ERR_IO_PENDING, | 7650 EXPECT_EQ(ERR_IO_PENDING, |
| 7650 connection->Init(host_port_pair.ToString(), | 7651 connection->Init(host_port_pair.ToString(), |
| 7651 transport_params, | 7652 transport_params, |
| 7652 LOWEST, | 7653 LOWEST, |
| 7653 &callback, | 7654 &callback_old, |
| 7654 session->GetTransportSocketPool(), | 7655 session->GetTransportSocketPool(), |
| 7655 BoundNetLog())); | 7656 BoundNetLog())); |
| 7656 EXPECT_EQ(OK, callback.WaitForResult()); | 7657 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7657 | 7658 |
| 7658 SSLConfig ssl_config; | 7659 SSLConfig ssl_config; |
| 7659 session->ssl_config_service()->GetSSLConfig(&ssl_config); | 7660 session->ssl_config_service()->GetSSLConfig(&ssl_config); |
| 7660 scoped_ptr<ClientSocketHandle> ssl_connection(new ClientSocketHandle); | 7661 scoped_ptr<ClientSocketHandle> ssl_connection(new ClientSocketHandle); |
| 7661 SSLClientSocketContext context; | 7662 SSLClientSocketContext context; |
| 7662 context.cert_verifier = session_deps.cert_verifier.get(); | 7663 context.cert_verifier = session_deps.cert_verifier.get(); |
| 7663 ssl_connection->set_socket(session_deps.socket_factory.CreateSSLClientSocket( | 7664 ssl_connection->set_socket(session_deps.socket_factory.CreateSSLClientSocket( |
| 7664 connection.release(), HostPortPair("" , 443), ssl_config, | 7665 connection.release(), HostPortPair("" , 443), ssl_config, |
| 7665 NULL /* ssl_host_info */, context)); | 7666 NULL /* ssl_host_info */, context)); |
| 7666 EXPECT_EQ(ERR_IO_PENDING, ssl_connection->socket()->Connect(&callback)); | 7667 EXPECT_EQ(ERR_IO_PENDING, |
| 7668 ssl_connection->socket()->Connect(callback.callback())); |
| 7667 EXPECT_EQ(OK, callback.WaitForResult()); | 7669 EXPECT_EQ(OK, callback.WaitForResult()); |
| 7668 | 7670 |
| 7669 EXPECT_EQ(OK, spdy_session->InitializeWithSocket(ssl_connection.release(), | 7671 EXPECT_EQ(OK, spdy_session->InitializeWithSocket(ssl_connection.release(), |
| 7670 true, OK)); | 7672 true, OK)); |
| 7671 | 7673 |
| 7672 trans.reset(new HttpNetworkTransaction(session)); | 7674 trans.reset(new HttpNetworkTransaction(session)); |
| 7673 | 7675 |
| 7674 rv = trans->Start(&request, &callback, BoundNetLog()); | 7676 rv = trans->Start(&request, &callback_old, BoundNetLog()); |
| 7675 EXPECT_EQ(ERR_IO_PENDING, rv); | 7677 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 7676 EXPECT_EQ(OK, callback.WaitForResult()); | 7678 EXPECT_EQ(OK, callback_old.WaitForResult()); |
| 7677 | 7679 |
| 7678 response = trans->GetResponseInfo(); | 7680 response = trans->GetResponseInfo(); |
| 7679 ASSERT_TRUE(response != NULL); | 7681 ASSERT_TRUE(response != NULL); |
| 7680 ASSERT_TRUE(response->headers != NULL); | 7682 ASSERT_TRUE(response->headers != NULL); |
| 7681 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 7683 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 7682 EXPECT_TRUE(response->was_fetched_via_spdy); | 7684 EXPECT_TRUE(response->was_fetched_via_spdy); |
| 7683 EXPECT_TRUE(response->was_npn_negotiated); | 7685 EXPECT_TRUE(response->was_npn_negotiated); |
| 7684 | 7686 |
| 7685 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 7687 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 7686 EXPECT_EQ("hello!", response_data); | 7688 EXPECT_EQ("hello!", response_data); |
| (...skipping 2127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9814 session->spdy_session_pool()->HasSession(host_port_proxy_pair_b)); | 9816 session->spdy_session_pool()->HasSession(host_port_proxy_pair_b)); |
| 9815 | 9817 |
| 9816 HttpStreamFactory::set_next_protos(std::vector<std::string>()); | 9818 HttpStreamFactory::set_next_protos(std::vector<std::string>()); |
| 9817 ClientSocketPoolManager::set_max_sockets_per_pool(old_max_sockets_per_pool); | 9819 ClientSocketPoolManager::set_max_sockets_per_pool(old_max_sockets_per_pool); |
| 9818 ClientSocketPoolManager::set_max_sockets_per_proxy_server( | 9820 ClientSocketPoolManager::set_max_sockets_per_proxy_server( |
| 9819 old_max_sockets_per_proxy_server); | 9821 old_max_sockets_per_proxy_server); |
| 9820 ClientSocketPoolManager::set_max_sockets_per_group(old_max_sockets_per_group); | 9822 ClientSocketPoolManager::set_max_sockets_per_group(old_max_sockets_per_group); |
| 9821 } | 9823 } |
| 9822 | 9824 |
| 9823 } // namespace net | 9825 } // namespace net |
| OLD | NEW |