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

Side by Side Diff: net/quic/quic_stream_factory_test.cc

Issue 612323013: QUIC - (no behavior change) s/NULL/nullptr/g in .../quic/... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « net/quic/quic_stream_factory.cc ('k') | net/quic/quic_time_wait_list_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/quic/quic_stream_factory.h" 5 #include "net/quic/quic_stream_factory.h"
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "net/base/test_data_directory.h" 9 #include "net/base/test_data_directory.h"
10 #include "net/cert/cert_verifier.h" 10 #include "net/cert/cert_verifier.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 }; 91 };
92 92
93 class QuicStreamFactoryTest : public ::testing::TestWithParam<QuicVersion> { 93 class QuicStreamFactoryTest : public ::testing::TestWithParam<QuicVersion> {
94 protected: 94 protected:
95 QuicStreamFactoryTest() 95 QuicStreamFactoryTest()
96 : random_generator_(0), 96 : random_generator_(0),
97 clock_(new MockClock()), 97 clock_(new MockClock()),
98 maker_(GetParam(), 0, clock_), 98 maker_(GetParam(), 0, clock_),
99 cert_verifier_(CertVerifier::CreateDefault()), 99 cert_verifier_(CertVerifier::CreateDefault()),
100 channel_id_service_( 100 channel_id_service_(
101 new ChannelIDService(new DefaultChannelIDStore(NULL), 101 new ChannelIDService(new DefaultChannelIDStore(nullptr),
102 base::MessageLoopProxy::current())), 102 base::MessageLoopProxy::current())),
103 factory_(&host_resolver_, 103 factory_(&host_resolver_,
104 &socket_factory_, 104 &socket_factory_,
105 base::WeakPtr<HttpServerProperties>(), 105 base::WeakPtr<HttpServerProperties>(),
106 cert_verifier_.get(), 106 cert_verifier_.get(),
107 channel_id_service_.get(), 107 channel_id_service_.get(),
108 &transport_security_state_, 108 &transport_security_state_,
109 &crypto_client_stream_factory_, 109 &crypto_client_stream_factory_,
110 &random_generator_, 110 &random_generator_,
111 clock_, 111 clock_,
(...skipping 23 matching lines...) Expand all
135 } 135 }
136 136
137 int GetSourcePortForNewSessionAndGoAway( 137 int GetSourcePortForNewSessionAndGoAway(
138 const HostPortPair& destination) { 138 const HostPortPair& destination) {
139 return GetSourcePortForNewSessionInner(destination, true); 139 return GetSourcePortForNewSessionInner(destination, true);
140 } 140 }
141 141
142 int GetSourcePortForNewSessionInner(const HostPortPair& destination, 142 int GetSourcePortForNewSessionInner(const HostPortPair& destination,
143 bool goaway_received) { 143 bool goaway_received) {
144 // Should only be called if there is no active session for this destination. 144 // Should only be called if there is no active session for this destination.
145 EXPECT_EQ(NULL, CreateIfSessionExists(destination, net_log_).get()); 145 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get());
146 size_t socket_count = socket_factory_.udp_client_sockets().size(); 146 size_t socket_count = socket_factory_.udp_client_sockets().size();
147 147
148 MockRead reads[] = { 148 MockRead reads[] = {
149 MockRead(ASYNC, OK, 0) // EOF 149 MockRead(ASYNC, OK, 0) // EOF
150 }; 150 };
151 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 151 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
152 socket_data.StopAfter(1); 152 socket_data.StopAfter(1);
153 socket_factory_.AddSocketDataProvider(&socket_data); 153 socket_factory_.AddSocketDataProvider(&socket_data);
154 154
155 QuicStreamRequest request(&factory_); 155 QuicStreamRequest request(&factory_);
156 EXPECT_EQ(ERR_IO_PENDING, 156 EXPECT_EQ(ERR_IO_PENDING,
157 request.Request(destination, 157 request.Request(destination,
158 is_https_, 158 is_https_,
159 privacy_mode_, 159 privacy_mode_,
160 "GET", 160 "GET",
161 net_log_, 161 net_log_,
(...skipping 15 matching lines...) Expand all
177 IPEndPoint endpoint; 177 IPEndPoint endpoint;
178 socket_factory_. 178 socket_factory_.
179 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); 179 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint);
180 int port = endpoint.port(); 180 int port = endpoint.port();
181 if (goaway_received) { 181 if (goaway_received) {
182 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); 182 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, "");
183 session->OnGoAway(goaway); 183 session->OnGoAway(goaway);
184 } 184 }
185 185
186 factory_.OnSessionClosed(session); 186 factory_.OnSessionClosed(session);
187 EXPECT_EQ(NULL, CreateIfSessionExists(destination, net_log_).get()); 187 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get());
188 EXPECT_TRUE(socket_data.at_read_eof()); 188 EXPECT_TRUE(socket_data.at_read_eof());
189 EXPECT_TRUE(socket_data.at_write_eof()); 189 EXPECT_TRUE(socket_data.at_write_eof());
190 return port; 190 return port;
191 } 191 }
192 192
193 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { 193 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() {
194 QuicStreamId stream_id = kClientDataStreamId1; 194 QuicStreamId stream_id = kClientDataStreamId1;
195 return maker_.MakeRstPacket( 195 return maker_.MakeRstPacket(
196 1, true, stream_id, 196 1, true, stream_id,
197 AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam())); 197 AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam()));
(...skipping 13 matching lines...) Expand all
211 bool is_https_; 211 bool is_https_;
212 PrivacyMode privacy_mode_; 212 PrivacyMode privacy_mode_;
213 BoundNetLog net_log_; 213 BoundNetLog net_log_;
214 TestCompletionCallback callback_; 214 TestCompletionCallback callback_;
215 }; 215 };
216 216
217 INSTANTIATE_TEST_CASE_P(Version, QuicStreamFactoryTest, 217 INSTANTIATE_TEST_CASE_P(Version, QuicStreamFactoryTest,
218 ::testing::ValuesIn(QuicSupportedVersions())); 218 ::testing::ValuesIn(QuicSupportedVersions()));
219 219
220 TEST_P(QuicStreamFactoryTest, CreateIfSessionExists) { 220 TEST_P(QuicStreamFactoryTest, CreateIfSessionExists) {
221 EXPECT_EQ(NULL, CreateIfSessionExists(host_port_pair_, net_log_).get()); 221 EXPECT_EQ(nullptr, CreateIfSessionExists(host_port_pair_, net_log_).get());
222 } 222 }
223 223
224 TEST_P(QuicStreamFactoryTest, Create) { 224 TEST_P(QuicStreamFactoryTest, Create) {
225 MockRead reads[] = { 225 MockRead reads[] = {
226 MockRead(ASYNC, OK, 0) // EOF 226 MockRead(ASYNC, OK, 0) // EOF
227 }; 227 };
228 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 228 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
229 socket_factory_.AddSocketDataProvider(&socket_data); 229 socket_factory_.AddSocketDataProvider(&socket_data);
230 socket_data.StopAfter(1); 230 socket_data.StopAfter(1);
231 231
232 QuicStreamRequest request(&factory_); 232 QuicStreamRequest request(&factory_);
233 EXPECT_EQ(ERR_IO_PENDING, 233 EXPECT_EQ(ERR_IO_PENDING,
234 request.Request(host_port_pair_, 234 request.Request(host_port_pair_,
235 is_https_, 235 is_https_,
236 privacy_mode_, 236 privacy_mode_,
237 "GET", 237 "GET",
238 net_log_, 238 net_log_,
(...skipping 21 matching lines...) Expand all
260 stream.reset(); // Will reset stream 7. 260 stream.reset(); // Will reset stream 7.
261 261
262 EXPECT_TRUE(socket_data.at_read_eof()); 262 EXPECT_TRUE(socket_data.at_read_eof());
263 EXPECT_TRUE(socket_data.at_write_eof()); 263 EXPECT_TRUE(socket_data.at_write_eof());
264 } 264 }
265 265
266 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { 266 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) {
267 MockRead reads[] = { 267 MockRead reads[] = {
268 MockRead(ASYNC, OK, 0) // EOF 268 MockRead(ASYNC, OK, 0) // EOF
269 }; 269 };
270 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 270 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
271 socket_factory_.AddSocketDataProvider(&socket_data); 271 socket_factory_.AddSocketDataProvider(&socket_data);
272 socket_data.StopAfter(1); 272 socket_data.StopAfter(1);
273 273
274 crypto_client_stream_factory_.set_handshake_mode( 274 crypto_client_stream_factory_.set_handshake_mode(
275 MockCryptoClientStream::ZERO_RTT); 275 MockCryptoClientStream::ZERO_RTT);
276 host_resolver_.set_synchronous_mode(true); 276 host_resolver_.set_synchronous_mode(true);
277 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 277 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
278 "192.168.0.1", ""); 278 "192.168.0.1", "");
279 279
280 QuicStreamRequest request(&factory_); 280 QuicStreamRequest request(&factory_);
281 EXPECT_EQ(OK, 281 EXPECT_EQ(OK,
282 request.Request(host_port_pair_, 282 request.Request(host_port_pair_,
283 is_https_, 283 is_https_,
284 privacy_mode_, 284 privacy_mode_,
285 "GET", 285 "GET",
286 net_log_, 286 net_log_,
287 callback_.callback())); 287 callback_.callback()));
288 288
289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
290 EXPECT_TRUE(stream.get()); 290 EXPECT_TRUE(stream.get());
291 EXPECT_TRUE(socket_data.at_read_eof()); 291 EXPECT_TRUE(socket_data.at_read_eof());
292 EXPECT_TRUE(socket_data.at_write_eof()); 292 EXPECT_TRUE(socket_data.at_write_eof());
293 } 293 }
294 294
295 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { 295 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) {
296 MockRead reads[] = { 296 MockRead reads[] = {
297 MockRead(ASYNC, OK, 0) // EOF 297 MockRead(ASYNC, OK, 0) // EOF
298 }; 298 };
299 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 299 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
300 socket_factory_.AddSocketDataProvider(&socket_data); 300 socket_factory_.AddSocketDataProvider(&socket_data);
301 socket_data.StopAfter(1); 301 socket_data.StopAfter(1);
302 302
303 crypto_client_stream_factory_.set_handshake_mode( 303 crypto_client_stream_factory_.set_handshake_mode(
304 MockCryptoClientStream::ZERO_RTT); 304 MockCryptoClientStream::ZERO_RTT);
305 host_resolver_.set_synchronous_mode(true); 305 host_resolver_.set_synchronous_mode(true);
306 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 306 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
307 "192.168.0.1", ""); 307 "192.168.0.1", "");
308 308
309 QuicStreamRequest request(&factory_); 309 QuicStreamRequest request(&factory_);
(...skipping 14 matching lines...) Expand all
324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
325 EXPECT_TRUE(stream.get()); 325 EXPECT_TRUE(stream.get());
326 EXPECT_TRUE(socket_data.at_read_eof()); 326 EXPECT_TRUE(socket_data.at_read_eof());
327 EXPECT_TRUE(socket_data.at_write_eof()); 327 EXPECT_TRUE(socket_data.at_write_eof());
328 } 328 }
329 329
330 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { 330 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) {
331 MockRead reads[] = { 331 MockRead reads[] = {
332 MockRead(ASYNC, OK, 0) // EOF 332 MockRead(ASYNC, OK, 0) // EOF
333 }; 333 };
334 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 334 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
335 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 335 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
336 socket_factory_.AddSocketDataProvider(&socket_data1); 336 socket_factory_.AddSocketDataProvider(&socket_data1);
337 socket_factory_.AddSocketDataProvider(&socket_data2); 337 socket_factory_.AddSocketDataProvider(&socket_data2);
338 socket_data1.StopAfter(1); 338 socket_data1.StopAfter(1);
339 socket_data2.StopAfter(1); 339 socket_data2.StopAfter(1);
340 340
341 QuicStreamRequest request(&factory_); 341 QuicStreamRequest request(&factory_);
342 EXPECT_EQ(ERR_IO_PENDING, 342 EXPECT_EQ(ERR_IO_PENDING,
343 request.Request(host_port_pair_, 343 request.Request(host_port_pair_,
344 is_https_, 344 is_https_,
345 privacy_mode_, 345 privacy_mode_,
(...skipping 26 matching lines...) Expand all
372 EXPECT_TRUE(socket_data1.at_read_eof()); 372 EXPECT_TRUE(socket_data1.at_read_eof());
373 EXPECT_TRUE(socket_data1.at_write_eof()); 373 EXPECT_TRUE(socket_data1.at_write_eof());
374 EXPECT_TRUE(socket_data2.at_read_eof()); 374 EXPECT_TRUE(socket_data2.at_read_eof());
375 EXPECT_TRUE(socket_data2.at_write_eof()); 375 EXPECT_TRUE(socket_data2.at_write_eof());
376 } 376 }
377 377
378 TEST_P(QuicStreamFactoryTest, Pooling) { 378 TEST_P(QuicStreamFactoryTest, Pooling) {
379 MockRead reads[] = { 379 MockRead reads[] = {
380 MockRead(ASYNC, OK, 0) // EOF 380 MockRead(ASYNC, OK, 0) // EOF
381 }; 381 };
382 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 382 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
383 socket_factory_.AddSocketDataProvider(&socket_data); 383 socket_factory_.AddSocketDataProvider(&socket_data);
384 socket_data.StopAfter(1); 384 socket_data.StopAfter(1);
385 385
386 HostPortPair server2("mail.google.com", kDefaultServerPort); 386 HostPortPair server2("mail.google.com", kDefaultServerPort);
387 host_resolver_.set_synchronous_mode(true); 387 host_resolver_.set_synchronous_mode(true);
388 host_resolver_.rules()->AddIPLiteralRule( 388 host_resolver_.rules()->AddIPLiteralRule(
389 kDefaultServerHostName, "192.168.0.1", ""); 389 kDefaultServerHostName, "192.168.0.1", "");
390 host_resolver_.rules()->AddIPLiteralRule( 390 host_resolver_.rules()->AddIPLiteralRule(
391 "mail.google.com", "192.168.0.1", ""); 391 "mail.google.com", "192.168.0.1", "");
392 392
(...skipping 26 matching lines...) Expand all
419 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); 419 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_));
420 420
421 EXPECT_TRUE(socket_data.at_read_eof()); 421 EXPECT_TRUE(socket_data.at_read_eof());
422 EXPECT_TRUE(socket_data.at_write_eof()); 422 EXPECT_TRUE(socket_data.at_write_eof());
423 } 423 }
424 424
425 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { 425 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) {
426 MockRead reads[] = { 426 MockRead reads[] = {
427 MockRead(ASYNC, OK, 0) // EOF 427 MockRead(ASYNC, OK, 0) // EOF
428 }; 428 };
429 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 429 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
430 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 430 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
431 socket_factory_.AddSocketDataProvider(&socket_data1); 431 socket_factory_.AddSocketDataProvider(&socket_data1);
432 socket_factory_.AddSocketDataProvider(&socket_data2); 432 socket_factory_.AddSocketDataProvider(&socket_data2);
433 socket_data1.StopAfter(1); 433 socket_data1.StopAfter(1);
434 socket_data2.StopAfter(1); 434 socket_data2.StopAfter(1);
435 435
436 HostPortPair server2("mail.google.com", kDefaultServerPort); 436 HostPortPair server2("mail.google.com", kDefaultServerPort);
437 host_resolver_.set_synchronous_mode(true); 437 host_resolver_.set_synchronous_mode(true);
438 host_resolver_.rules()->AddIPLiteralRule( 438 host_resolver_.rules()->AddIPLiteralRule(
439 kDefaultServerHostName, "192.168.0.1", ""); 439 kDefaultServerHostName, "192.168.0.1", "");
440 host_resolver_.rules()->AddIPLiteralRule( 440 host_resolver_.rules()->AddIPLiteralRule(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 EXPECT_TRUE(socket_data1.at_read_eof()); 474 EXPECT_TRUE(socket_data1.at_read_eof());
475 EXPECT_TRUE(socket_data1.at_write_eof()); 475 EXPECT_TRUE(socket_data1.at_write_eof());
476 EXPECT_TRUE(socket_data2.at_read_eof()); 476 EXPECT_TRUE(socket_data2.at_read_eof());
477 EXPECT_TRUE(socket_data2.at_write_eof()); 477 EXPECT_TRUE(socket_data2.at_write_eof());
478 } 478 }
479 479
480 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { 480 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) {
481 MockRead reads[] = { 481 MockRead reads[] = {
482 MockRead(ASYNC, OK, 0) // EOF 482 MockRead(ASYNC, OK, 0) // EOF
483 }; 483 };
484 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 484 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
485 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 485 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
486 socket_factory_.AddSocketDataProvider(&socket_data1); 486 socket_factory_.AddSocketDataProvider(&socket_data1);
487 socket_factory_.AddSocketDataProvider(&socket_data2); 487 socket_factory_.AddSocketDataProvider(&socket_data2);
488 socket_data1.StopAfter(1); 488 socket_data1.StopAfter(1);
489 socket_data2.StopAfter(1); 489 socket_data2.StopAfter(1);
490 490
491 HostPortPair server2("mail.google.com", kDefaultServerPort); 491 HostPortPair server2("mail.google.com", kDefaultServerPort);
492 host_resolver_.set_synchronous_mode(true); 492 host_resolver_.set_synchronous_mode(true);
493 host_resolver_.rules()->AddIPLiteralRule( 493 host_resolver_.rules()->AddIPLiteralRule(
494 kDefaultServerHostName, "192.168.0.1", ""); 494 kDefaultServerHostName, "192.168.0.1", "");
495 host_resolver_.rules()->AddIPLiteralRule( 495 host_resolver_.rules()->AddIPLiteralRule(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 EXPECT_TRUE(socket_data1.at_read_eof()); 543 EXPECT_TRUE(socket_data1.at_read_eof());
544 EXPECT_TRUE(socket_data1.at_write_eof()); 544 EXPECT_TRUE(socket_data1.at_write_eof());
545 EXPECT_TRUE(socket_data2.at_read_eof()); 545 EXPECT_TRUE(socket_data2.at_read_eof());
546 EXPECT_TRUE(socket_data2.at_write_eof()); 546 EXPECT_TRUE(socket_data2.at_write_eof());
547 } 547 }
548 548
549 TEST_P(QuicStreamFactoryTest, HttpsPooling) { 549 TEST_P(QuicStreamFactoryTest, HttpsPooling) {
550 MockRead reads[] = { 550 MockRead reads[] = {
551 MockRead(ASYNC, OK, 0) // EOF 551 MockRead(ASYNC, OK, 0) // EOF
552 }; 552 };
553 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 553 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
554 socket_factory_.AddSocketDataProvider(&socket_data); 554 socket_factory_.AddSocketDataProvider(&socket_data);
555 socket_data.StopAfter(1); 555 socket_data.StopAfter(1);
556 556
557 HostPortPair server1("www.example.org", 443); 557 HostPortPair server1("www.example.org", 443);
558 HostPortPair server2("mail.example.org", 443); 558 HostPortPair server2("mail.example.org", 443);
559 559
560 // Load a cert that is valid for: 560 // Load a cert that is valid for:
561 // www.example.org (server1) 561 // www.example.org (server1)
562 // mail.example.org (server2) 562 // mail.example.org (server2)
563 // www.example.com 563 // www.example.com
564 base::FilePath certs_dir = GetTestCertsDirectory(); 564 base::FilePath certs_dir = GetTestCertsDirectory();
565 scoped_refptr<X509Certificate> test_cert( 565 scoped_refptr<X509Certificate> test_cert(
566 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 566 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
567 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 567 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
568 ProofVerifyDetailsChromium verify_details; 568 ProofVerifyDetailsChromium verify_details;
569 verify_details.cert_verify_result.verified_cert = test_cert; 569 verify_details.cert_verify_result.verified_cert = test_cert;
570 verify_details.cert_verify_result.is_issued_by_known_root = true; 570 verify_details.cert_verify_result.is_issued_by_known_root = true;
571 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 571 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
572 572
573 host_resolver_.set_synchronous_mode(true); 573 host_resolver_.set_synchronous_mode(true);
574 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 574 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
575 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 575 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
576 576
577 QuicStreamRequest request(&factory_); 577 QuicStreamRequest request(&factory_);
(...skipping 26 matching lines...) Expand all
604 &factory_, server2, is_https_)); 604 &factory_, server2, is_https_));
605 605
606 EXPECT_TRUE(socket_data.at_read_eof()); 606 EXPECT_TRUE(socket_data.at_read_eof());
607 EXPECT_TRUE(socket_data.at_write_eof()); 607 EXPECT_TRUE(socket_data.at_write_eof());
608 } 608 }
609 609
610 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { 610 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) {
611 MockRead reads[] = { 611 MockRead reads[] = {
612 MockRead(ASYNC, OK, 0) // EOF 612 MockRead(ASYNC, OK, 0) // EOF
613 }; 613 };
614 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 614 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
615 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 615 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
616 socket_factory_.AddSocketDataProvider(&socket_data1); 616 socket_factory_.AddSocketDataProvider(&socket_data1);
617 socket_factory_.AddSocketDataProvider(&socket_data2); 617 socket_factory_.AddSocketDataProvider(&socket_data2);
618 socket_data1.StopAfter(1); 618 socket_data1.StopAfter(1);
619 socket_data2.StopAfter(1); 619 socket_data2.StopAfter(1);
620 620
621 HostPortPair server1("www.example.org", 443); 621 HostPortPair server1("www.example.org", 443);
622 HostPortPair server2("mail.example.org", 443); 622 HostPortPair server2("mail.example.org", 443);
623 623
624 // Load a cert that is valid for: 624 // Load a cert that is valid for:
625 // www.example.org (server1) 625 // www.example.org (server1)
626 // mail.example.org (server2) 626 // mail.example.org (server2)
627 // www.example.com 627 // www.example.com
628 base::FilePath certs_dir = GetTestCertsDirectory(); 628 base::FilePath certs_dir = GetTestCertsDirectory();
629 scoped_refptr<X509Certificate> test_cert( 629 scoped_refptr<X509Certificate> test_cert(
630 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 630 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
631 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 631 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
632 ProofVerifyDetailsChromium verify_details; 632 ProofVerifyDetailsChromium verify_details;
633 verify_details.cert_verify_result.verified_cert = test_cert; 633 verify_details.cert_verify_result.verified_cert = test_cert;
634 verify_details.cert_verify_result.is_issued_by_known_root = true; 634 verify_details.cert_verify_result.is_issued_by_known_root = true;
635 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 635 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
636 636
637 host_resolver_.set_synchronous_mode(true); 637 host_resolver_.set_synchronous_mode(true);
638 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 638 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
639 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 639 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
640 640
641 // Disable connection pooling. 641 // Disable connection pooling.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 EXPECT_TRUE(socket_data1.at_read_eof()); 673 EXPECT_TRUE(socket_data1.at_read_eof());
674 EXPECT_TRUE(socket_data1.at_write_eof()); 674 EXPECT_TRUE(socket_data1.at_write_eof());
675 EXPECT_TRUE(socket_data2.at_read_eof()); 675 EXPECT_TRUE(socket_data2.at_read_eof());
676 EXPECT_TRUE(socket_data2.at_write_eof()); 676 EXPECT_TRUE(socket_data2.at_write_eof());
677 } 677 }
678 678
679 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) { 679 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) {
680 MockRead reads[] = { 680 MockRead reads[] = {
681 MockRead(ASYNC, OK, 0) // EOF 681 MockRead(ASYNC, OK, 0) // EOF
682 }; 682 };
683 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 683 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
684 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 684 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
685 socket_factory_.AddSocketDataProvider(&socket_data1); 685 socket_factory_.AddSocketDataProvider(&socket_data1);
686 socket_factory_.AddSocketDataProvider(&socket_data2); 686 socket_factory_.AddSocketDataProvider(&socket_data2);
687 socket_data1.StopAfter(1); 687 socket_data1.StopAfter(1);
688 socket_data2.StopAfter(1); 688 socket_data2.StopAfter(1);
689 689
690 HostPortPair server1("www.example.org", 443); 690 HostPortPair server1("www.example.org", 443);
691 HostPortPair server2("mail.google.com", 443); 691 HostPortPair server2("mail.google.com", 443);
692 692
693 // Load a cert that is valid for: 693 // Load a cert that is valid for:
694 // www.example.org (server1) 694 // www.example.org (server1)
695 // mail.example.org 695 // mail.example.org
696 // www.example.com 696 // www.example.com
697 // But is not valid for mail.google.com (server2). 697 // But is not valid for mail.google.com (server2).
698 base::FilePath certs_dir = GetTestCertsDirectory(); 698 base::FilePath certs_dir = GetTestCertsDirectory();
699 scoped_refptr<X509Certificate> test_cert( 699 scoped_refptr<X509Certificate> test_cert(
700 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 700 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
701 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 701 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
702 ProofVerifyDetailsChromium verify_details; 702 ProofVerifyDetailsChromium verify_details;
703 verify_details.cert_verify_result.verified_cert = test_cert; 703 verify_details.cert_verify_result.verified_cert = test_cert;
704 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 704 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
705 705
706 706
707 host_resolver_.set_synchronous_mode(true); 707 host_resolver_.set_synchronous_mode(true);
708 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 708 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
709 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 709 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
710 710
711 QuicStreamRequest request(&factory_); 711 QuicStreamRequest request(&factory_);
(...skipping 28 matching lines...) Expand all
740 EXPECT_TRUE(socket_data1.at_read_eof()); 740 EXPECT_TRUE(socket_data1.at_read_eof());
741 EXPECT_TRUE(socket_data1.at_write_eof()); 741 EXPECT_TRUE(socket_data1.at_write_eof());
742 EXPECT_TRUE(socket_data2.at_read_eof()); 742 EXPECT_TRUE(socket_data2.at_read_eof());
743 EXPECT_TRUE(socket_data2.at_write_eof()); 743 EXPECT_TRUE(socket_data2.at_write_eof());
744 } 744 }
745 745
746 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { 746 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) {
747 MockRead reads[] = { 747 MockRead reads[] = {
748 MockRead(ASYNC, OK, 0) // EOF 748 MockRead(ASYNC, OK, 0) // EOF
749 }; 749 };
750 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 750 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
751 socket_factory_.AddSocketDataProvider(&socket_data); 751 socket_factory_.AddSocketDataProvider(&socket_data);
752 socket_data.StopAfter(1); 752 socket_data.StopAfter(1);
753 753
754 HostPortPair server1("www.example.org", 443); 754 HostPortPair server1("www.example.org", 443);
755 HostPortPair server2("mail.example.org", 443); 755 HostPortPair server2("mail.example.org", 443);
756 uint8 primary_pin = 1; 756 uint8 primary_pin = 1;
757 uint8 backup_pin = 2; 757 uint8 backup_pin = 2;
758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
759 backup_pin); 759 backup_pin);
760 760
761 // Load a cert that is valid for: 761 // Load a cert that is valid for:
762 // www.example.org (server1) 762 // www.example.org (server1)
763 // mail.example.org (server2) 763 // mail.example.org (server2)
764 base::FilePath certs_dir = GetTestCertsDirectory(); 764 base::FilePath certs_dir = GetTestCertsDirectory();
765 scoped_refptr<X509Certificate> test_cert( 765 scoped_refptr<X509Certificate> test_cert(
766 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 766 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
767 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 767 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
768 ProofVerifyDetailsChromium verify_details; 768 ProofVerifyDetailsChromium verify_details;
769 verify_details.cert_verify_result.verified_cert = test_cert; 769 verify_details.cert_verify_result.verified_cert = test_cert;
770 verify_details.cert_verify_result.is_issued_by_known_root = true; 770 verify_details.cert_verify_result.is_issued_by_known_root = true;
771 verify_details.cert_verify_result.public_key_hashes.push_back( 771 verify_details.cert_verify_result.public_key_hashes.push_back(
772 test::GetTestHashValue(primary_pin)); 772 test::GetTestHashValue(primary_pin));
773 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 773 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
774 774
775 775
776 host_resolver_.set_synchronous_mode(true); 776 host_resolver_.set_synchronous_mode(true);
777 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 777 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
(...skipping 29 matching lines...) Expand all
807 &factory_, server2, is_https_)); 807 &factory_, server2, is_https_));
808 808
809 EXPECT_TRUE(socket_data.at_read_eof()); 809 EXPECT_TRUE(socket_data.at_read_eof());
810 EXPECT_TRUE(socket_data.at_write_eof()); 810 EXPECT_TRUE(socket_data.at_write_eof());
811 } 811 }
812 812
813 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { 813 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) {
814 MockRead reads[] = { 814 MockRead reads[] = {
815 MockRead(ASYNC, OK, 0) // EOF 815 MockRead(ASYNC, OK, 0) // EOF
816 }; 816 };
817 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 817 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
818 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 818 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
819 socket_factory_.AddSocketDataProvider(&socket_data1); 819 socket_factory_.AddSocketDataProvider(&socket_data1);
820 socket_factory_.AddSocketDataProvider(&socket_data2); 820 socket_factory_.AddSocketDataProvider(&socket_data2);
821 socket_data1.StopAfter(1); 821 socket_data1.StopAfter(1);
822 socket_data2.StopAfter(1); 822 socket_data2.StopAfter(1);
823 823
824 HostPortPair server1("www.example.org", 443); 824 HostPortPair server1("www.example.org", 443);
825 HostPortPair server2("mail.example.org", 443); 825 HostPortPair server2("mail.example.org", 443);
826 uint8 primary_pin = 1; 826 uint8 primary_pin = 1;
827 uint8 backup_pin = 2; 827 uint8 backup_pin = 2;
828 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 828 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
829 backup_pin); 829 backup_pin);
830 830
831 // Load a cert that is valid for: 831 // Load a cert that is valid for:
832 // www.example.org (server1) 832 // www.example.org (server1)
833 // mail.example.org (server2) 833 // mail.example.org (server2)
834 base::FilePath certs_dir = GetTestCertsDirectory(); 834 base::FilePath certs_dir = GetTestCertsDirectory();
835 scoped_refptr<X509Certificate> test_cert( 835 scoped_refptr<X509Certificate> test_cert(
836 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 836 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
837 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 837 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
838 ProofVerifyDetailsChromium verify_details; 838 ProofVerifyDetailsChromium verify_details;
839 verify_details.cert_verify_result.verified_cert = test_cert; 839 verify_details.cert_verify_result.verified_cert = test_cert;
840 verify_details.cert_verify_result.is_issued_by_known_root = true; 840 verify_details.cert_verify_result.is_issued_by_known_root = true;
841 verify_details.cert_verify_result.public_key_hashes.push_back( 841 verify_details.cert_verify_result.public_key_hashes.push_back(
842 test::GetTestHashValue(primary_pin)); 842 test::GetTestHashValue(primary_pin));
843 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 843 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
844 844
845 845
846 host_resolver_.set_synchronous_mode(true); 846 host_resolver_.set_synchronous_mode(true);
847 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 847 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 EXPECT_TRUE(socket_data1.at_read_eof()); 882 EXPECT_TRUE(socket_data1.at_read_eof());
883 EXPECT_TRUE(socket_data1.at_write_eof()); 883 EXPECT_TRUE(socket_data1.at_write_eof());
884 EXPECT_TRUE(socket_data2.at_read_eof()); 884 EXPECT_TRUE(socket_data2.at_read_eof());
885 EXPECT_TRUE(socket_data2.at_write_eof()); 885 EXPECT_TRUE(socket_data2.at_write_eof());
886 } 886 }
887 887
888 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { 888 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) {
889 MockRead reads[] = { 889 MockRead reads[] = {
890 MockRead(ASYNC, OK, 0) // EOF 890 MockRead(ASYNC, OK, 0) // EOF
891 }; 891 };
892 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); 892 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
893 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 893 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
894 socket_factory_.AddSocketDataProvider(&socket_data1); 894 socket_factory_.AddSocketDataProvider(&socket_data1);
895 socket_factory_.AddSocketDataProvider(&socket_data2); 895 socket_factory_.AddSocketDataProvider(&socket_data2);
896 socket_data1.StopAfter(1); 896 socket_data1.StopAfter(1);
897 socket_data2.StopAfter(1); 897 socket_data2.StopAfter(1);
898 898
899 HostPortPair server1("www.example.org", 443); 899 HostPortPair server1("www.example.org", 443);
900 HostPortPair server2("mail.example.org", 443); 900 HostPortPair server2("mail.example.org", 443);
901 uint8 primary_pin = 1; 901 uint8 primary_pin = 1;
902 uint8 backup_pin = 2; 902 uint8 backup_pin = 2;
903 uint8 bad_pin = 3; 903 uint8 bad_pin = 3;
904 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 904 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
905 backup_pin); 905 backup_pin);
906 906
907 // Load a cert that is valid for: 907 // Load a cert that is valid for:
908 // www.example.org (server1) 908 // www.example.org (server1)
909 // mail.example.org (server2) 909 // mail.example.org (server2)
910 base::FilePath certs_dir = GetTestCertsDirectory(); 910 base::FilePath certs_dir = GetTestCertsDirectory();
911 scoped_refptr<X509Certificate> test_cert( 911 scoped_refptr<X509Certificate> test_cert(
912 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); 912 ImportCertFromFile(certs_dir, "spdy_pooling.pem"));
913 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); 913 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get());
914 ProofVerifyDetailsChromium verify_details; 914 ProofVerifyDetailsChromium verify_details;
915 verify_details.cert_verify_result.verified_cert = test_cert; 915 verify_details.cert_verify_result.verified_cert = test_cert;
916 verify_details.cert_verify_result.is_issued_by_known_root = true; 916 verify_details.cert_verify_result.is_issued_by_known_root = true;
917 verify_details.cert_verify_result.public_key_hashes.push_back( 917 verify_details.cert_verify_result.public_key_hashes.push_back(
918 test::GetTestHashValue(bad_pin)); 918 test::GetTestHashValue(bad_pin));
919 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); 919 crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
920 920
921 921
922 host_resolver_.set_synchronous_mode(true); 922 host_resolver_.set_synchronous_mode(true);
923 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 923 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 EXPECT_TRUE(socket_data1.at_read_eof()); 955 EXPECT_TRUE(socket_data1.at_read_eof());
956 EXPECT_TRUE(socket_data1.at_write_eof()); 956 EXPECT_TRUE(socket_data1.at_write_eof());
957 EXPECT_TRUE(socket_data2.at_read_eof()); 957 EXPECT_TRUE(socket_data2.at_read_eof());
958 EXPECT_TRUE(socket_data2.at_write_eof()); 958 EXPECT_TRUE(socket_data2.at_write_eof());
959 } 959 }
960 960
961 TEST_P(QuicStreamFactoryTest, Goaway) { 961 TEST_P(QuicStreamFactoryTest, Goaway) {
962 MockRead reads[] = { 962 MockRead reads[] = {
963 MockRead(ASYNC, OK, 0) // EOF 963 MockRead(ASYNC, OK, 0) // EOF
964 }; 964 };
965 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 965 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
966 socket_data.StopAfter(1); 966 socket_data.StopAfter(1);
967 socket_factory_.AddSocketDataProvider(&socket_data); 967 socket_factory_.AddSocketDataProvider(&socket_data);
968 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); 968 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
969 socket_data2.StopAfter(1); 969 socket_data2.StopAfter(1);
970 socket_factory_.AddSocketDataProvider(&socket_data2); 970 socket_factory_.AddSocketDataProvider(&socket_data2);
971 971
972 QuicStreamRequest request(&factory_); 972 QuicStreamRequest request(&factory_);
973 EXPECT_EQ(ERR_IO_PENDING, 973 EXPECT_EQ(ERR_IO_PENDING,
974 request.Request(host_port_pair_, 974 request.Request(host_port_pair_,
975 is_https_, 975 is_https_,
976 privacy_mode_, 976 privacy_mode_,
977 "GET", 977 "GET",
978 net_log_, 978 net_log_,
979 callback_.callback())); 979 callback_.callback()));
980 980
981 EXPECT_EQ(OK, callback_.WaitForResult()); 981 EXPECT_EQ(OK, callback_.WaitForResult());
982 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 982 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
983 EXPECT_TRUE(stream.get()); 983 EXPECT_TRUE(stream.get());
984 984
985 // Mark the session as going away. Ensure that while it is still alive 985 // Mark the session as going away. Ensure that while it is still alive
986 // that it is no longer active. 986 // that it is no longer active.
987 QuicClientSession* session = QuicStreamFactoryPeer::GetActiveSession( 987 QuicClientSession* session = QuicStreamFactoryPeer::GetActiveSession(
988 &factory_, host_port_pair_, is_https_); 988 &factory_, host_port_pair_, is_https_);
989 factory_.OnSessionGoingAway(session); 989 factory_.OnSessionGoingAway(session);
990 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session)); 990 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session));
991 EXPECT_FALSE(QuicStreamFactoryPeer::HasActiveSession( 991 EXPECT_FALSE(QuicStreamFactoryPeer::HasActiveSession(
992 &factory_, host_port_pair_, is_https_)); 992 &factory_, host_port_pair_, is_https_));
993 EXPECT_EQ(NULL, CreateIfSessionExists(host_port_pair_, net_log_).get()); 993 EXPECT_EQ(nullptr, CreateIfSessionExists(host_port_pair_, net_log_).get());
994 994
995 // Create a new request for the same destination and verify that a 995 // Create a new request for the same destination and verify that a
996 // new session is created. 996 // new session is created.
997 QuicStreamRequest request2(&factory_); 997 QuicStreamRequest request2(&factory_);
998 EXPECT_EQ(ERR_IO_PENDING, 998 EXPECT_EQ(ERR_IO_PENDING,
999 request2.Request(host_port_pair_, 999 request2.Request(host_port_pair_,
1000 is_https_, 1000 is_https_,
1001 privacy_mode_, 1001 privacy_mode_,
1002 "GET", 1002 "GET",
1003 net_log_, 1003 net_log_,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1082 ASSERT_TRUE(callback_.have_result()); 1082 ASSERT_TRUE(callback_.have_result());
1083 1083
1084 EXPECT_EQ(OK, callback_.WaitForResult()); 1084 EXPECT_EQ(OK, callback_.WaitForResult());
1085 1085
1086 EXPECT_TRUE(socket_data.at_read_eof()); 1086 EXPECT_TRUE(socket_data.at_read_eof());
1087 EXPECT_TRUE(socket_data.at_write_eof()); 1087 EXPECT_TRUE(socket_data.at_write_eof());
1088 STLDeleteElements(&streams); 1088 STLDeleteElements(&streams);
1089 } 1089 }
1090 1090
1091 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { 1091 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) {
1092 DeterministicSocketData socket_data(NULL, 0, NULL, 0); 1092 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0);
1093 socket_factory_.AddSocketDataProvider(&socket_data); 1093 socket_factory_.AddSocketDataProvider(&socket_data);
1094 1094
1095 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); 1095 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName);
1096 1096
1097 QuicStreamRequest request(&factory_); 1097 QuicStreamRequest request(&factory_);
1098 EXPECT_EQ(ERR_IO_PENDING, 1098 EXPECT_EQ(ERR_IO_PENDING,
1099 request.Request(host_port_pair_, 1099 request.Request(host_port_pair_,
1100 is_https_, 1100 is_https_,
1101 privacy_mode_, 1101 privacy_mode_,
1102 "GET", 1102 "GET",
1103 net_log_, 1103 net_log_,
1104 callback_.callback())); 1104 callback_.callback()));
1105 1105
1106 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); 1106 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult());
1107 1107
1108 EXPECT_TRUE(socket_data.at_read_eof()); 1108 EXPECT_TRUE(socket_data.at_read_eof());
1109 EXPECT_TRUE(socket_data.at_write_eof()); 1109 EXPECT_TRUE(socket_data.at_write_eof());
1110 } 1110 }
1111 1111
1112 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { 1112 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) {
1113 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); 1113 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE);
1114 DeterministicSocketData socket_data(NULL, 0, NULL, 0); 1114 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0);
1115 socket_data.set_connect_data(connect); 1115 socket_data.set_connect_data(connect);
1116 socket_factory_.AddSocketDataProvider(&socket_data); 1116 socket_factory_.AddSocketDataProvider(&socket_data);
1117 socket_data.StopAfter(1); 1117 socket_data.StopAfter(1);
1118 1118
1119 QuicStreamRequest request(&factory_); 1119 QuicStreamRequest request(&factory_);
1120 EXPECT_EQ(ERR_IO_PENDING, 1120 EXPECT_EQ(ERR_IO_PENDING,
1121 request.Request(host_port_pair_, 1121 request.Request(host_port_pair_,
1122 is_https_, 1122 is_https_,
1123 privacy_mode_, 1123 privacy_mode_,
1124 "GET", 1124 "GET",
1125 net_log_, 1125 net_log_,
1126 callback_.callback())); 1126 callback_.callback()));
1127 1127
1128 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); 1128 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult());
1129 1129
1130 EXPECT_TRUE(socket_data.at_read_eof()); 1130 EXPECT_TRUE(socket_data.at_read_eof());
1131 EXPECT_TRUE(socket_data.at_write_eof()); 1131 EXPECT_TRUE(socket_data.at_write_eof());
1132 } 1132 }
1133 1133
1134 TEST_P(QuicStreamFactoryTest, CancelCreate) { 1134 TEST_P(QuicStreamFactoryTest, CancelCreate) {
1135 MockRead reads[] = { 1135 MockRead reads[] = {
1136 MockRead(ASYNC, OK, 0) // EOF 1136 MockRead(ASYNC, OK, 0) // EOF
1137 }; 1137 };
1138 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); 1138 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1139 socket_factory_.AddSocketDataProvider(&socket_data); 1139 socket_factory_.AddSocketDataProvider(&socket_data);
1140 { 1140 {
1141 QuicStreamRequest request(&factory_); 1141 QuicStreamRequest request(&factory_);
1142 EXPECT_EQ(ERR_IO_PENDING, 1142 EXPECT_EQ(ERR_IO_PENDING,
1143 request.Request(host_port_pair_, 1143 request.Request(host_port_pair_,
1144 is_https_, 1144 is_https_,
1145 privacy_mode_, 1145 privacy_mode_,
1146 "GET", 1146 "GET",
1147 net_log_, 1147 net_log_,
1148 callback_.callback())); 1148 callback_.callback()));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 } 1186 }
1187 1187
1188 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { 1188 TEST_P(QuicStreamFactoryTest, CloseAllSessions) {
1189 MockRead reads[] = { 1189 MockRead reads[] = {
1190 MockRead(ASYNC, 0, 0) // EOF 1190 MockRead(ASYNC, 0, 0) // EOF
1191 }; 1191 };
1192 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1192 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1193 std::vector<MockWrite> writes; 1193 std::vector<MockWrite> writes;
1194 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1194 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1195 DeterministicSocketData socket_data(reads, arraysize(reads), 1195 DeterministicSocketData socket_data(reads, arraysize(reads),
1196 writes.empty() ? NULL : &writes[0], 1196 writes.empty() ? nullptr : &writes[0],
1197 writes.size()); 1197 writes.size());
1198 socket_factory_.AddSocketDataProvider(&socket_data); 1198 socket_factory_.AddSocketDataProvider(&socket_data);
1199 socket_data.StopAfter(1); 1199 socket_data.StopAfter(1);
1200 1200
1201 MockRead reads2[] = { 1201 MockRead reads2[] = {
1202 MockRead(ASYNC, 0, 0) // EOF 1202 MockRead(ASYNC, 0, 0) // EOF
1203 }; 1203 };
1204 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); 1204 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1205 socket_factory_.AddSocketDataProvider(&socket_data2); 1205 socket_factory_.AddSocketDataProvider(&socket_data2);
1206 socket_data2.StopAfter(1); 1206 socket_data2.StopAfter(1);
1207 1207
1208 QuicStreamRequest request(&factory_); 1208 QuicStreamRequest request(&factory_);
1209 EXPECT_EQ(ERR_IO_PENDING, 1209 EXPECT_EQ(ERR_IO_PENDING,
1210 request.Request(host_port_pair_, 1210 request.Request(host_port_pair_,
1211 is_https_, 1211 is_https_,
1212 privacy_mode_, 1212 privacy_mode_,
1213 "GET", 1213 "GET",
1214 net_log_, 1214 net_log_,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 } 1249 }
1250 1250
1251 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { 1251 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) {
1252 MockRead reads[] = { 1252 MockRead reads[] = {
1253 MockRead(ASYNC, 0, 0) // EOF 1253 MockRead(ASYNC, 0, 0) // EOF
1254 }; 1254 };
1255 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1255 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1256 std::vector<MockWrite> writes; 1256 std::vector<MockWrite> writes;
1257 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1257 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1258 DeterministicSocketData socket_data(reads, arraysize(reads), 1258 DeterministicSocketData socket_data(reads, arraysize(reads),
1259 writes.empty() ? NULL : &writes[0], 1259 writes.empty() ? nullptr : &writes[0],
1260 writes.size()); 1260 writes.size());
1261 socket_factory_.AddSocketDataProvider(&socket_data); 1261 socket_factory_.AddSocketDataProvider(&socket_data);
1262 socket_data.StopAfter(1); 1262 socket_data.StopAfter(1);
1263 1263
1264 MockRead reads2[] = { 1264 MockRead reads2[] = {
1265 MockRead(ASYNC, 0, 0) // EOF 1265 MockRead(ASYNC, 0, 0) // EOF
1266 }; 1266 };
1267 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); 1267 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1268 socket_factory_.AddSocketDataProvider(&socket_data2); 1268 socket_factory_.AddSocketDataProvider(&socket_data2);
1269 socket_data2.StopAfter(1); 1269 socket_data2.StopAfter(1);
1270 1270
1271 QuicStreamRequest request(&factory_); 1271 QuicStreamRequest request(&factory_);
1272 EXPECT_EQ(ERR_IO_PENDING, 1272 EXPECT_EQ(ERR_IO_PENDING,
1273 request.Request(host_port_pair_, 1273 request.Request(host_port_pair_,
1274 is_https_, 1274 is_https_,
1275 privacy_mode_, 1275 privacy_mode_,
1276 "GET", 1276 "GET",
1277 net_log_, 1277 net_log_,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 } 1313 }
1314 1314
1315 TEST_P(QuicStreamFactoryTest, OnCertAdded) { 1315 TEST_P(QuicStreamFactoryTest, OnCertAdded) {
1316 MockRead reads[] = { 1316 MockRead reads[] = {
1317 MockRead(ASYNC, 0, 0) // EOF 1317 MockRead(ASYNC, 0, 0) // EOF
1318 }; 1318 };
1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1320 std::vector<MockWrite> writes; 1320 std::vector<MockWrite> writes;
1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1322 DeterministicSocketData socket_data(reads, arraysize(reads), 1322 DeterministicSocketData socket_data(reads, arraysize(reads),
1323 writes.empty() ? NULL : &writes[0], 1323 writes.empty() ? nullptr : &writes[0],
1324 writes.size()); 1324 writes.size());
1325 socket_factory_.AddSocketDataProvider(&socket_data); 1325 socket_factory_.AddSocketDataProvider(&socket_data);
1326 socket_data.StopAfter(1); 1326 socket_data.StopAfter(1);
1327 1327
1328 MockRead reads2[] = { 1328 MockRead reads2[] = {
1329 MockRead(ASYNC, 0, 0) // EOF 1329 MockRead(ASYNC, 0, 0) // EOF
1330 }; 1330 };
1331 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); 1331 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1332 socket_factory_.AddSocketDataProvider(&socket_data2); 1332 socket_factory_.AddSocketDataProvider(&socket_data2);
1333 socket_data2.StopAfter(1); 1333 socket_data2.StopAfter(1);
1334 1334
1335 QuicStreamRequest request(&factory_); 1335 QuicStreamRequest request(&factory_);
1336 EXPECT_EQ(ERR_IO_PENDING, 1336 EXPECT_EQ(ERR_IO_PENDING,
1337 request.Request(host_port_pair_, 1337 request.Request(host_port_pair_,
1338 is_https_, 1338 is_https_,
1339 privacy_mode_, 1339 privacy_mode_,
1340 "GET", 1340 "GET",
1341 net_log_, 1341 net_log_,
1342 callback_.callback())); 1342 callback_.callback()));
1343 1343
1344 EXPECT_EQ(OK, callback_.WaitForResult()); 1344 EXPECT_EQ(OK, callback_.WaitForResult());
1345 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1345 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1346 HttpRequestInfo request_info; 1346 HttpRequestInfo request_info;
1347 EXPECT_EQ(OK, stream->InitializeStream(&request_info, 1347 EXPECT_EQ(OK, stream->InitializeStream(&request_info,
1348 DEFAULT_PRIORITY, 1348 DEFAULT_PRIORITY,
1349 net_log_, CompletionCallback())); 1349 net_log_, CompletionCallback()));
1350 1350
1351 // Add a cert and verify that stream saw the event. 1351 // Add a cert and verify that stream saw the event.
1352 factory_.OnCertAdded(NULL); 1352 factory_.OnCertAdded(nullptr);
1353 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 1353 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
1354 stream->ReadResponseHeaders(callback_.callback())); 1354 stream->ReadResponseHeaders(callback_.callback()));
1355 EXPECT_FALSE(factory_.require_confirmation()); 1355 EXPECT_FALSE(factory_.require_confirmation());
1356 1356
1357 // Now attempting to request a stream to the same origin should create 1357 // Now attempting to request a stream to the same origin should create
1358 // a new session. 1358 // a new session.
1359 1359
1360 QuicStreamRequest request2(&factory_); 1360 QuicStreamRequest request2(&factory_);
1361 EXPECT_EQ(ERR_IO_PENDING, 1361 EXPECT_EQ(ERR_IO_PENDING,
1362 request2.Request(host_port_pair_, 1362 request2.Request(host_port_pair_,
(...skipping 14 matching lines...) Expand all
1377 } 1377 }
1378 1378
1379 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { 1379 TEST_P(QuicStreamFactoryTest, OnCACertChanged) {
1380 MockRead reads[] = { 1380 MockRead reads[] = {
1381 MockRead(ASYNC, 0, 0) // EOF 1381 MockRead(ASYNC, 0, 0) // EOF
1382 }; 1382 };
1383 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1383 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1384 std::vector<MockWrite> writes; 1384 std::vector<MockWrite> writes;
1385 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1385 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1386 DeterministicSocketData socket_data(reads, arraysize(reads), 1386 DeterministicSocketData socket_data(reads, arraysize(reads),
1387 writes.empty() ? NULL : &writes[0], 1387 writes.empty() ? nullptr : &writes[0],
1388 writes.size()); 1388 writes.size());
1389 socket_factory_.AddSocketDataProvider(&socket_data); 1389 socket_factory_.AddSocketDataProvider(&socket_data);
1390 socket_data.StopAfter(1); 1390 socket_data.StopAfter(1);
1391 1391
1392 MockRead reads2[] = { 1392 MockRead reads2[] = {
1393 MockRead(ASYNC, 0, 0) // EOF 1393 MockRead(ASYNC, 0, 0) // EOF
1394 }; 1394 };
1395 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); 1395 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1396 socket_factory_.AddSocketDataProvider(&socket_data2); 1396 socket_factory_.AddSocketDataProvider(&socket_data2);
1397 socket_data2.StopAfter(1); 1397 socket_data2.StopAfter(1);
1398 1398
1399 QuicStreamRequest request(&factory_); 1399 QuicStreamRequest request(&factory_);
1400 EXPECT_EQ(ERR_IO_PENDING, 1400 EXPECT_EQ(ERR_IO_PENDING,
1401 request.Request(host_port_pair_, 1401 request.Request(host_port_pair_,
1402 is_https_, 1402 is_https_,
1403 privacy_mode_, 1403 privacy_mode_,
1404 "GET", 1404 "GET",
1405 net_log_, 1405 net_log_,
1406 callback_.callback())); 1406 callback_.callback()));
1407 1407
1408 EXPECT_EQ(OK, callback_.WaitForResult()); 1408 EXPECT_EQ(OK, callback_.WaitForResult());
1409 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1409 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1410 HttpRequestInfo request_info; 1410 HttpRequestInfo request_info;
1411 EXPECT_EQ(OK, stream->InitializeStream(&request_info, 1411 EXPECT_EQ(OK, stream->InitializeStream(&request_info,
1412 DEFAULT_PRIORITY, 1412 DEFAULT_PRIORITY,
1413 net_log_, CompletionCallback())); 1413 net_log_, CompletionCallback()));
1414 1414
1415 // Change the CA cert and verify that stream saw the event. 1415 // Change the CA cert and verify that stream saw the event.
1416 factory_.OnCACertChanged(NULL); 1416 factory_.OnCACertChanged(nullptr);
1417 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 1417 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
1418 stream->ReadResponseHeaders(callback_.callback())); 1418 stream->ReadResponseHeaders(callback_.callback()));
1419 EXPECT_FALSE(factory_.require_confirmation()); 1419 EXPECT_FALSE(factory_.require_confirmation());
1420 1420
1421 // Now attempting to request a stream to the same origin should create 1421 // Now attempting to request a stream to the same origin should create
1422 // a new session. 1422 // a new session.
1423 1423
1424 QuicStreamRequest request2(&factory_); 1424 QuicStreamRequest request2(&factory_);
1425 EXPECT_EQ(ERR_IO_PENDING, 1425 EXPECT_EQ(ERR_IO_PENDING,
1426 request2.Request(host_port_pair_, 1426 request2.Request(host_port_pair_,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1504 QuicCryptoClientConfig::CachedState* cached2 = 1504 QuicCryptoClientConfig::CachedState* cached2 =
1505 crypto_config->LookupOrCreate(server_id2); 1505 crypto_config->LookupOrCreate(server_id2);
1506 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); 1506 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token());
1507 EXPECT_TRUE(cached2->source_address_token().empty()); 1507 EXPECT_TRUE(cached2->source_address_token().empty());
1508 EXPECT_FALSE(cached2->proof_valid()); 1508 EXPECT_FALSE(cached2->proof_valid());
1509 } 1509 }
1510 } 1510 }
1511 1511
1512 } // namespace test 1512 } // namespace test
1513 } // namespace net 1513 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_stream_factory.cc ('k') | net/quic/quic_time_wait_list_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698