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

Side by Side Diff: net/quic/chromium/quic_end_to_end_unittest.cc

Issue 2907463002: Split HttpNetworkSession::Params into two structs. (Closed)
Patch Set: Response to comments Created 3 years, 6 months 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <memory> 5 #include <memory>
6 #include <ostream> 6 #include <ostream>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 namespace test { 50 namespace test {
51 51
52 namespace { 52 namespace {
53 53
54 const char kResponseBody[] = "some arbitrary response body"; 54 const char kResponseBody[] = "some arbitrary response body";
55 55
56 // Factory for creating HttpTransactions, used by TestTransactionConsumer. 56 // Factory for creating HttpTransactions, used by TestTransactionConsumer.
57 class TestTransactionFactory : public HttpTransactionFactory { 57 class TestTransactionFactory : public HttpTransactionFactory {
58 public: 58 public:
59 explicit TestTransactionFactory(const HttpNetworkSession::Params& params) 59 explicit TestTransactionFactory(
60 : session_(new HttpNetworkSession(params)) {} 60 const HttpNetworkSession::Params& session_params,
61 const HttpNetworkSession::Context& session_context)
62 : session_(new HttpNetworkSession(session_params, session_context)) {}
61 63
62 ~TestTransactionFactory() override {} 64 ~TestTransactionFactory() override {}
63 65
64 // HttpTransactionFactory methods 66 // HttpTransactionFactory methods
65 int CreateTransaction(RequestPriority priority, 67 int CreateTransaction(RequestPriority priority,
66 std::unique_ptr<HttpTransaction>* trans) override { 68 std::unique_ptr<HttpTransaction>* trans) override {
67 trans->reset(new HttpNetworkTransaction(priority, session_.get())); 69 trans->reset(new HttpNetworkTransaction(priority, session_.get()));
68 return OK; 70 return OK;
69 } 71 }
70 72
(...skipping 30 matching lines...) Expand all
101 cert_transparency_verifier_(new MultiLogCTVerifier()), 103 cert_transparency_verifier_(new MultiLogCTVerifier()),
102 ssl_config_service_(new SSLConfigServiceDefaults), 104 ssl_config_service_(new SSLConfigServiceDefaults),
103 proxy_service_(ProxyService::CreateDirect()), 105 proxy_service_(ProxyService::CreateDirect()),
104 auth_handler_factory_( 106 auth_handler_factory_(
105 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)), 107 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
106 strike_register_no_startup_period_(false) { 108 strike_register_no_startup_period_(false) {
107 request_.method = "GET"; 109 request_.method = "GET";
108 request_.url = GURL("https://test.example.com/"); 110 request_.url = GURL("https://test.example.com/");
109 request_.load_flags = 0; 111 request_.load_flags = 0;
110 112
111 params_.enable_quic = true; 113 session_params_.enable_quic = true;
112 params_.quic_random = nullptr;
113 if (GetParam().use_stateless_rejects) { 114 if (GetParam().use_stateless_rejects) {
114 params_.quic_connection_options.push_back(kSREJ); 115 session_params_.quic_connection_options.push_back(kSREJ);
115 } 116 }
116 params_.host_resolver = &host_resolver_; 117
117 params_.cert_verifier = &cert_verifier_; 118 session_context_.quic_random = nullptr;
118 params_.transport_security_state = &transport_security_state_; 119 session_context_.host_resolver = &host_resolver_;
119 params_.cert_transparency_verifier = cert_transparency_verifier_.get(); 120 session_context_.cert_verifier = &cert_verifier_;
120 params_.ct_policy_enforcer = &ct_policy_enforcer_; 121 session_context_.transport_security_state = &transport_security_state_;
121 params_.proxy_service = proxy_service_.get(); 122 session_context_.cert_transparency_verifier =
122 params_.ssl_config_service = ssl_config_service_.get(); 123 cert_transparency_verifier_.get();
123 params_.http_auth_handler_factory = auth_handler_factory_.get(); 124 session_context_.ct_policy_enforcer = &ct_policy_enforcer_;
124 params_.http_server_properties = &http_server_properties_; 125 session_context_.proxy_service = proxy_service_.get();
126 session_context_.ssl_config_service = ssl_config_service_.get();
127 session_context_.http_auth_handler_factory = auth_handler_factory_.get();
128 session_context_.http_server_properties = &http_server_properties_;
125 channel_id_service_.reset( 129 channel_id_service_.reset(
126 new ChannelIDService(new DefaultChannelIDStore(nullptr))); 130 new ChannelIDService(new DefaultChannelIDStore(nullptr)));
127 params_.channel_id_service = channel_id_service_.get(); 131 session_context_.channel_id_service = channel_id_service_.get();
128 132
129 CertVerifyResult verify_result; 133 CertVerifyResult verify_result;
130 verify_result.verified_cert = ImportCertFromFile( 134 verify_result.verified_cert = ImportCertFromFile(
131 GetTestCertsDirectory(), "quic_test.example.com.crt"); 135 GetTestCertsDirectory(), "quic_test.example.com.crt");
132 cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(), 136 cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(),
133 "test.example.com", verify_result, 137 "test.example.com", verify_result,
134 OK); 138 OK);
135 verify_result.verified_cert = ImportCertFromFile( 139 verify_result.verified_cert = ImportCertFromFile(
136 GetTestCertsDirectory(), "quic_test_ecc.example.com.crt"); 140 GetTestCertsDirectory(), "quic_test_ecc.example.com.crt");
137 cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(), 141 cert_verifier_.AddResultForCertAndHost(verify_result.verified_cert.get(),
(...skipping 13 matching lines...) Expand all
151 StartServer(); 155 StartServer();
152 156
153 // Use a mapped host resolver so that request for test.example.com (port 80) 157 // Use a mapped host resolver so that request for test.example.com (port 80)
154 // reach the server running on localhost. 158 // reach the server running on localhost.
155 std::string map_rule = "MAP test.example.com test.example.com:" + 159 std::string map_rule = "MAP test.example.com test.example.com:" +
156 base::IntToString(server_->server_address().port()); 160 base::IntToString(server_->server_address().port());
157 EXPECT_TRUE(host_resolver_.AddRuleFromString(map_rule)); 161 EXPECT_TRUE(host_resolver_.AddRuleFromString(map_rule));
158 162
159 // To simplify the test, and avoid the race with the HTTP request, we force 163 // To simplify the test, and avoid the race with the HTTP request, we force
160 // QUIC for these requests. 164 // QUIC for these requests.
161 params_.origins_to_force_quic_on.insert( 165 session_params_.origins_to_force_quic_on.insert(
162 HostPortPair::FromString("test.example.com:443")); 166 HostPortPair::FromString("test.example.com:443"));
163 167
164 transaction_factory_.reset(new TestTransactionFactory(params_)); 168 transaction_factory_.reset(
169 new TestTransactionFactory(session_params_, session_context_));
165 } 170 }
166 171
167 void TearDown() override {} 172 void TearDown() override {}
168 173
169 // Starts the QUIC server listening on a random port. 174 // Starts the QUIC server listening on a random port.
170 void StartServer() { 175 void StartServer() {
171 server_address_ = IPEndPoint(IPAddress(127, 0, 0, 1), 0); 176 server_address_ = IPEndPoint(IPAddress(127, 0, 0, 1), 0);
172 server_config_.SetInitialStreamFlowControlWindowToSend( 177 server_config_.SetInitialStreamFlowControlWindowToSend(
173 kInitialStreamFlowControlWindowForTest); 178 kInitialStreamFlowControlWindowForTest);
174 server_config_.SetInitialSessionFlowControlWindowToSend( 179 server_config_.SetInitialSessionFlowControlWindowToSend(
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 MappedHostResolver host_resolver_; 237 MappedHostResolver host_resolver_;
233 MockCertVerifier cert_verifier_; 238 MockCertVerifier cert_verifier_;
234 std::unique_ptr<ChannelIDService> channel_id_service_; 239 std::unique_ptr<ChannelIDService> channel_id_service_;
235 TransportSecurityState transport_security_state_; 240 TransportSecurityState transport_security_state_;
236 std::unique_ptr<CTVerifier> cert_transparency_verifier_; 241 std::unique_ptr<CTVerifier> cert_transparency_verifier_;
237 CTPolicyEnforcer ct_policy_enforcer_; 242 CTPolicyEnforcer ct_policy_enforcer_;
238 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; 243 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_;
239 std::unique_ptr<ProxyService> proxy_service_; 244 std::unique_ptr<ProxyService> proxy_service_;
240 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_; 245 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_;
241 HttpServerPropertiesImpl http_server_properties_; 246 HttpServerPropertiesImpl http_server_properties_;
242 HttpNetworkSession::Params params_; 247 HttpNetworkSession::Params session_params_;
248 HttpNetworkSession::Context session_context_;
243 std::unique_ptr<TestTransactionFactory> transaction_factory_; 249 std::unique_ptr<TestTransactionFactory> transaction_factory_;
244 HttpRequestInfo request_; 250 HttpRequestInfo request_;
245 std::string request_body_; 251 std::string request_body_;
246 std::unique_ptr<UploadDataStream> upload_data_stream_; 252 std::unique_ptr<UploadDataStream> upload_data_stream_;
247 std::unique_ptr<QuicSimpleServer> server_; 253 std::unique_ptr<QuicSimpleServer> server_;
248 QuicHttpResponseCache response_cache_; 254 QuicHttpResponseCache response_cache_;
249 IPEndPoint server_address_; 255 IPEndPoint server_address_;
250 std::string server_hostname_; 256 std::string server_hostname_;
251 QuicConfig server_config_; 257 QuicConfig server_config_;
252 QuicCryptoServerConfig::ConfigOptions server_config_options_; 258 QuicCryptoServerConfig::ConfigOptions server_config_options_;
(...skipping 15 matching lines...) Expand all
268 consumer.Start(&request_, NetLogWithSource()); 274 consumer.Start(&request_, NetLogWithSource());
269 275
270 // Will terminate when the last consumer completes. 276 // Will terminate when the last consumer completes.
271 base::RunLoop().Run(); 277 base::RunLoop().Run();
272 278
273 CheckResponse(consumer, "HTTP/1.1 200", response); 279 CheckResponse(consumer, "HTTP/1.1 200", response);
274 } 280 }
275 281
276 TEST_P(QuicEndToEndTest, TokenBinding) { 282 TEST_P(QuicEndToEndTest, TokenBinding) {
277 // Enable token binding and re-initialize the TestTransactionFactory. 283 // Enable token binding and re-initialize the TestTransactionFactory.
278 params_.enable_token_binding = true; 284 session_params_.enable_token_binding = true;
279 transaction_factory_.reset(new TestTransactionFactory(params_)); 285 transaction_factory_.reset(
286 new TestTransactionFactory(session_params_, session_context_));
280 287
281 AddToCache(request_.url.PathForRequest(), 200, "OK", kResponseBody); 288 AddToCache(request_.url.PathForRequest(), 200, "OK", kResponseBody);
282 289
283 TestTransactionConsumer consumer(DEFAULT_PRIORITY, 290 TestTransactionConsumer consumer(DEFAULT_PRIORITY,
284 transaction_factory_.get()); 291 transaction_factory_.get());
285 consumer.Start(&request_, NetLogWithSource()); 292 consumer.Start(&request_, NetLogWithSource());
286 293
287 // Will terminate when the last consumer completes. 294 // Will terminate when the last consumer completes.
288 base::RunLoop().Run(); 295 base::RunLoop().Run();
289 296
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 363
357 // Will terminate when the last consumer completes. 364 // Will terminate when the last consumer completes.
358 base::RunLoop().Run(); 365 base::RunLoop().Run();
359 366
360 for (const auto& consumer : consumers) 367 for (const auto& consumer : consumers)
361 CheckResponse(*consumer.get(), "HTTP/1.1 200", kResponseBody); 368 CheckResponse(*consumer.get(), "HTTP/1.1 200", kResponseBody);
362 } 369 }
363 370
364 } // namespace test 371 } // namespace test
365 } // namespace net 372 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_script_fetcher_impl_unittest.cc ('k') | net/quic/chromium/quic_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698