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

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

Issue 1552783003: Always expect certificates in QuicChromiumClientSession::CanPool (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@WildcardCert
Patch Set: fix comments Created 4 years, 11 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 (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 "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "net/base/test_data_directory.h" 10 #include "net/base/test_data_directory.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 using base::StringPiece; 43 using base::StringPiece;
44 using std::ostream; 44 using std::ostream;
45 using std::string; 45 using std::string;
46 using std::vector; 46 using std::vector;
47 47
48 namespace net { 48 namespace net {
49 namespace test { 49 namespace test {
50 50
51 namespace { 51 namespace {
52 const char kDefaultServerHostName[] = "www.google.com"; 52 const char kDefaultServerHostName[] = "www.example.org";
53 const char kServer2HostName[] = "mail.example.org";
54 const char kServer3HostName[] = "docs.example.org";
55 const char kServer4HostName[] = "images.example.org";
53 const int kDefaultServerPort = 443; 56 const int kDefaultServerPort = 443;
54 57
55 // Run all tests with all the combinations of versions and 58 // Run all tests with all the combinations of versions and
56 // enable_connection_racing. 59 // enable_connection_racing.
57 struct TestParams { 60 struct TestParams {
58 TestParams(const QuicVersion version, bool enable_connection_racing) 61 TestParams(const QuicVersion version, bool enable_connection_racing)
59 : version(version), enable_connection_racing(enable_connection_racing) {} 62 : version(version), enable_connection_racing(enable_connection_racing) {}
60 63
61 friend ostream& operator<<(ostream& os, const TestParams& p) { 64 friend ostream& operator<<(ostream& os, const TestParams& p) {
62 os << "{ version: " << QuicVersionToString(p.version); 65 os << "{ version: " << QuicVersionToString(p.version);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 } 244 }
242 245
243 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { 246 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() {
244 QuicStreamId stream_id = kClientDataStreamId1; 247 QuicStreamId stream_id = kClientDataStreamId1;
245 return maker_.MakeRstPacket( 248 return maker_.MakeRstPacket(
246 1, true, stream_id, 249 1, true, stream_id,
247 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version)); 250 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version));
248 } 251 }
249 252
250 static ProofVerifyDetailsChromium DefaultProofVerifyDetails() { 253 static ProofVerifyDetailsChromium DefaultProofVerifyDetails() {
251 // Load a certificate that is valid for www.example.org, mail.example.org, 254 // Load a certificate that is valid for *.example.org
252 // and mail.example.com.
253 scoped_refptr<X509Certificate> test_cert( 255 scoped_refptr<X509Certificate> test_cert(
254 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem")); 256 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem"));
255 EXPECT_TRUE(test_cert.get()); 257 EXPECT_TRUE(test_cert.get());
256 ProofVerifyDetailsChromium verify_details; 258 ProofVerifyDetailsChromium verify_details;
257 verify_details.cert_verify_result.verified_cert = test_cert; 259 verify_details.cert_verify_result.verified_cert = test_cert;
258 verify_details.cert_verify_result.is_issued_by_known_root = true; 260 verify_details.cert_verify_result.is_issued_by_known_root = true;
259 return verify_details; 261 return verify_details;
260 } 262 }
261 263
262 void NotifyIPAddressChanged() { 264 void NotifyIPAddressChanged() {
263 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 265 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
264 // For thread safety, the NCN queues tasks to do the actual notifications, 266 // For thread safety, the NCN queues tasks to do the actual notifications,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 bool close_sessions_on_ip_change_; 306 bool close_sessions_on_ip_change_;
305 int idle_connection_timeout_seconds_; 307 int idle_connection_timeout_seconds_;
306 }; 308 };
307 309
308 INSTANTIATE_TEST_CASE_P(Version, 310 INSTANTIATE_TEST_CASE_P(Version,
309 QuicStreamFactoryTest, 311 QuicStreamFactoryTest,
310 ::testing::ValuesIn(GetTestParams())); 312 ::testing::ValuesIn(GetTestParams()));
311 313
312 TEST_P(QuicStreamFactoryTest, Create) { 314 TEST_P(QuicStreamFactoryTest, Create) {
313 Initialize(); 315 Initialize();
316 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
317 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
314 318
315 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 319 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
316 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 320 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
317 socket_factory_.AddSocketDataProvider(&socket_data); 321 socket_factory_.AddSocketDataProvider(&socket_data);
318 322
319 QuicStreamRequest request(factory_.get()); 323 QuicStreamRequest request(factory_.get());
320 EXPECT_EQ(ERR_IO_PENDING, 324 EXPECT_EQ(ERR_IO_PENDING,
321 request.Request(host_port_pair_, privacy_mode_, 325 request.Request(host_port_pair_, privacy_mode_,
322 /*cert_verify_flags=*/0, host_port_pair_.host(), 326 /*cert_verify_flags=*/0, host_port_pair_.host(),
323 "GET", net_log_, callback_.callback())); 327 "GET", net_log_, callback_.callback()));
(...skipping 15 matching lines...) Expand all
339 "GET", net_log_, callback_.callback())); 343 "GET", net_log_, callback_.callback()));
340 stream = request2.ReleaseStream(); // Will reset stream 5. 344 stream = request2.ReleaseStream(); // Will reset stream 5.
341 stream.reset(); // Will reset stream 7. 345 stream.reset(); // Will reset stream 7.
342 346
343 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 347 EXPECT_TRUE(socket_data.AllReadDataConsumed());
344 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 348 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
345 } 349 }
346 350
347 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { 351 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) {
348 Initialize(); 352 Initialize();
353 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
354 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
349 355
350 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 356 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
351 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 357 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
352 socket_factory_.AddSocketDataProvider(&socket_data); 358 socket_factory_.AddSocketDataProvider(&socket_data);
353 359
354 crypto_client_stream_factory_.set_handshake_mode( 360 crypto_client_stream_factory_.set_handshake_mode(
355 MockCryptoClientStream::ZERO_RTT); 361 MockCryptoClientStream::ZERO_RTT);
356 host_resolver_.set_synchronous_mode(true); 362 host_resolver_.set_synchronous_mode(true);
357 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 363 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
358 "192.168.0.1", ""); 364 "192.168.0.1", "");
359 365
360 QuicStreamRequest request(factory_.get()); 366 QuicStreamRequest request(factory_.get());
361 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 367 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
362 /*cert_verify_flags=*/0, host_port_pair_.host(), 368 /*cert_verify_flags=*/0, host_port_pair_.host(),
363 "GET", net_log_, callback_.callback())); 369 "GET", net_log_, callback_.callback()));
364 370
365 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 371 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
366 EXPECT_TRUE(stream.get()); 372 EXPECT_TRUE(stream.get());
367 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 373 EXPECT_TRUE(socket_data.AllReadDataConsumed());
368 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 374 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
369 } 375 }
370 376
371 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { 377 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) {
372 Initialize(); 378 Initialize();
379 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
380 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
373 381
374 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 382 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
375 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 383 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
376 socket_factory_.AddSocketDataProvider(&socket_data); 384 socket_factory_.AddSocketDataProvider(&socket_data);
377 385
378 crypto_client_stream_factory_.set_handshake_mode( 386 crypto_client_stream_factory_.set_handshake_mode(
379 MockCryptoClientStream::ZERO_RTT); 387 MockCryptoClientStream::ZERO_RTT);
380 host_resolver_.set_synchronous_mode(true); 388 host_resolver_.set_synchronous_mode(true);
381 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 389 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
382 "192.168.0.1", ""); 390 "192.168.0.1", "");
(...skipping 11 matching lines...) Expand all
394 402
395 EXPECT_EQ(OK, callback_.WaitForResult()); 403 EXPECT_EQ(OK, callback_.WaitForResult());
396 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 404 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
397 EXPECT_TRUE(stream.get()); 405 EXPECT_TRUE(stream.get());
398 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 406 EXPECT_TRUE(socket_data.AllReadDataConsumed());
399 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 407 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
400 } 408 }
401 409
402 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { 410 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) {
403 Initialize(); 411 Initialize();
412 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
413 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
404 414
405 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 415 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
406 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 416 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
407 socket_factory_.AddSocketDataProvider(&socket_data); 417 socket_factory_.AddSocketDataProvider(&socket_data);
408 418
409 crypto_client_stream_factory_.set_handshake_mode( 419 crypto_client_stream_factory_.set_handshake_mode(
410 MockCryptoClientStream::ZERO_RTT); 420 MockCryptoClientStream::ZERO_RTT);
411 host_resolver_.set_synchronous_mode(true); 421 host_resolver_.set_synchronous_mode(true);
412 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 422 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
413 "192.168.0.1", ""); 423 "192.168.0.1", "");
414 424
415 QuicStreamRequest request(factory_.get()); 425 QuicStreamRequest request(factory_.get());
416 int rv = request.Request( 426 int rv =
417 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, 427 request.Request(host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0,
418 "different.host.example.com", "GET", net_log_, callback_.callback()); 428 kServer2HostName, "GET", net_log_, callback_.callback());
419 // If server and origin have different hostnames, then handshake confirmation 429 // If server and origin have different hostnames, then handshake confirmation
420 // should be required, so Request will return asynchronously. 430 // should be required, so Request will return asynchronously.
421 EXPECT_EQ(ERR_IO_PENDING, rv); 431 EXPECT_EQ(ERR_IO_PENDING, rv);
422 // Confirm handshake. 432 // Confirm handshake.
423 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 433 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
424 QuicSession::HANDSHAKE_CONFIRMED); 434 QuicSession::HANDSHAKE_CONFIRMED);
425 EXPECT_EQ(OK, callback_.WaitForResult()); 435 EXPECT_EQ(OK, callback_.WaitForResult());
426 436
427 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 437 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
428 EXPECT_TRUE(stream.get()); 438 EXPECT_TRUE(stream.get());
429 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 439 EXPECT_TRUE(socket_data.AllReadDataConsumed());
430 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 440 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
431 } 441 }
432 442
433 TEST_P(QuicStreamFactoryTest, GoAway) { 443 TEST_P(QuicStreamFactoryTest, GoAway) {
434 Initialize(); 444 Initialize();
445 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
446 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
435 447
436 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 448 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
437 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 449 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
438 socket_factory_.AddSocketDataProvider(&socket_data); 450 socket_factory_.AddSocketDataProvider(&socket_data);
439 451
440 QuicStreamRequest request(factory_.get()); 452 QuicStreamRequest request(factory_.get());
441 EXPECT_EQ(ERR_IO_PENDING, 453 EXPECT_EQ(ERR_IO_PENDING,
442 request.Request(host_port_pair_, privacy_mode_, 454 request.Request(host_port_pair_, privacy_mode_,
443 /*cert_verify_flags=*/0, host_port_pair_.host(), 455 /*cert_verify_flags=*/0, host_port_pair_.host(),
444 "GET", net_log_, callback_.callback())); 456 "GET", net_log_, callback_.callback()));
445 457
446 EXPECT_EQ(OK, callback_.WaitForResult()); 458 EXPECT_EQ(OK, callback_.WaitForResult());
447 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 459 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
448 EXPECT_TRUE(stream.get()); 460 EXPECT_TRUE(stream.get());
449 461
450 QuicChromiumClientSession* session = 462 QuicChromiumClientSession* session =
451 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 463 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
452 464
453 session->OnGoAway(QuicGoAwayFrame()); 465 session->OnGoAway(QuicGoAwayFrame());
454 466
455 EXPECT_FALSE( 467 EXPECT_FALSE(
456 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 468 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
457 469
458 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 470 EXPECT_TRUE(socket_data.AllReadDataConsumed());
459 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 471 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
460 } 472 }
461 473
462 TEST_P(QuicStreamFactoryTest, Pooling) { 474 TEST_P(QuicStreamFactoryTest, Pooling) {
463 Initialize(); 475 Initialize();
476 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
477 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
464 478
465 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 479 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
466 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 480 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
467 socket_factory_.AddSocketDataProvider(&socket_data); 481 socket_factory_.AddSocketDataProvider(&socket_data);
468 482
469 HostPortPair server2("mail.google.com", kDefaultServerPort); 483 HostPortPair server2(kServer2HostName, kDefaultServerPort);
470 host_resolver_.set_synchronous_mode(true); 484 host_resolver_.set_synchronous_mode(true);
471 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, 485 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
472 "192.168.0.1", ""); 486 "192.168.0.1", "");
473 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", 487 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
474 "");
475 488
476 QuicStreamRequest request(factory_.get()); 489 QuicStreamRequest request(factory_.get());
477 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 490 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
478 /*cert_verify_flags=*/0, host_port_pair_.host(), 491 /*cert_verify_flags=*/0, host_port_pair_.host(),
479 "GET", net_log_, callback_.callback())); 492 "GET", net_log_, callback_.callback()));
480 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 493 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
481 EXPECT_TRUE(stream.get()); 494 EXPECT_TRUE(stream.get());
482 495
483 TestCompletionCallback callback; 496 TestCompletionCallback callback;
484 QuicStreamRequest request2(factory_.get()); 497 QuicStreamRequest request2(factory_.get());
485 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 498 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
486 /*cert_verify_flags=*/0, server2.host(), "GET", 499 /*cert_verify_flags=*/0, server2.host(), "GET",
487 net_log_, callback.callback())); 500 net_log_, callback.callback()));
488 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 501 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
489 EXPECT_TRUE(stream2.get()); 502 EXPECT_TRUE(stream2.get());
490 503
491 EXPECT_EQ( 504 EXPECT_EQ(
492 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), 505 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_),
493 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 506 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
494 507
495 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 508 EXPECT_TRUE(socket_data.AllReadDataConsumed());
496 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 509 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
497 } 510 }
498 511
499 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { 512 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) {
500 disable_connection_pooling_ = true; 513 disable_connection_pooling_ = true;
501 Initialize(); 514 Initialize();
515 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
516 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
517 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
502 518
503 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 519 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
504 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 520 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
505 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 521 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
506 socket_factory_.AddSocketDataProvider(&socket_data1); 522 socket_factory_.AddSocketDataProvider(&socket_data1);
507 socket_factory_.AddSocketDataProvider(&socket_data2); 523 socket_factory_.AddSocketDataProvider(&socket_data2);
508 524
509 HostPortPair server2("mail.google.com", kDefaultServerPort); 525 HostPortPair server2(kServer2HostName, kDefaultServerPort);
510 host_resolver_.set_synchronous_mode(true); 526 host_resolver_.set_synchronous_mode(true);
511 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, 527 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
512 "192.168.0.1", ""); 528 "192.168.0.1", "");
513 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", 529 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
514 "");
515 530
516 QuicStreamRequest request(factory_.get()); 531 QuicStreamRequest request(factory_.get());
517 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 532 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
518 /*cert_verify_flags=*/0, host_port_pair_.host(), 533 /*cert_verify_flags=*/0, host_port_pair_.host(),
519 "GET", net_log_, callback_.callback())); 534 "GET", net_log_, callback_.callback()));
520 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 535 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
521 EXPECT_TRUE(stream.get()); 536 EXPECT_TRUE(stream.get());
522 537
523 TestCompletionCallback callback; 538 TestCompletionCallback callback;
524 QuicStreamRequest request2(factory_.get()); 539 QuicStreamRequest request2(factory_.get());
525 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 540 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
526 /*cert_verify_flags=*/0, server2.host(), "GET", 541 /*cert_verify_flags=*/0, server2.host(), "GET",
527 net_log_, callback.callback())); 542 net_log_, callback.callback()));
528 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 543 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
529 EXPECT_TRUE(stream2.get()); 544 EXPECT_TRUE(stream2.get());
530 545
531 EXPECT_NE( 546 EXPECT_NE(
532 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), 547 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_),
533 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 548 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
534 549
535 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 550 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
536 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 551 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
537 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 552 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
538 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 553 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
539 } 554 }
540 555
541 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { 556 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) {
542 Initialize(); 557 Initialize();
558 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
559 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
560 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
543 561
544 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 562 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
545 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 563 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
546 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 564 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
547 socket_factory_.AddSocketDataProvider(&socket_data1); 565 socket_factory_.AddSocketDataProvider(&socket_data1);
548 socket_factory_.AddSocketDataProvider(&socket_data2); 566 socket_factory_.AddSocketDataProvider(&socket_data2);
549 567
550 HostPortPair server2("mail.google.com", kDefaultServerPort); 568 HostPortPair server2(kServer2HostName, kDefaultServerPort);
551 host_resolver_.set_synchronous_mode(true); 569 host_resolver_.set_synchronous_mode(true);
552 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, 570 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
553 "192.168.0.1", ""); 571 "192.168.0.1", "");
554 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", 572 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
555 "");
556 573
557 QuicStreamRequest request(factory_.get()); 574 QuicStreamRequest request(factory_.get());
558 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 575 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
559 /*cert_verify_flags=*/0, host_port_pair_.host(), 576 /*cert_verify_flags=*/0, host_port_pair_.host(),
560 "GET", net_log_, callback_.callback())); 577 "GET", net_log_, callback_.callback()));
561 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 578 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
562 EXPECT_TRUE(stream.get()); 579 EXPECT_TRUE(stream.get());
563 580
564 TestCompletionCallback callback; 581 TestCompletionCallback callback;
565 QuicStreamRequest request2(factory_.get()); 582 QuicStreamRequest request2(factory_.get());
(...skipping 21 matching lines...) Expand all
587 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); 604 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2));
588 605
589 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 606 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
590 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 607 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
591 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 608 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
592 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 609 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
593 } 610 }
594 611
595 TEST_P(QuicStreamFactoryTest, HttpsPooling) { 612 TEST_P(QuicStreamFactoryTest, HttpsPooling) {
596 Initialize(); 613 Initialize();
614
597 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 615 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
598 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 616 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
599 socket_factory_.AddSocketDataProvider(&socket_data); 617 socket_factory_.AddSocketDataProvider(&socket_data);
600 618
601 HostPortPair server1("www.example.org", 443); 619 HostPortPair server1(kDefaultServerHostName, 443);
602 HostPortPair server2("mail.example.org", 443); 620 HostPortPair server2(kServer2HostName, 443);
603 621
604 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 622 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
605 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 623 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
606 624
607 host_resolver_.set_synchronous_mode(true); 625 host_resolver_.set_synchronous_mode(true);
608 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 626 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
609 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 627 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
610 628
611 QuicStreamRequest request(factory_.get()); 629 QuicStreamRequest request(factory_.get());
612 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 630 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
(...skipping 20 matching lines...) Expand all
633 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { 651 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) {
634 disable_connection_pooling_ = true; 652 disable_connection_pooling_ = true;
635 Initialize(); 653 Initialize();
636 654
637 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 655 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
638 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 656 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
639 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 657 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
640 socket_factory_.AddSocketDataProvider(&socket_data1); 658 socket_factory_.AddSocketDataProvider(&socket_data1);
641 socket_factory_.AddSocketDataProvider(&socket_data2); 659 socket_factory_.AddSocketDataProvider(&socket_data2);
642 660
643 HostPortPair server1("www.example.org", 443); 661 HostPortPair server1(kDefaultServerHostName, 443);
644 HostPortPair server2("mail.example.org", 443); 662 HostPortPair server2(kServer2HostName, 443);
645 663
646 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 664 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
647 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 665 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
666 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
648 667
649 host_resolver_.set_synchronous_mode(true); 668 host_resolver_.set_synchronous_mode(true);
650 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 669 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
651 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 670 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
652 671
653 QuicStreamRequest request(factory_.get()); 672 QuicStreamRequest request(factory_.get());
654 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 673 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
655 /*cert_verify_flags=*/0, server1.host(), "GET", 674 /*cert_verify_flags=*/0, server1.host(), "GET",
656 net_log_, callback_.callback())); 675 net_log_, callback_.callback()));
657 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 676 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
(...skipping 17 matching lines...) Expand all
675 } 694 }
676 695
677 class QuicAlternativeServiceCertificateValidationPooling 696 class QuicAlternativeServiceCertificateValidationPooling
678 : public QuicStreamFactoryTest { 697 : public QuicStreamFactoryTest {
679 public: 698 public:
680 void Run(bool valid) { 699 void Run(bool valid) {
681 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 700 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
682 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 701 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
683 socket_factory_.AddSocketDataProvider(&socket_data1); 702 socket_factory_.AddSocketDataProvider(&socket_data1);
684 703
685 HostPortPair server1("www.example.org", 443); 704 HostPortPair server1(kDefaultServerHostName, 443);
686 HostPortPair server2("mail.example.org", 443); 705 HostPortPair server2(kServer2HostName, 443);
687 706
688 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); 707 std::string origin_host(valid ? kServer2HostName : "invalid.example.com");
689 HostPortPair alternative("www.example.org", 443); 708 HostPortPair alternative(kDefaultServerHostName, 443);
690 709
691 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 710 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
692 bool common_name_fallback_used; 711 bool common_name_fallback_used;
693 EXPECT_EQ(valid, 712 EXPECT_EQ(valid,
694 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( 713 verify_details.cert_verify_result.verified_cert->VerifyNameMatch(
695 origin_host, &common_name_fallback_used)); 714 origin_host, &common_name_fallback_used));
696 EXPECT_TRUE( 715 EXPECT_TRUE(
697 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( 716 verify_details.cert_verify_result.verified_cert->VerifyNameMatch(
698 alternative.host(), &common_name_fallback_used)); 717 alternative.host(), &common_name_fallback_used));
699 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 718 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 Initialize(); 763 Initialize();
745 Run(false); 764 Run(false);
746 } 765 }
747 766
748 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { 767 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) {
749 Initialize(); 768 Initialize();
750 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 769 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
751 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 770 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
752 socket_factory_.AddSocketDataProvider(&socket_data); 771 socket_factory_.AddSocketDataProvider(&socket_data);
753 772
754 HostPortPair server1("www.example.org", 443); 773 HostPortPair server1(kDefaultServerHostName, 443);
755 HostPortPair server2("mail.example.org", 443); 774 HostPortPair server2(kServer2HostName, 443);
756 uint8_t primary_pin = 1; 775 uint8_t primary_pin = 1;
757 uint8_t backup_pin = 2; 776 uint8_t backup_pin = 2;
758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 777 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin,
759 backup_pin); 778 backup_pin);
760 779
761 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 780 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
762 verify_details.cert_verify_result.public_key_hashes.push_back( 781 verify_details.cert_verify_result.public_key_hashes.push_back(
763 test::GetTestHashValue(primary_pin)); 782 test::GetTestHashValue(primary_pin));
764 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 783 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
765 784
766 host_resolver_.set_synchronous_mode(true); 785 host_resolver_.set_synchronous_mode(true);
767 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 786 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
768 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 787 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 23 matching lines...) Expand all
792 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { 811 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) {
793 disable_connection_pooling_ = true; 812 disable_connection_pooling_ = true;
794 Initialize(); 813 Initialize();
795 814
796 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 815 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
797 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 816 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
798 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 817 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
799 socket_factory_.AddSocketDataProvider(&socket_data1); 818 socket_factory_.AddSocketDataProvider(&socket_data1);
800 socket_factory_.AddSocketDataProvider(&socket_data2); 819 socket_factory_.AddSocketDataProvider(&socket_data2);
801 820
802 HostPortPair server1("www.example.org", 443); 821 HostPortPair server1(kDefaultServerHostName, 443);
803 HostPortPair server2("mail.example.org", 443); 822 HostPortPair server2(kServer2HostName, 443);
804 uint8_t primary_pin = 1; 823 uint8_t primary_pin = 1;
805 uint8_t backup_pin = 2; 824 uint8_t backup_pin = 2;
806 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 825 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin,
807 backup_pin); 826 backup_pin);
808 827
809 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 828 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
810 verify_details.cert_verify_result.public_key_hashes.push_back( 829 verify_details.cert_verify_result.public_key_hashes.push_back(
811 test::GetTestHashValue(primary_pin)); 830 test::GetTestHashValue(primary_pin));
812 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 831 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
832 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
813 833
814 host_resolver_.set_synchronous_mode(true); 834 host_resolver_.set_synchronous_mode(true);
815 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 835 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
816 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 836 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
817 837
818 QuicStreamRequest request(factory_.get()); 838 QuicStreamRequest request(factory_.get());
819 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 839 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
820 /*cert_verify_flags=*/0, server1.host(), "GET", 840 /*cert_verify_flags=*/0, server1.host(), "GET",
821 net_log_, callback_.callback())); 841 net_log_, callback_.callback()));
822 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 842 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
(...skipping 17 matching lines...) Expand all
840 } 860 }
841 861
842 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { 862 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) {
843 Initialize(); 863 Initialize();
844 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 864 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
845 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); 865 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
846 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 866 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
847 socket_factory_.AddSocketDataProvider(&socket_data1); 867 socket_factory_.AddSocketDataProvider(&socket_data1);
848 socket_factory_.AddSocketDataProvider(&socket_data2); 868 socket_factory_.AddSocketDataProvider(&socket_data2);
849 869
850 HostPortPair server1("www.example.org", 443); 870 HostPortPair server1(kDefaultServerHostName, 443);
851 HostPortPair server2("mail.example.org", 443); 871 HostPortPair server2(kServer2HostName, 443);
852 uint8_t primary_pin = 1; 872 uint8_t primary_pin = 1;
853 uint8_t backup_pin = 2; 873 uint8_t backup_pin = 2;
854 uint8_t bad_pin = 3; 874 uint8_t bad_pin = 3;
855 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 875 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin,
856 backup_pin); 876 backup_pin);
857 877
858 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); 878 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails();
859 verify_details1.cert_verify_result.public_key_hashes.push_back( 879 verify_details1.cert_verify_result.public_key_hashes.push_back(
860 test::GetTestHashValue(bad_pin)); 880 test::GetTestHashValue(bad_pin));
861 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1); 881 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1);
862 882
863 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails(); 883 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails();
864 verify_details2.cert_verify_result.public_key_hashes.push_back( 884 verify_details2.cert_verify_result.public_key_hashes.push_back(
865 test::GetTestHashValue(primary_pin)); 885 test::GetTestHashValue(primary_pin));
(...skipping 22 matching lines...) Expand all
888 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 908 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
889 909
890 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 910 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
891 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 911 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
892 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 912 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
893 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 913 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
894 } 914 }
895 915
896 TEST_P(QuicStreamFactoryTest, Goaway) { 916 TEST_P(QuicStreamFactoryTest, Goaway) {
897 Initialize(); 917 Initialize();
918 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
919 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
920 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
921
898 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 922 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
899 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 923 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
900 socket_factory_.AddSocketDataProvider(&socket_data); 924 socket_factory_.AddSocketDataProvider(&socket_data);
901 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 925 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
902 socket_factory_.AddSocketDataProvider(&socket_data2); 926 socket_factory_.AddSocketDataProvider(&socket_data2);
903 927
904 QuicStreamRequest request(factory_.get()); 928 QuicStreamRequest request(factory_.get());
905 EXPECT_EQ(ERR_IO_PENDING, 929 EXPECT_EQ(ERR_IO_PENDING,
906 request.Request(host_port_pair_, privacy_mode_, 930 request.Request(host_port_pair_, privacy_mode_,
907 /*cert_verify_flags=*/0, host_port_pair_.host(), 931 /*cert_verify_flags=*/0, host_port_pair_.host(),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 stream.reset(); 968 stream.reset();
945 969
946 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 970 EXPECT_TRUE(socket_data.AllReadDataConsumed());
947 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 971 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
948 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 972 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
949 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 973 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
950 } 974 }
951 975
952 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { 976 TEST_P(QuicStreamFactoryTest, MaxOpenStream) {
953 Initialize(); 977 Initialize();
978 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
979 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
980
954 QuicStreamId stream_id = kClientDataStreamId1; 981 QuicStreamId stream_id = kClientDataStreamId1;
955 scoped_ptr<QuicEncryptedPacket> client_rst( 982 scoped_ptr<QuicEncryptedPacket> client_rst(
956 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); 983 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED));
957 MockWrite writes[] = { 984 MockWrite writes[] = {
958 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), 985 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0),
959 }; 986 };
960 scoped_ptr<QuicEncryptedPacket> server_rst( 987 scoped_ptr<QuicEncryptedPacket> server_rst(
961 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); 988 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED));
962 MockRead reads[] = { 989 MockRead reads[] = {
963 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), 990 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1),
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); 1100 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_));
1074 EXPECT_TRUE(stream.get()); 1101 EXPECT_TRUE(stream.get());
1075 stream.reset(); 1102 stream.reset();
1076 1103
1077 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1104 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1078 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1105 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1079 } 1106 }
1080 1107
1081 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { 1108 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) {
1082 Initialize(); 1109 Initialize();
1110 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1111 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1112 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1113 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1083 1114
1084 // Sequentially connect to the default host, then another host, and then the 1115 // Sequentially connect to the default host, then another host, and then the
1085 // default host. Verify that the default host gets a consistent ephemeral 1116 // default host. Verify that the default host gets a consistent ephemeral
1086 // port, that is different from the other host's connection. 1117 // port, that is different from the other host's connection.
1087 1118
1088 std::string other_server_name = "other.google.com"; 1119 std::string other_server_name = kServer2HostName;
1089 EXPECT_NE(kDefaultServerHostName, other_server_name); 1120 EXPECT_NE(kDefaultServerHostName, other_server_name);
1090 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort); 1121 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort);
1091 1122
1092 int original_port = GetSourcePortForNewSession(host_port_pair_); 1123 int original_port = GetSourcePortForNewSession(host_port_pair_);
1093 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair2)); 1124 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair2));
1094 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); 1125 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_));
1095 } 1126 }
1096 1127
1097 TEST_P(QuicStreamFactoryTest, GoAwayDisablesConsistentEphemeralPort) { 1128 TEST_P(QuicStreamFactoryTest, GoAwayDisablesConsistentEphemeralPort) {
1098 Initialize(); 1129 Initialize();
1130 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1131 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1132 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1133 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1099 1134
1100 // Get a session to the host using the port suggester. 1135 // Get a session to the host using the port suggester.
1101 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_); 1136 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_);
1102 // Verify that the port is different after the goaway. 1137 // Verify that the port is different after the goaway.
1103 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); 1138 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_));
1104 // Since the previous session did not goaway we should see the original port. 1139 // Since the previous session did not goaway we should see the original port.
1105 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); 1140 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_));
1106 } 1141 }
1107 1142
1108 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { 1143 TEST_P(QuicStreamFactoryTest, CloseAllSessions) {
1109 Initialize(); 1144 Initialize();
1145 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1146 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1147 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1148
1110 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1149 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1111 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1150 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1112 std::vector<MockWrite> writes; 1151 std::vector<MockWrite> writes;
1113 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1152 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1114 SequencedSocketData socket_data(reads, arraysize(reads), 1153 SequencedSocketData socket_data(reads, arraysize(reads),
1115 writes.empty() ? nullptr : &writes[0], 1154 writes.empty() ? nullptr : &writes[0],
1116 writes.size()); 1155 writes.size());
1117 socket_factory_.AddSocketDataProvider(&socket_data); 1156 socket_factory_.AddSocketDataProvider(&socket_data);
1118 1157
1119 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1158 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 1191
1153 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1192 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1154 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1193 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1155 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1194 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1156 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1195 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1157 } 1196 }
1158 1197
1159 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { 1198 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) {
1160 close_sessions_on_ip_change_ = true; 1199 close_sessions_on_ip_change_ = true;
1161 Initialize(); 1200 Initialize();
1201 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1202 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1203 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1162 1204
1163 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1205 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1164 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1206 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1165 std::vector<MockWrite> writes; 1207 std::vector<MockWrite> writes;
1166 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1208 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1167 SequencedSocketData socket_data(reads, arraysize(reads), 1209 SequencedSocketData socket_data(reads, arraysize(reads),
1168 writes.empty() ? nullptr : &writes[0], 1210 writes.empty() ? nullptr : &writes[0],
1169 writes.size()); 1211 writes.size());
1170 socket_factory_.AddSocketDataProvider(&socket_data); 1212 socket_factory_.AddSocketDataProvider(&socket_data);
1171 1213
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 stream.reset(); // Will reset stream 3. 1247 stream.reset(); // Will reset stream 3.
1206 1248
1207 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1249 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1208 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1250 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1209 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1251 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1210 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1252 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1211 } 1253 }
1212 1254
1213 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { 1255 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) {
1214 Initialize(); 1256 Initialize();
1257 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1258 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1259 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1260
1215 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1261 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1216 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1262 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1217 std::vector<MockWrite> writes; 1263 std::vector<MockWrite> writes;
1218 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1264 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1219 SequencedSocketData socket_data(reads, arraysize(reads), 1265 SequencedSocketData socket_data(reads, arraysize(reads),
1220 writes.empty() ? nullptr : &writes[0], 1266 writes.empty() ? nullptr : &writes[0],
1221 writes.size()); 1267 writes.size());
1222 socket_factory_.AddSocketDataProvider(&socket_data); 1268 socket_factory_.AddSocketDataProvider(&socket_data);
1223 1269
1224 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1270 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 stream.reset(); // Will reset stream 3. 1302 stream.reset(); // Will reset stream 3.
1257 1303
1258 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1304 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1259 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1305 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1260 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1306 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1261 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1307 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1262 } 1308 }
1263 1309
1264 TEST_P(QuicStreamFactoryTest, OnCertAdded) { 1310 TEST_P(QuicStreamFactoryTest, OnCertAdded) {
1265 Initialize(); 1311 Initialize();
1312 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1313 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1314 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1315
1266 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1316 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1267 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1317 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1268 std::vector<MockWrite> writes; 1318 std::vector<MockWrite> writes;
1269 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1319 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1270 SequencedSocketData socket_data(reads, arraysize(reads), 1320 SequencedSocketData socket_data(reads, arraysize(reads),
1271 writes.empty() ? nullptr : &writes[0], 1321 writes.empty() ? nullptr : &writes[0],
1272 writes.size()); 1322 writes.size());
1273 socket_factory_.AddSocketDataProvider(&socket_data); 1323 socket_factory_.AddSocketDataProvider(&socket_data);
1274 1324
1275 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1325 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1308 stream.reset(); // Will reset stream 3. 1358 stream.reset(); // Will reset stream 3.
1309 1359
1310 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1360 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1311 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1361 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1312 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1362 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1313 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1363 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1314 } 1364 }
1315 1365
1316 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { 1366 TEST_P(QuicStreamFactoryTest, OnCACertChanged) {
1317 Initialize(); 1367 Initialize();
1368 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1369 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1370 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1371
1318 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1372 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1373 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1320 std::vector<MockWrite> writes; 1374 std::vector<MockWrite> writes;
1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1375 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1322 SequencedSocketData socket_data(reads, arraysize(reads), 1376 SequencedSocketData socket_data(reads, arraysize(reads),
1323 writes.empty() ? nullptr : &writes[0], 1377 writes.empty() ? nullptr : &writes[0],
1324 writes.size()); 1378 writes.size());
1325 socket_factory_.AddSocketDataProvider(&socket_data); 1379 socket_factory_.AddSocketDataProvider(&socket_data);
1326 1380
1327 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1381 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 stream.reset(); // Will reset stream 3. 1414 stream.reset(); // Will reset stream 3.
1361 1415
1362 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1416 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1363 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1417 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1364 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1418 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1365 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1419 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1366 } 1420 }
1367 1421
1368 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { 1422 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) {
1369 Initialize(); 1423 Initialize();
1424
1370 vector<string> cannoncial_suffixes; 1425 vector<string> cannoncial_suffixes;
1371 cannoncial_suffixes.push_back(string(".c.youtube.com")); 1426 cannoncial_suffixes.push_back(string(".c.youtube.com"));
1372 cannoncial_suffixes.push_back(string(".googlevideo.com")); 1427 cannoncial_suffixes.push_back(string(".googlevideo.com"));
1373 1428
1374 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) { 1429 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) {
1375 string r1_host_name("r1"); 1430 string r1_host_name("r1");
1376 string r2_host_name("r2"); 1431 string r2_host_name("r2");
1377 r1_host_name.append(cannoncial_suffixes[i]); 1432 r1_host_name.append(cannoncial_suffixes[i]);
1378 r2_host_name.append(cannoncial_suffixes[i]); 1433 r2_host_name.append(cannoncial_suffixes[i]);
1379 1434
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 crypto_config->LookupOrCreate(server_id2); 1487 crypto_config->LookupOrCreate(server_id2);
1433 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); 1488 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token());
1434 EXPECT_TRUE(cached2->source_address_token().empty()); 1489 EXPECT_TRUE(cached2->source_address_token().empty());
1435 EXPECT_FALSE(cached2->proof_valid()); 1490 EXPECT_FALSE(cached2->proof_valid());
1436 } 1491 }
1437 } 1492 }
1438 1493
1439 TEST_P(QuicStreamFactoryTest, RacingConnections) { 1494 TEST_P(QuicStreamFactoryTest, RacingConnections) {
1440 disable_disk_cache_ = false; 1495 disable_disk_cache_ = false;
1441 Initialize(); 1496 Initialize();
1497 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1498 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1442 1499
1443 if (!GetParam().enable_connection_racing) 1500 if (!GetParam().enable_connection_racing)
1444 return; 1501 return;
1445 1502
1446 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1503 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1447 1504
1448 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1505 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1449 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1506 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1450 socket_factory_.AddSocketDataProvider(&socket_data); 1507 socket_factory_.AddSocketDataProvider(&socket_data);
1451 1508
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1484 EXPECT_TRUE(stream.get()); 1541 EXPECT_TRUE(stream.get());
1485 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1542 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1486 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1543 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1487 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), 1544 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(),
1488 server_id)); 1545 server_id));
1489 } 1546 }
1490 1547
1491 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { 1548 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) {
1492 disable_disk_cache_ = true; 1549 disable_disk_cache_ = true;
1493 Initialize(); 1550 Initialize();
1551 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1552 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1553
1494 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1554 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1495 1555
1496 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1556 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1497 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1557 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1498 socket_factory_.AddSocketDataProvider(&socket_data); 1558 socket_factory_.AddSocketDataProvider(&socket_data);
1499 1559
1500 crypto_client_stream_factory_.set_handshake_mode( 1560 crypto_client_stream_factory_.set_handshake_mode(
1501 MockCryptoClientStream::ZERO_RTT); 1561 MockCryptoClientStream::ZERO_RTT);
1502 host_resolver_.set_synchronous_mode(true); 1562 host_resolver_.set_synchronous_mode(true);
1503 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1563 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
(...skipping 11 matching lines...) Expand all
1515 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1575 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1516 EXPECT_TRUE(stream.get()); 1576 EXPECT_TRUE(stream.get());
1517 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1577 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1518 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1578 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1519 } 1579 }
1520 1580
1521 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { 1581 TEST_P(QuicStreamFactoryTest, BadPacketLoss) {
1522 disable_disk_cache_ = false; 1582 disable_disk_cache_ = false;
1523 max_number_of_lossy_connections_ = 2; 1583 max_number_of_lossy_connections_ = 2;
1524 Initialize(); 1584 Initialize();
1585 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1586 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1587 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1588 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1589 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1590
1525 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1591 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1526 1592
1527 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1593 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1528 host_port_pair_.port())); 1594 host_port_pair_.port()));
1529 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1595 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1530 factory_.get(), host_port_pair_.port())); 1596 factory_.get(), host_port_pair_.port()));
1531 1597
1532 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1598 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1533 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1599 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1534 socket_factory_.AddSocketDataProvider(&socket_data); 1600 socket_factory_.AddSocketDataProvider(&socket_data);
1535 1601
1536 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); 1602 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
1537 socket_factory_.AddSocketDataProvider(&socket_data2); 1603 socket_factory_.AddSocketDataProvider(&socket_data2);
1538 1604
1539 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); 1605 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0);
1540 socket_factory_.AddSocketDataProvider(&socket_data3); 1606 socket_factory_.AddSocketDataProvider(&socket_data3);
1541 1607
1542 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); 1608 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0);
1543 socket_factory_.AddSocketDataProvider(&socket_data4); 1609 socket_factory_.AddSocketDataProvider(&socket_data4);
1544 1610
1545 HostPortPair server2("mail.example.org", kDefaultServerPort); 1611 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1546 HostPortPair server3("docs.example.org", kDefaultServerPort); 1612 HostPortPair server3(kServer3HostName, kDefaultServerPort);
1547 HostPortPair server4("images.example.org", kDefaultServerPort); 1613 HostPortPair server4(kServer4HostName, kDefaultServerPort);
1548 1614
1549 crypto_client_stream_factory_.set_handshake_mode( 1615 crypto_client_stream_factory_.set_handshake_mode(
1550 MockCryptoClientStream::ZERO_RTT); 1616 MockCryptoClientStream::ZERO_RTT);
1551 host_resolver_.set_synchronous_mode(true); 1617 host_resolver_.set_synchronous_mode(true);
1552 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1618 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1553 "192.168.0.1", ""); 1619 "192.168.0.1", "");
1554 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1620 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1555 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 1621 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
1556 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 1622 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
1557 1623
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1682 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 1748 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
1683 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 1749 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
1684 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 1750 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
1685 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 1751 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
1686 } 1752 }
1687 1753
1688 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { 1754 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) {
1689 disable_disk_cache_ = false; 1755 disable_disk_cache_ = false;
1690 threshold_public_resets_post_handshake_ = 2; 1756 threshold_public_resets_post_handshake_ = 2;
1691 Initialize(); 1757 Initialize();
1758 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1759 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1760 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1692 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1761 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1693 1762
1694 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1763 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1695 host_port_pair_.port())); 1764 host_port_pair_.port()));
1696 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1765 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1697 factory_.get(), host_port_pair_.port())); 1766 factory_.get(), host_port_pair_.port()));
1698 1767
1699 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1768 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1700 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1769 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1701 socket_factory_.AddSocketDataProvider(&socket_data); 1770 socket_factory_.AddSocketDataProvider(&socket_data);
1702 1771
1703 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1772 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1704 socket_factory_.AddSocketDataProvider(&socket_data2); 1773 socket_factory_.AddSocketDataProvider(&socket_data2);
1705 1774
1706 HostPortPair server2("mail.example.org", kDefaultServerPort); 1775 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1707 1776
1708 crypto_client_stream_factory_.set_handshake_mode( 1777 crypto_client_stream_factory_.set_handshake_mode(
1709 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1778 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1710 host_resolver_.set_synchronous_mode(true); 1779 host_resolver_.set_synchronous_mode(true);
1711 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1780 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1712 "192.168.0.1", ""); 1781 "192.168.0.1", "");
1713 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1782 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1714 1783
1715 QuicStreamRequest request(factory_.get()); 1784 QuicStreamRequest request(factory_.get());
1716 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1785 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1762 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1831 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1763 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1832 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1764 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1833 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1765 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1834 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1766 } 1835 }
1767 1836
1768 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { 1837 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) {
1769 disable_disk_cache_ = true; 1838 disable_disk_cache_ = true;
1770 threshold_timeouts_with_open_streams_ = 2; 1839 threshold_timeouts_with_open_streams_ = 2;
1771 Initialize(); 1840 Initialize();
1841 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1842 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1843 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1772 1844
1773 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1845 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1774 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1846 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1775 host_port_pair_.port())); 1847 host_port_pair_.port()));
1776 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1848 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1777 factory_.get(), host_port_pair_.port())); 1849 factory_.get(), host_port_pair_.port()));
1778 1850
1779 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1851 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1780 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1852 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1781 socket_factory_.AddSocketDataProvider(&socket_data); 1853 socket_factory_.AddSocketDataProvider(&socket_data);
1782 1854
1783 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1855 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1784 socket_factory_.AddSocketDataProvider(&socket_data2); 1856 socket_factory_.AddSocketDataProvider(&socket_data2);
1785 1857
1786 HostPortPair server2("mail.example.org", kDefaultServerPort); 1858 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1787 1859
1788 crypto_client_stream_factory_.set_handshake_mode( 1860 crypto_client_stream_factory_.set_handshake_mode(
1789 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1861 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1790 host_resolver_.set_synchronous_mode(true); 1862 host_resolver_.set_synchronous_mode(true);
1791 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1863 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1792 "192.168.0.1", ""); 1864 "192.168.0.1", "");
1793 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1865 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1794 1866
1795 QuicStreamRequest request(factory_.get()); 1867 QuicStreamRequest request(factory_.get());
1796 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1868 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1849 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1921 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1850 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1922 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1851 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1923 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1852 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1924 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1853 } 1925 }
1854 1926
1855 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { 1927 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) {
1856 disable_disk_cache_ = true; 1928 disable_disk_cache_ = true;
1857 threshold_public_resets_post_handshake_ = 2; 1929 threshold_public_resets_post_handshake_ = 2;
1858 Initialize(); 1930 Initialize();
1931 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1932 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1933 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1934 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1859 1935
1860 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1936 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1861 host_port_pair_.port())); 1937 host_port_pair_.port()));
1862 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1938 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1863 factory_.get(), host_port_pair_.port())); 1939 factory_.get(), host_port_pair_.port()));
1864 1940
1865 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1941 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1866 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1942 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1867 socket_factory_.AddSocketDataProvider(&socket_data); 1943 socket_factory_.AddSocketDataProvider(&socket_data);
1868 1944
1869 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1945 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1870 socket_factory_.AddSocketDataProvider(&socket_data2); 1946 socket_factory_.AddSocketDataProvider(&socket_data2);
1871 1947
1872 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 1948 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
1873 socket_factory_.AddSocketDataProvider(&socket_data3); 1949 socket_factory_.AddSocketDataProvider(&socket_data3);
1874 1950
1875 HostPortPair server2("mail.example.org", kDefaultServerPort); 1951 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1876 HostPortPair server3("docs.example.org", kDefaultServerPort); 1952 HostPortPair server3(kServer3HostName, kDefaultServerPort);
1877 1953
1878 crypto_client_stream_factory_.set_handshake_mode( 1954 crypto_client_stream_factory_.set_handshake_mode(
1879 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1955 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1880 host_resolver_.set_synchronous_mode(true); 1956 host_resolver_.set_synchronous_mode(true);
1881 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1957 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1882 "192.168.0.1", ""); 1958 "192.168.0.1", "");
1883 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1884 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 1960 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
1885 1961
1886 // Test first and third out of three public reset post handshakes. 1962 // Test first and third out of three public reset post handshakes.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2034 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1959 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2035 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1960 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2036 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
1961 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2037 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
1962 } 2038 }
1963 2039
1964 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { 2040 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) {
1965 disable_disk_cache_ = true; 2041 disable_disk_cache_ = true;
1966 threshold_public_resets_post_handshake_ = 2; 2042 threshold_public_resets_post_handshake_ = 2;
1967 Initialize(); 2043 Initialize();
2044 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2045 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2046 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2047 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1968 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2048 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1969 2049
1970 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2050 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1971 host_port_pair_.port())); 2051 host_port_pair_.port()));
1972 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2052 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1973 factory_.get(), host_port_pair_.port())); 2053 factory_.get(), host_port_pair_.port()));
1974 2054
1975 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2055 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1976 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 2056 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1977 socket_factory_.AddSocketDataProvider(&socket_data); 2057 socket_factory_.AddSocketDataProvider(&socket_data);
1978 2058
1979 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); 2059 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
1980 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 2060 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1981 socket_factory_.AddSocketDataProvider(&socket_data2); 2061 socket_factory_.AddSocketDataProvider(&socket_data2);
1982 2062
1983 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 2063 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
1984 socket_factory_.AddSocketDataProvider(&socket_data3); 2064 socket_factory_.AddSocketDataProvider(&socket_data3);
1985 2065
1986 HostPortPair server2("mail.example.org", kDefaultServerPort); 2066 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1987 HostPortPair server3("docs.example.org", kDefaultServerPort); 2067 HostPortPair server3(kServer3HostName, kDefaultServerPort);
1988 2068
1989 crypto_client_stream_factory_.set_handshake_mode( 2069 crypto_client_stream_factory_.set_handshake_mode(
1990 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2070 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1991 host_resolver_.set_synchronous_mode(true); 2071 host_resolver_.set_synchronous_mode(true);
1992 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2072 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1993 "192.168.0.1", ""); 2073 "192.168.0.1", "");
1994 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2074 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1995 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2075 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
1996 2076
1997 // Test first and third out of three timeouts with open streams. 2077 // Test first and third out of three timeouts with open streams.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
2076 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2156 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2077 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2157 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2078 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2158 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2079 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2159 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2080 } 2160 }
2081 2161
2082 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { 2162 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) {
2083 disable_disk_cache_ = true; 2163 disable_disk_cache_ = true;
2084 threshold_public_resets_post_handshake_ = 2; 2164 threshold_public_resets_post_handshake_ = 2;
2085 Initialize(); 2165 Initialize();
2166 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2167 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2168 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2169 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2170 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2086 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2171 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2087 2172
2088 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2173 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2089 host_port_pair_.port())); 2174 host_port_pair_.port()));
2090 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2175 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2091 factory_.get(), host_port_pair_.port())); 2176 factory_.get(), host_port_pair_.port()));
2092 2177
2093 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2178 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2094 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 2179 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2095 socket_factory_.AddSocketDataProvider(&socket_data); 2180 socket_factory_.AddSocketDataProvider(&socket_data);
2096 2181
2097 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 2182 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
2098 socket_factory_.AddSocketDataProvider(&socket_data2); 2183 socket_factory_.AddSocketDataProvider(&socket_data2);
2099 2184
2100 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 2185 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2101 socket_factory_.AddSocketDataProvider(&socket_data3); 2186 socket_factory_.AddSocketDataProvider(&socket_data3);
2102 2187
2103 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); 2188 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0);
2104 socket_factory_.AddSocketDataProvider(&socket_data4); 2189 socket_factory_.AddSocketDataProvider(&socket_data4);
2105 2190
2106 HostPortPair server2("mail.example.org", kDefaultServerPort); 2191 HostPortPair server2(kServer2HostName, kDefaultServerPort);
2107 HostPortPair server3("docs.example.org", kDefaultServerPort); 2192 HostPortPair server3(kServer3HostName, kDefaultServerPort);
2108 HostPortPair server4("images.example.org", kDefaultServerPort); 2193 HostPortPair server4(kServer4HostName, kDefaultServerPort);
2109 2194
2110 crypto_client_stream_factory_.set_handshake_mode( 2195 crypto_client_stream_factory_.set_handshake_mode(
2111 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2196 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2112 host_resolver_.set_synchronous_mode(true); 2197 host_resolver_.set_synchronous_mode(true);
2113 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2198 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2114 "192.168.0.1", ""); 2199 "192.168.0.1", "");
2115 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2200 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2116 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2201 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
2117 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 2202 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
2118 2203
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
2210 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2295 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2211 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2296 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2212 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 2297 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
2213 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 2298 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
2214 } 2299 }
2215 2300
2216 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { 2301 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) {
2217 disable_disk_cache_ = true; 2302 disable_disk_cache_ = true;
2218 threshold_public_resets_post_handshake_ = 2; 2303 threshold_public_resets_post_handshake_ = 2;
2219 Initialize(); 2304 Initialize();
2305 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2306 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2307 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2308 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2309 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2220 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2310 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2221 2311
2222 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2312 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2223 host_port_pair_.port())); 2313 host_port_pair_.port()));
2224 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2314 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2225 factory_.get(), host_port_pair_.port())); 2315 factory_.get(), host_port_pair_.port()));
2226 2316
2227 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2317 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2228 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 2318 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2229 socket_factory_.AddSocketDataProvider(&socket_data); 2319 socket_factory_.AddSocketDataProvider(&socket_data);
2230 2320
2231 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); 2321 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
2232 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 2322 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
2233 socket_factory_.AddSocketDataProvider(&socket_data2); 2323 socket_factory_.AddSocketDataProvider(&socket_data2);
2234 2324
2235 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 2325 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2236 socket_factory_.AddSocketDataProvider(&socket_data3); 2326 socket_factory_.AddSocketDataProvider(&socket_data3);
2237 2327
2238 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); 2328 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0);
2239 socket_factory_.AddSocketDataProvider(&socket_data4); 2329 socket_factory_.AddSocketDataProvider(&socket_data4);
2240 2330
2241 HostPortPair server2("mail.example.org", kDefaultServerPort); 2331 HostPortPair server2(kServer2HostName, kDefaultServerPort);
2242 HostPortPair server3("docs.example.org", kDefaultServerPort); 2332 HostPortPair server3(kServer3HostName, kDefaultServerPort);
2243 HostPortPair server4("images.example.org", kDefaultServerPort); 2333 HostPortPair server4(kServer4HostName, kDefaultServerPort);
2244 2334
2245 crypto_client_stream_factory_.set_handshake_mode( 2335 crypto_client_stream_factory_.set_handshake_mode(
2246 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2336 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2247 host_resolver_.set_synchronous_mode(true); 2337 host_resolver_.set_synchronous_mode(true);
2248 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2338 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2249 "192.168.0.1", ""); 2339 "192.168.0.1", "");
2250 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2340 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2251 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2341 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
2252 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 2342 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
2253 2343
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2350 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2440 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2351 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2441 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2352 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2442 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2353 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2443 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2354 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 2444 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
2355 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 2445 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
2356 } 2446 }
2357 2447
2358 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { 2448 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) {
2359 Initialize(); 2449 Initialize();
2450 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2451 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2360 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); 2452 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get());
2361 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); 2453 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false);
2362 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2454 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2363 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 2455 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2364 socket_factory_.AddSocketDataProvider(&socket_data); 2456 socket_factory_.AddSocketDataProvider(&socket_data);
2365 2457
2366 ServerNetworkStats stats1; 2458 ServerNetworkStats stats1;
2367 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 2459 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
2368 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); 2460 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1);
2369 2461
(...skipping 30 matching lines...) Expand all
2400 EXPECT_TRUE(stream.get()); 2492 EXPECT_TRUE(stream.get());
2401 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2493 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2402 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2494 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2403 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race); 2495 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race);
2404 } 2496 }
2405 2497
2406 TEST_P(QuicStreamFactoryTest, MaybeInitialize) { 2498 TEST_P(QuicStreamFactoryTest, MaybeInitialize) {
2407 store_server_configs_in_properties_ = true; 2499 store_server_configs_in_properties_ = true;
2408 idle_connection_timeout_seconds_ = 500; 2500 idle_connection_timeout_seconds_ = 500;
2409 Initialize(); 2501 Initialize();
2502 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2503 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2410 const QuicConfig* config = QuicStreamFactoryPeer::GetConfig(factory_.get()); 2504 const QuicConfig* config = QuicStreamFactoryPeer::GetConfig(factory_.get());
2411 EXPECT_EQ(500, config->IdleConnectionStateLifetime().ToSeconds()); 2505 EXPECT_EQ(500, config->IdleConnectionStateLifetime().ToSeconds());
2412 2506
2413 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2507 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2414 2508
2415 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), 2509 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(),
2416 host_port_pair_.port()); 2510 host_port_pair_.port());
2417 AlternativeServiceInfoVector alternative_service_info_vector; 2511 AlternativeServiceInfoVector alternative_service_info_vector;
2418 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 2512 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
2419 alternative_service_info_vector.push_back( 2513 alternative_service_info_vector.push_back(
2420 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); 2514 AlternativeServiceInfo(alternative_service1, 1.0, expiration));
2421 2515
2422 http_server_properties_.SetAlternativeServices( 2516 http_server_properties_.SetAlternativeServices(
2423 host_port_pair_, alternative_service_info_vector); 2517 host_port_pair_, alternative_service_info_vector);
2424 2518
2425 QuicServerId quic_server_id("www.google.com", 80, PRIVACY_MODE_DISABLED); 2519 QuicServerId quic_server_id(kDefaultServerHostName, 80,
2520 PRIVACY_MODE_DISABLED);
2426 QuicServerInfoFactory* quic_server_info_factory = 2521 QuicServerInfoFactory* quic_server_info_factory =
2427 new PropertiesBasedQuicServerInfoFactory( 2522 new PropertiesBasedQuicServerInfoFactory(
2428 http_server_properties_.GetWeakPtr()); 2523 http_server_properties_.GetWeakPtr());
2429 factory_->set_quic_server_info_factory(quic_server_info_factory); 2524 factory_->set_quic_server_info_factory(quic_server_info_factory);
2430 2525
2431 scoped_ptr<QuicServerInfo> quic_server_info( 2526 scoped_ptr<QuicServerInfo> quic_server_info(
2432 quic_server_info_factory->GetForServer(quic_server_id)); 2527 quic_server_info_factory->GetForServer(quic_server_id));
2433 2528
2434 // Update quic_server_info's server_config and persist it. 2529 // Update quic_server_info's server_config and persist it.
2435 QuicServerInfo::State* state = quic_server_info->mutable_state(); 2530 QuicServerInfo::State* state = quic_server_info->mutable_state();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2490 factory_->set_require_confirmation(false); 2585 factory_->set_require_confirmation(false);
2491 EXPECT_FALSE(factory_->ZeroRTTEnabledFor(quic_server_id)); 2586 EXPECT_FALSE(factory_->ZeroRTTEnabledFor(quic_server_id));
2492 2587
2493 // Load server config and verify QUIC will do 0RTT. 2588 // Load server config and verify QUIC will do 0RTT.
2494 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id); 2589 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id);
2495 EXPECT_TRUE(factory_->ZeroRTTEnabledFor(quic_server_id)); 2590 EXPECT_TRUE(factory_->ZeroRTTEnabledFor(quic_server_id));
2496 } 2591 }
2497 2592
2498 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { 2593 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) {
2499 Initialize(); 2594 Initialize();
2595 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2596 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2500 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); 2597 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0);
2501 2598
2502 scoped_ptr<QuicEncryptedPacket> close_packet( 2599 scoped_ptr<QuicEncryptedPacket> close_packet(
2503 ConstructConnectionClosePacket(0)); 2600 ConstructConnectionClosePacket(0));
2504 vector<MockRead> reads; 2601 vector<MockRead> reads;
2505 reads.push_back( 2602 reads.push_back(
2506 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); 2603 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0));
2507 reads.push_back(MockRead(ASYNC, OK, 1)); 2604 reads.push_back(MockRead(ASYNC, OK, 1));
2508 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); 2605 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0);
2509 socket_factory_.AddSocketDataProvider(&socket_data); 2606 socket_factory_.AddSocketDataProvider(&socket_data);
(...skipping 24 matching lines...) Expand all
2534 EXPECT_EQ(1u, observer.executed_count()); 2631 EXPECT_EQ(1u, observer.executed_count());
2535 2632
2536 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2633 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2537 EXPECT_TRUE(stream.get()); 2634 EXPECT_TRUE(stream.get());
2538 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2635 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2539 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2636 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2540 } 2637 }
2541 2638
2542 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { 2639 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) {
2543 Initialize(); 2640 Initialize();
2641 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2642 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2544 QuicStreamFactoryPeer::SetYieldAfterDuration( 2643 QuicStreamFactoryPeer::SetYieldAfterDuration(
2545 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); 2644 factory_.get(), QuicTime::Delta::FromMilliseconds(-1));
2546 2645
2547 scoped_ptr<QuicEncryptedPacket> close_packet( 2646 scoped_ptr<QuicEncryptedPacket> close_packet(
2548 ConstructConnectionClosePacket(0)); 2647 ConstructConnectionClosePacket(0));
2549 vector<MockRead> reads; 2648 vector<MockRead> reads;
2550 reads.push_back( 2649 reads.push_back(
2551 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); 2650 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0));
2552 reads.push_back(MockRead(ASYNC, OK, 1)); 2651 reads.push_back(MockRead(ASYNC, OK, 1));
2553 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); 2652 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0);
(...skipping 25 matching lines...) Expand all
2579 EXPECT_EQ(1u, observer.executed_count()); 2678 EXPECT_EQ(1u, observer.executed_count());
2580 2679
2581 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2680 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2582 EXPECT_TRUE(stream.get()); 2681 EXPECT_TRUE(stream.get());
2583 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2682 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2584 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2683 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2585 } 2684 }
2586 2685
2587 } // namespace test 2686 } // namespace test
2588 } // namespace net 2687 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_network_transaction_unittest.cc ('k') | net/quic/test_tools/mock_crypto_client_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698