OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_proxy_client_socket.h" | 5 #include "net/spdy/spdy_proxy_client_socket.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "net/base/address_list.h" | 10 #include "net/base/address_list.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 } | 116 } |
117 | 117 |
118 SpdyTestUtil spdy_util_; | 118 SpdyTestUtil spdy_util_; |
119 scoped_ptr<SpdyProxyClientSocket> sock_; | 119 scoped_ptr<SpdyProxyClientSocket> sock_; |
120 TestCompletionCallback read_callback_; | 120 TestCompletionCallback read_callback_; |
121 TestCompletionCallback write_callback_; | 121 TestCompletionCallback write_callback_; |
122 scoped_ptr<DeterministicSocketData> data_; | 122 scoped_ptr<DeterministicSocketData> data_; |
123 BoundTestNetLog net_log_; | 123 BoundTestNetLog net_log_; |
124 | 124 |
125 private: | 125 private: |
126 scoped_ptr<HttpNetworkSession> session_; | 126 scoped_refptr<HttpNetworkSession> session_; |
127 scoped_refptr<IOBuffer> read_buf_; | 127 scoped_refptr<IOBuffer> read_buf_; |
128 SpdySessionDependencies session_deps_; | 128 SpdySessionDependencies session_deps_; |
129 MockConnect connect_data_; | 129 MockConnect connect_data_; |
130 base::WeakPtr<SpdySession> spdy_session_; | 130 base::WeakPtr<SpdySession> spdy_session_; |
131 BufferedSpdyFramer framer_; | 131 BufferedSpdyFramer framer_; |
132 | 132 |
133 std::string user_agent_; | 133 std::string user_agent_; |
134 GURL url_; | 134 GURL url_; |
135 HostPortPair proxy_host_port_; | 135 HostPortPair proxy_host_port_; |
136 HostPortPair endpoint_host_port_pair_; | 136 HostPortPair endpoint_host_port_pair_; |
137 ProxyServer proxy_; | 137 ProxyServer proxy_; |
138 SpdySessionKey endpoint_spdy_session_key_; | 138 SpdySessionKey endpoint_spdy_session_key_; |
139 | 139 |
140 DISALLOW_COPY_AND_ASSIGN(SpdyProxyClientSocketTest); | 140 DISALLOW_COPY_AND_ASSIGN(SpdyProxyClientSocketTest); |
141 }; | 141 }; |
142 | 142 |
143 INSTANTIATE_TEST_CASE_P(NextProto, | 143 INSTANTIATE_TEST_CASE_P(NextProto, |
144 SpdyProxyClientSocketTest, | 144 SpdyProxyClientSocketTest, |
145 testing::Values(kProtoSPDY31, | 145 testing::Values(kProtoSPDY31, |
146 kProtoHTTP2)); | 146 kProtoHTTP2)); |
147 | 147 |
148 SpdyProxyClientSocketTest::SpdyProxyClientSocketTest() | 148 SpdyProxyClientSocketTest::SpdyProxyClientSocketTest() |
149 : spdy_util_(GetParam()), | 149 : spdy_util_(GetParam()), |
| 150 session_(NULL), |
150 read_buf_(NULL), | 151 read_buf_(NULL), |
151 session_deps_(GetParam()), | 152 session_deps_(GetParam()), |
152 connect_data_(SYNCHRONOUS, OK), | 153 connect_data_(SYNCHRONOUS, OK), |
153 framer_(spdy_util_.spdy_version(), false), | 154 framer_(spdy_util_.spdy_version(), false), |
154 user_agent_(kUserAgent), | 155 user_agent_(kUserAgent), |
155 url_(kRequestUrl), | 156 url_(kRequestUrl), |
156 proxy_host_port_(kProxyHost, kProxyPort), | 157 proxy_host_port_(kProxyHost, kProxyPort), |
157 endpoint_host_port_pair_(kOriginHost, kOriginPort), | 158 endpoint_host_port_pair_(kOriginHost, kOriginPort), |
158 proxy_(ProxyServer::SCHEME_HTTPS, proxy_host_port_), | 159 proxy_(ProxyServer::SCHEME_HTTPS, proxy_host_port_), |
159 endpoint_spdy_session_key_(endpoint_host_port_pair_, | 160 endpoint_spdy_session_key_(endpoint_host_port_pair_, |
(...skipping 21 matching lines...) Expand all Loading... |
181 data_->SetStop(2); | 182 data_->SetStop(2); |
182 | 183 |
183 session_deps_.deterministic_socket_factory->AddSocketDataProvider( | 184 session_deps_.deterministic_socket_factory->AddSocketDataProvider( |
184 data_.get()); | 185 data_.get()); |
185 session_deps_.host_resolver->set_synchronous_mode(true); | 186 session_deps_.host_resolver->set_synchronous_mode(true); |
186 | 187 |
187 session_ = SpdySessionDependencies::SpdyCreateSessionDeterministic( | 188 session_ = SpdySessionDependencies::SpdyCreateSessionDeterministic( |
188 &session_deps_); | 189 &session_deps_); |
189 | 190 |
190 // Creates the SPDY session and stream. | 191 // Creates the SPDY session and stream. |
191 spdy_session_ = CreateInsecureSpdySession( | 192 spdy_session_ = |
192 session_.get(), endpoint_spdy_session_key_, BoundNetLog()); | 193 CreateInsecureSpdySession( |
| 194 session_, endpoint_spdy_session_key_, BoundNetLog()); |
193 base::WeakPtr<SpdyStream> spdy_stream( | 195 base::WeakPtr<SpdyStream> spdy_stream( |
194 CreateStreamSynchronously( | 196 CreateStreamSynchronously( |
195 SPDY_BIDIRECTIONAL_STREAM, spdy_session_, url_, LOWEST, | 197 SPDY_BIDIRECTIONAL_STREAM, spdy_session_, url_, LOWEST, |
196 net_log_.bound())); | 198 net_log_.bound())); |
197 ASSERT_TRUE(spdy_stream.get() != NULL); | 199 ASSERT_TRUE(spdy_stream.get() != NULL); |
198 | 200 |
199 // Create the SpdyProxyClientSocket. | 201 // Create the SpdyProxyClientSocket. |
200 sock_.reset(new SpdyProxyClientSocket( | 202 sock_.reset(new SpdyProxyClientSocket( |
201 spdy_stream, user_agent_, endpoint_host_port_pair_, proxy_host_port_, | 203 spdy_stream, user_agent_, endpoint_host_port_pair_, proxy_host_port_, |
202 net_log_.bound(), session_->http_auth_cache(), | 204 net_log_.bound(), session_->http_auth_cache(), |
(...skipping 1171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1374 | 1376 |
1375 EXPECT_FALSE(sock_.get()); | 1377 EXPECT_FALSE(sock_.get()); |
1376 EXPECT_TRUE(read_callback.have_result()); | 1378 EXPECT_TRUE(read_callback.have_result()); |
1377 EXPECT_FALSE(write_callback_.have_result()); | 1379 EXPECT_FALSE(write_callback_.have_result()); |
1378 | 1380 |
1379 // Let the RST_STREAM write while |rst| is in-scope. | 1381 // Let the RST_STREAM write while |rst| is in-scope. |
1380 base::MessageLoop::current()->RunUntilIdle(); | 1382 base::MessageLoop::current()->RunUntilIdle(); |
1381 } | 1383 } |
1382 | 1384 |
1383 } // namespace net | 1385 } // namespace net |
OLD | NEW |