| 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/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
| 6 | 6 |
| 7 #include "net/base/ip_endpoint.h" | 7 #include "net/base/ip_endpoint.h" |
| 8 #include "net/spdy/spdy_io_buffer.h" | 8 #include "net/spdy/spdy_io_buffer.h" |
| 9 #include "net/spdy/spdy_session_pool.h" | 9 #include "net/spdy/spdy_session_pool.h" |
| 10 #include "net/spdy/spdy_stream.h" | 10 #include "net/spdy/spdy_stream.h" |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 | 138 |
| 139 scoped_refptr<TransportSocketParams> transport_params( | 139 scoped_refptr<TransportSocketParams> transport_params( |
| 140 new TransportSocketParams(test_host_port_pair, | 140 new TransportSocketParams(test_host_port_pair, |
| 141 MEDIUM, | 141 MEDIUM, |
| 142 false, | 142 false, |
| 143 false)); | 143 false)); |
| 144 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 144 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 145 EXPECT_EQ(OK, | 145 EXPECT_EQ(OK, |
| 146 connection->Init(test_host_port_pair.ToString(), | 146 connection->Init(test_host_port_pair.ToString(), |
| 147 transport_params, MEDIUM, | 147 transport_params, MEDIUM, |
| 148 NULL, http_session->transport_socket_pool(), | 148 NULL, http_session->GetTransportSocketPool(), |
| 149 BoundNetLog())); | 149 BoundNetLog())); |
| 150 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 150 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 151 | 151 |
| 152 // Flush the SpdySession::OnReadComplete() task. | 152 // Flush the SpdySession::OnReadComplete() task. |
| 153 MessageLoop::current()->RunAllPending(); | 153 MessageLoop::current()->RunAllPending(); |
| 154 | 154 |
| 155 EXPECT_FALSE(spdy_session_pool->HasSession(pair)); | 155 EXPECT_FALSE(spdy_session_pool->HasSession(pair)); |
| 156 | 156 |
| 157 scoped_refptr<SpdySession> session2 = | 157 scoped_refptr<SpdySession> session2 = |
| 158 spdy_session_pool->Get(pair, BoundNetLog()); | 158 spdy_session_pool->Get(pair, BoundNetLog()); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 new TransportSocketParams(test_host_port_pair, | 211 new TransportSocketParams(test_host_port_pair, |
| 212 MEDIUM, | 212 MEDIUM, |
| 213 false, | 213 false, |
| 214 false)); | 214 false)); |
| 215 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 215 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 216 EXPECT_EQ(OK, | 216 EXPECT_EQ(OK, |
| 217 connection->Init(test_host_port_pair.ToString(), | 217 connection->Init(test_host_port_pair.ToString(), |
| 218 transport_params, | 218 transport_params, |
| 219 MEDIUM, | 219 MEDIUM, |
| 220 NULL, | 220 NULL, |
| 221 http_session->transport_socket_pool(), | 221 http_session->GetTransportSocketPool(), |
| 222 BoundNetLog())); | 222 BoundNetLog())); |
| 223 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 223 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 224 | 224 |
| 225 scoped_refptr<SpdyStream> spdy_stream1; | 225 scoped_refptr<SpdyStream> spdy_stream1; |
| 226 TestOldCompletionCallback callback1; | 226 TestOldCompletionCallback callback1; |
| 227 EXPECT_EQ(OK, session->CreateStream(url, | 227 EXPECT_EQ(OK, session->CreateStream(url, |
| 228 MEDIUM, | 228 MEDIUM, |
| 229 &spdy_stream1, | 229 &spdy_stream1, |
| 230 BoundNetLog(), | 230 BoundNetLog(), |
| 231 &callback1)); | 231 &callback1)); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 new TransportSocketParams(test_host_port_pair, | 302 new TransportSocketParams(test_host_port_pair, |
| 303 MEDIUM, | 303 MEDIUM, |
| 304 false, | 304 false, |
| 305 false)); | 305 false)); |
| 306 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 306 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 307 EXPECT_EQ(OK, | 307 EXPECT_EQ(OK, |
| 308 connection->Init(test_host_port_pair.ToString(), | 308 connection->Init(test_host_port_pair.ToString(), |
| 309 transport_params, | 309 transport_params, |
| 310 MEDIUM, | 310 MEDIUM, |
| 311 NULL, | 311 NULL, |
| 312 http_session->transport_socket_pool(), | 312 http_session->GetTransportSocketPool(), |
| 313 BoundNetLog())); | 313 BoundNetLog())); |
| 314 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 314 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 315 | 315 |
| 316 scoped_refptr<SpdyStream> spdy_stream1; | 316 scoped_refptr<SpdyStream> spdy_stream1; |
| 317 TestOldCompletionCallback callback1; | 317 TestOldCompletionCallback callback1; |
| 318 EXPECT_EQ(OK, session->CreateStream(url, | 318 EXPECT_EQ(OK, session->CreateStream(url, |
| 319 MEDIUM, | 319 MEDIUM, |
| 320 &spdy_stream1, | 320 &spdy_stream1, |
| 321 BoundNetLog(), | 321 BoundNetLog(), |
| 322 &callback1)); | 322 &callback1)); |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 | 546 |
| 547 scoped_refptr<TransportSocketParams> transport_params( | 547 scoped_refptr<TransportSocketParams> transport_params( |
| 548 new TransportSocketParams(test_host_port_pair, | 548 new TransportSocketParams(test_host_port_pair, |
| 549 MEDIUM, | 549 MEDIUM, |
| 550 false, | 550 false, |
| 551 false)); | 551 false)); |
| 552 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 552 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 553 EXPECT_EQ(OK, | 553 EXPECT_EQ(OK, |
| 554 connection->Init(test_host_port_pair.ToString(), | 554 connection->Init(test_host_port_pair.ToString(), |
| 555 transport_params, MEDIUM, | 555 transport_params, MEDIUM, |
| 556 NULL, http_session->transport_socket_pool(), | 556 NULL, http_session->GetTransportSocketPool(), |
| 557 BoundNetLog())); | 557 BoundNetLog())); |
| 558 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 558 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 559 | 559 |
| 560 // Create 2 streams. First will succeed. Second will be pending. | 560 // Create 2 streams. First will succeed. Second will be pending. |
| 561 scoped_refptr<SpdyStream> spdy_stream1; | 561 scoped_refptr<SpdyStream> spdy_stream1; |
| 562 TestOldCompletionCallback callback1; | 562 TestOldCompletionCallback callback1; |
| 563 GURL url("http://www.google.com"); | 563 GURL url("http://www.google.com"); |
| 564 EXPECT_EQ(OK, | 564 EXPECT_EQ(OK, |
| 565 session->CreateStream(url, | 565 session->CreateStream(url, |
| 566 MEDIUM, /* priority, not important */ | 566 MEDIUM, /* priority, not important */ |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 | 631 |
| 632 scoped_refptr<TransportSocketParams> transport_params( | 632 scoped_refptr<TransportSocketParams> transport_params( |
| 633 new TransportSocketParams(test_host_port_pair, | 633 new TransportSocketParams(test_host_port_pair, |
| 634 MEDIUM, | 634 MEDIUM, |
| 635 false, | 635 false, |
| 636 false)); | 636 false)); |
| 637 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 637 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 638 EXPECT_EQ(OK, | 638 EXPECT_EQ(OK, |
| 639 connection->Init(test_host_port_pair.ToString(), | 639 connection->Init(test_host_port_pair.ToString(), |
| 640 transport_params, MEDIUM, | 640 transport_params, MEDIUM, |
| 641 NULL, http_session->transport_socket_pool(), | 641 NULL, http_session->GetTransportSocketPool(), |
| 642 BoundNetLog())); | 642 BoundNetLog())); |
| 643 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 643 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 644 | 644 |
| 645 // Use scoped_ptr to let us invalidate the memory when we want to, to trigger | 645 // Use scoped_ptr to let us invalidate the memory when we want to, to trigger |
| 646 // a valgrind error if the callback is invoked when it's not supposed to be. | 646 // a valgrind error if the callback is invoked when it's not supposed to be. |
| 647 scoped_ptr<TestOldCompletionCallback> callback(new TestOldCompletionCallback); | 647 scoped_ptr<TestOldCompletionCallback> callback(new TestOldCompletionCallback); |
| 648 | 648 |
| 649 // Create 2 streams. First will succeed. Second will be pending. | 649 // Create 2 streams. First will succeed. Second will be pending. |
| 650 scoped_refptr<SpdyStream> spdy_stream1; | 650 scoped_refptr<SpdyStream> spdy_stream1; |
| 651 GURL url("http://www.google.com"); | 651 GURL url("http://www.google.com"); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 | 730 |
| 731 scoped_refptr<TransportSocketParams> transport_params( | 731 scoped_refptr<TransportSocketParams> transport_params( |
| 732 new TransportSocketParams(test_host_port_pair, | 732 new TransportSocketParams(test_host_port_pair, |
| 733 MEDIUM, | 733 MEDIUM, |
| 734 false, | 734 false, |
| 735 false)); | 735 false)); |
| 736 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 736 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 737 EXPECT_EQ(OK, | 737 EXPECT_EQ(OK, |
| 738 connection->Init(test_host_port_pair.ToString(), | 738 connection->Init(test_host_port_pair.ToString(), |
| 739 transport_params, MEDIUM, | 739 transport_params, MEDIUM, |
| 740 NULL, http_session->transport_socket_pool(), | 740 NULL, http_session->GetTransportSocketPool(), |
| 741 BoundNetLog())); | 741 BoundNetLog())); |
| 742 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 742 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 743 MessageLoop::current()->RunAllPending(); | 743 MessageLoop::current()->RunAllPending(); |
| 744 EXPECT_TRUE(data.at_write_eof()); | 744 EXPECT_TRUE(data.at_write_eof()); |
| 745 } | 745 } |
| 746 | 746 |
| 747 // This test has two variants, one for each style of closing the connection. | 747 // This test has two variants, one for each style of closing the connection. |
| 748 // If |clean_via_close_current_sessions| is false, the sessions are closed | 748 // If |clean_via_close_current_sessions| is false, the sessions are closed |
| 749 // manually, calling SpdySessionPool::Remove() directly. If it is true, | 749 // manually, calling SpdySessionPool::Remove() directly. If it is true, |
| 750 // sessions are closed with SpdySessionPool::CloseCurrentSessions(). | 750 // sessions are closed with SpdySessionPool::CloseCurrentSessions(). |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 HostPortPair test_host_port_pair(test_hosts[0].name, kTestPort); | 803 HostPortPair test_host_port_pair(test_hosts[0].name, kTestPort); |
| 804 scoped_refptr<TransportSocketParams> transport_params( | 804 scoped_refptr<TransportSocketParams> transport_params( |
| 805 new TransportSocketParams(test_host_port_pair, | 805 new TransportSocketParams(test_host_port_pair, |
| 806 MEDIUM, | 806 MEDIUM, |
| 807 false, | 807 false, |
| 808 false)); | 808 false)); |
| 809 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); | 809 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); |
| 810 EXPECT_EQ(OK, | 810 EXPECT_EQ(OK, |
| 811 connection->Init(test_host_port_pair.ToString(), | 811 connection->Init(test_host_port_pair.ToString(), |
| 812 transport_params, MEDIUM, | 812 transport_params, MEDIUM, |
| 813 NULL, http_session->transport_socket_pool(), | 813 NULL, http_session->GetTransportSocketPool(), |
| 814 BoundNetLog())); | 814 BoundNetLog())); |
| 815 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); | 815 EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK)); |
| 816 | 816 |
| 817 // TODO(rtenneti): MockClientSocket::GetPeerAddress return's 0 as the port | 817 // TODO(rtenneti): MockClientSocket::GetPeerAddress return's 0 as the port |
| 818 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. | 818 // number. Fix it to return port 80 and then use GetPeerAddress to AddAlias. |
| 819 const addrinfo* address = test_hosts[0].addresses.head(); | 819 const addrinfo* address = test_hosts[0].addresses.head(); |
| 820 SpdySessionPoolPeer pool_peer(spdy_session_pool); | 820 SpdySessionPoolPeer pool_peer(spdy_session_pool); |
| 821 pool_peer.AddAlias(address, test_hosts[0].pair); | 821 pool_peer.AddAlias(address, test_hosts[0].pair); |
| 822 | 822 |
| 823 // Flush the SpdySession::OnReadComplete() task. | 823 // Flush the SpdySession::OnReadComplete() task. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 test_http_server_properties->SetSpdySettings(test_host_port_pair, | 910 test_http_server_properties->SetSpdySettings(test_host_port_pair, |
| 911 test_settings); | 911 test_settings); |
| 912 EXPECT_NE(0u, test_http_server_properties->GetSpdySettings( | 912 EXPECT_NE(0u, test_http_server_properties->GetSpdySettings( |
| 913 test_host_port_pair).size()); | 913 test_host_port_pair).size()); |
| 914 spdy_session_pool->OnIPAddressChanged(); | 914 spdy_session_pool->OnIPAddressChanged(); |
| 915 EXPECT_EQ(0u, test_http_server_properties->GetSpdySettings( | 915 EXPECT_EQ(0u, test_http_server_properties->GetSpdySettings( |
| 916 test_host_port_pair).size()); | 916 test_host_port_pair).size()); |
| 917 } | 917 } |
| 918 | 918 |
| 919 } // namespace net | 919 } // namespace net |
| OLD | NEW |