Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Side by Side Diff: net/http/http_proxy_client_socket_pool_spdy2_unittest.cc

Issue 11348333: Clean up SpdySessionDependencies to remove code duplication. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Comments Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/http/http_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "net/base/mock_cert_verifier.h"
12 #include "net/base/mock_host_resolver.h"
13 #include "net/base/net_errors.h" 11 #include "net/base/net_errors.h"
14 #include "net/base/ssl_config_service_defaults.h"
15 #include "net/base/test_completion_callback.h" 12 #include "net/base/test_completion_callback.h"
16 #include "net/http/http_auth_handler_factory.h"
17 #include "net/http/http_network_session.h" 13 #include "net/http/http_network_session.h"
18 #include "net/http/http_proxy_client_socket.h" 14 #include "net/http/http_proxy_client_socket.h"
19 #include "net/http/http_response_headers.h" 15 #include "net/http/http_response_headers.h"
20 #include "net/http/http_server_properties_impl.h"
21 #include "net/proxy/proxy_service.h"
22 #include "net/socket/client_socket_handle.h" 16 #include "net/socket/client_socket_handle.h"
23 #include "net/socket/client_socket_pool_histograms.h" 17 #include "net/socket/client_socket_pool_histograms.h"
24 #include "net/socket/socket_test_util.h" 18 #include "net/socket/socket_test_util.h"
25 #include "net/spdy/spdy_protocol.h" 19 #include "net/spdy/spdy_protocol.h"
26 #include "net/spdy/spdy_test_util_spdy2.h" 20 #include "net/spdy/spdy_test_util_spdy2.h"
27 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
28 22
29 using namespace net::test_spdy2; 23 using namespace net::test_spdy2;
30 24
31 namespace net { 25 namespace net {
(...skipping 25 matching lines...) Expand all
57 HostPortPair("proxy", 80), LOWEST, false, false, 51 HostPortPair("proxy", 80), LOWEST, false, false,
58 OnHostResolutionCallback())), 52 OnHostResolutionCallback())),
59 ignored_ssl_socket_params_(new SSLSocketParams( 53 ignored_ssl_socket_params_(new SSLSocketParams(
60 ignored_transport_socket_params_, NULL, NULL, 54 ignored_transport_socket_params_, NULL, NULL,
61 ProxyServer::SCHEME_DIRECT, HostPortPair("www.google.com", 443), 55 ProxyServer::SCHEME_DIRECT, HostPortPair("www.google.com", 443),
62 ssl_config_, 0, false, false)), 56 ssl_config_, 0, false, false)),
63 tcp_histograms_("MockTCP"), 57 tcp_histograms_("MockTCP"),
64 transport_socket_pool_( 58 transport_socket_pool_(
65 kMaxSockets, kMaxSocketsPerGroup, 59 kMaxSockets, kMaxSocketsPerGroup,
66 &tcp_histograms_, 60 &tcp_histograms_,
67 &socket_factory_), 61 session_deps_.deterministic_socket_factory.get()),
68 ssl_histograms_("MockSSL"), 62 ssl_histograms_("MockSSL"),
69 cert_verifier_(new MockCertVerifier),
70 proxy_service_(ProxyService::CreateDirect()),
71 ssl_config_service_(new SSLConfigServiceDefaults),
72 ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup, 63 ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup,
73 &ssl_histograms_, 64 &ssl_histograms_,
74 &host_resolver_, 65 session_deps_.host_resolver.get(),
75 cert_verifier_.get(), 66 session_deps_.cert_verifier.get(),
76 NULL /* server_bound_cert_store */, 67 NULL /* server_bound_cert_store */,
77 NULL /* transport_security_state */, 68 NULL /* transport_security_state */,
78 "" /* ssl_session_cache_shard */, 69 "" /* ssl_session_cache_shard */,
79 &socket_factory_, 70 session_deps_.deterministic_socket_factory.get(),
80 &transport_socket_pool_, 71 &transport_socket_pool_,
81 NULL, 72 NULL,
82 NULL, 73 NULL,
83 ssl_config_service_.get(), 74 session_deps_.ssl_config_service.get(),
84 BoundNetLog().net_log()), 75 BoundNetLog().net_log()),
85 http_auth_handler_factory_(
86 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
87 session_(CreateNetworkSession()), 76 session_(CreateNetworkSession()),
88 http_proxy_histograms_("HttpProxyUnitTest"), 77 http_proxy_histograms_("HttpProxyUnitTest"),
89 ssl_data_(NULL), 78 ssl_data_(NULL),
90 data_(NULL), 79 data_(NULL),
91 pool_(kMaxSockets, kMaxSocketsPerGroup, 80 pool_(kMaxSockets, kMaxSocketsPerGroup,
92 &http_proxy_histograms_, 81 &http_proxy_histograms_,
93 NULL, 82 NULL,
94 &transport_socket_pool_, 83 &transport_socket_pool_,
95 &ssl_socket_pool_, 84 &ssl_socket_pool_,
96 NULL) { 85 NULL) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 130
142 scoped_refptr<HttpProxySocketParams> GetTunnelParams() { 131 scoped_refptr<HttpProxySocketParams> GetTunnelParams() {
143 return GetParams(true); 132 return GetParams(true);
144 } 133 }
145 134
146 scoped_refptr<HttpProxySocketParams> GetNoTunnelParams() { 135 scoped_refptr<HttpProxySocketParams> GetNoTunnelParams() {
147 return GetParams(false); 136 return GetParams(false);
148 } 137 }
149 138
150 DeterministicMockClientSocketFactory& socket_factory() { 139 DeterministicMockClientSocketFactory& socket_factory() {
151 return socket_factory_; 140 return *session_deps_.deterministic_socket_factory.get();
152 } 141 }
153 142
154 void Initialize(MockRead* reads, size_t reads_count, 143 void Initialize(MockRead* reads, size_t reads_count,
155 MockWrite* writes, size_t writes_count, 144 MockWrite* writes, size_t writes_count,
156 MockRead* spdy_reads, size_t spdy_reads_count, 145 MockRead* spdy_reads, size_t spdy_reads_count,
157 MockWrite* spdy_writes, size_t spdy_writes_count) { 146 MockWrite* spdy_writes, size_t spdy_writes_count) {
158 if (GetParam() == SPDY) { 147 if (GetParam() == SPDY) {
159 data_.reset(new DeterministicSocketData(spdy_reads, spdy_reads_count, 148 data_.reset(new DeterministicSocketData(spdy_reads, spdy_reads_count,
160 spdy_writes, spdy_writes_count)); 149 spdy_writes, spdy_writes_count));
161 } else { 150 } else {
162 data_.reset(new DeterministicSocketData(reads, reads_count, writes, 151 data_.reset(new DeterministicSocketData(reads, reads_count, writes,
163 writes_count)); 152 writes_count));
164 } 153 }
165 154
166 data_->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 155 data_->set_connect_data(MockConnect(SYNCHRONOUS, OK));
167 data_->StopAfter(2); // Request / Response 156 data_->StopAfter(2); // Request / Response
168 157
169 socket_factory_.AddSocketDataProvider(data_.get()); 158 socket_factory().AddSocketDataProvider(data_.get());
170 159
171 if (GetParam() != HTTP) { 160 if (GetParam() != HTTP) {
172 ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK)); 161 ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK));
173 if (GetParam() == SPDY) { 162 if (GetParam() == SPDY) {
174 InitializeSpdySsl(); 163 InitializeSpdySsl();
175 } 164 }
176 socket_factory_.AddSSLSocketDataProvider(ssl_data_.get()); 165 socket_factory().AddSSLSocketDataProvider(ssl_data_.get());
177 } 166 }
178 } 167 }
179 168
180 void InitializeSpdySsl() { 169 void InitializeSpdySsl() {
181 ssl_data_->SetNextProto(kProtoSPDY2); 170 ssl_data_->SetNextProto(kProtoSPDY2);
182 } 171 }
183 172
184 HttpNetworkSession* CreateNetworkSession() { 173 HttpNetworkSession* CreateNetworkSession() {
185 HttpNetworkSession::Params params; 174 return SpdySessionDependencies::SpdyCreateSessionDeterministic(
186 params.host_resolver = &host_resolver_; 175 &session_deps_);
187 params.cert_verifier = cert_verifier_.get();
188 params.proxy_service = proxy_service_.get();
189 params.client_socket_factory = &socket_factory_;
190 params.ssl_config_service = ssl_config_service_;
191 params.http_auth_handler_factory = http_auth_handler_factory_.get();
192 params.http_server_properties = &http_server_properties_;
193 HttpNetworkSession* session = new HttpNetworkSession(params);
194 SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
195 pool_peer.EnableSendingInitialSettings(false);
196 return session;
197 } 176 }
198 177
199 private: 178 private:
179 SpdySessionDependencies session_deps_;
200 SSLConfig ssl_config_; 180 SSLConfig ssl_config_;
201 181
202 scoped_refptr<TransportSocketParams> ignored_transport_socket_params_; 182 scoped_refptr<TransportSocketParams> ignored_transport_socket_params_;
203 scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_; 183 scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_;
204 ClientSocketPoolHistograms tcp_histograms_; 184 ClientSocketPoolHistograms tcp_histograms_;
205 DeterministicMockClientSocketFactory socket_factory_;
206 MockTransportClientSocketPool transport_socket_pool_; 185 MockTransportClientSocketPool transport_socket_pool_;
207 ClientSocketPoolHistograms ssl_histograms_; 186 ClientSocketPoolHistograms ssl_histograms_;
208 MockHostResolver host_resolver_; 187 MockHostResolver host_resolver_;
209 scoped_ptr<CertVerifier> cert_verifier_; 188 scoped_ptr<CertVerifier> cert_verifier_;
210 const scoped_ptr<ProxyService> proxy_service_;
211 const scoped_refptr<SSLConfigService> ssl_config_service_;
212 SSLClientSocketPool ssl_socket_pool_; 189 SSLClientSocketPool ssl_socket_pool_;
213 190
214 const scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_;
215 HttpServerPropertiesImpl http_server_properties_;
216 const scoped_refptr<HttpNetworkSession> session_; 191 const scoped_refptr<HttpNetworkSession> session_;
217 ClientSocketPoolHistograms http_proxy_histograms_; 192 ClientSocketPoolHistograms http_proxy_histograms_;
218 SpdyTestStateHelper spdy_state_; 193 SpdyTestStateHelper spdy_state_;
219 194
220 protected: 195 protected:
221 scoped_ptr<SSLSocketDataProvider> ssl_data_; 196 scoped_ptr<SSLSocketDataProvider> ssl_data_;
222 scoped_ptr<DeterministicSocketData> data_; 197 scoped_ptr<DeterministicSocketData> data_;
223 HttpProxyClientSocketPool pool_; 198 HttpProxyClientSocketPool pool_;
224 ClientSocketHandle handle_; 199 ClientSocketHandle handle_;
225 TestCompletionCallback callback_; 200 TestCompletionCallback callback_;
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 // Make sure Location header was included and correct. 590 // Make sure Location header was included and correct.
616 std::string location; 591 std::string location;
617 EXPECT_TRUE(headers->IsRedirect(&location)); 592 EXPECT_TRUE(headers->IsRedirect(&location));
618 EXPECT_EQ(location, redirectTarget); 593 EXPECT_EQ(location, redirectTarget);
619 } 594 }
620 } 595 }
621 596
622 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 597 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
623 598
624 } // namespace net 599 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_spdy3_unittest.cc ('k') | net/http/http_proxy_client_socket_pool_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698