OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "net/base/test_data_directory.h" | 9 #include "net/base/test_data_directory.h" |
10 #include "net/cert/cert_verifier.h" | 10 #include "net/cert/cert_verifier.h" |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 socket_factory_. | 289 socket_factory_. |
290 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); | 290 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); |
291 int port = endpoint.port(); | 291 int port = endpoint.port(); |
292 if (goaway_received) { | 292 if (goaway_received) { |
293 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); | 293 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); |
294 session->OnGoAway(goaway); | 294 session->OnGoAway(goaway); |
295 } | 295 } |
296 | 296 |
297 factory_.OnSessionClosed(session); | 297 factory_.OnSessionClosed(session); |
298 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get()); | 298 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get()); |
299 EXPECT_TRUE(socket_data.at_read_eof()); | 299 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
300 EXPECT_TRUE(socket_data.at_write_eof()); | 300 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
301 return port; | 301 return port; |
302 } | 302 } |
303 | 303 |
304 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { | 304 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { |
305 QuicStreamId stream_id = kClientDataStreamId1; | 305 QuicStreamId stream_id = kClientDataStreamId1; |
306 return maker_.MakeRstPacket( | 306 return maker_.MakeRstPacket( |
307 1, true, stream_id, | 307 1, true, stream_id, |
308 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version)); | 308 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version)); |
309 } | 309 } |
310 | 310 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 EXPECT_EQ(OK, | 366 EXPECT_EQ(OK, |
367 request2.Request(host_port_pair_, | 367 request2.Request(host_port_pair_, |
368 is_https_, | 368 is_https_, |
369 privacy_mode_, | 369 privacy_mode_, |
370 "GET", | 370 "GET", |
371 net_log_, | 371 net_log_, |
372 callback_.callback())); | 372 callback_.callback())); |
373 stream = request2.ReleaseStream(); // Will reset stream 5. | 373 stream = request2.ReleaseStream(); // Will reset stream 5. |
374 stream.reset(); // Will reset stream 7. | 374 stream.reset(); // Will reset stream 7. |
375 | 375 |
376 EXPECT_TRUE(socket_data.at_read_eof()); | 376 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
377 EXPECT_TRUE(socket_data.at_write_eof()); | 377 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
378 } | 378 } |
379 | 379 |
380 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 380 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
381 MockRead reads[] = { | 381 MockRead reads[] = { |
382 MockRead(ASYNC, OK, 0) // EOF | 382 MockRead(ASYNC, OK, 0) // EOF |
383 }; | 383 }; |
384 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 384 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
385 socket_factory_.AddSocketDataProvider(&socket_data); | 385 socket_factory_.AddSocketDataProvider(&socket_data); |
386 socket_data.StopAfter(1); | 386 socket_data.StopAfter(1); |
387 | 387 |
388 crypto_client_stream_factory_.set_handshake_mode( | 388 crypto_client_stream_factory_.set_handshake_mode( |
389 MockCryptoClientStream::ZERO_RTT); | 389 MockCryptoClientStream::ZERO_RTT); |
390 host_resolver_.set_synchronous_mode(true); | 390 host_resolver_.set_synchronous_mode(true); |
391 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 391 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
392 "192.168.0.1", ""); | 392 "192.168.0.1", ""); |
393 | 393 |
394 QuicStreamRequest request(&factory_); | 394 QuicStreamRequest request(&factory_); |
395 EXPECT_EQ(OK, | 395 EXPECT_EQ(OK, |
396 request.Request(host_port_pair_, | 396 request.Request(host_port_pair_, |
397 is_https_, | 397 is_https_, |
398 privacy_mode_, | 398 privacy_mode_, |
399 "GET", | 399 "GET", |
400 net_log_, | 400 net_log_, |
401 callback_.callback())); | 401 callback_.callback())); |
402 | 402 |
403 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 403 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
404 EXPECT_TRUE(stream.get()); | 404 EXPECT_TRUE(stream.get()); |
405 EXPECT_TRUE(socket_data.at_read_eof()); | 405 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
406 EXPECT_TRUE(socket_data.at_write_eof()); | 406 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
407 } | 407 } |
408 | 408 |
409 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 409 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
410 MockRead reads[] = { | 410 MockRead reads[] = { |
411 MockRead(ASYNC, OK, 0) // EOF | 411 MockRead(ASYNC, OK, 0) // EOF |
412 }; | 412 }; |
413 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 413 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
414 socket_factory_.AddSocketDataProvider(&socket_data); | 414 socket_factory_.AddSocketDataProvider(&socket_data); |
415 socket_data.StopAfter(1); | 415 socket_data.StopAfter(1); |
416 | 416 |
(...skipping 13 matching lines...) Expand all Loading... |
430 net_log_, | 430 net_log_, |
431 callback_.callback())); | 431 callback_.callback())); |
432 | 432 |
433 // Confirm the handshake and verify that the stream is created. | 433 // Confirm the handshake and verify that the stream is created. |
434 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 434 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
435 QuicSession::HANDSHAKE_CONFIRMED); | 435 QuicSession::HANDSHAKE_CONFIRMED); |
436 | 436 |
437 EXPECT_EQ(OK, callback_.WaitForResult()); | 437 EXPECT_EQ(OK, callback_.WaitForResult()); |
438 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 438 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
439 EXPECT_TRUE(stream.get()); | 439 EXPECT_TRUE(stream.get()); |
440 EXPECT_TRUE(socket_data.at_read_eof()); | 440 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
441 EXPECT_TRUE(socket_data.at_write_eof()); | 441 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
442 } | 442 } |
443 | 443 |
444 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { | 444 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { |
445 MockRead reads[] = { | 445 MockRead reads[] = { |
446 MockRead(ASYNC, OK, 0) // EOF | 446 MockRead(ASYNC, OK, 0) // EOF |
447 }; | 447 }; |
448 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 448 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
449 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 449 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
450 socket_factory_.AddSocketDataProvider(&socket_data1); | 450 socket_factory_.AddSocketDataProvider(&socket_data1); |
451 socket_factory_.AddSocketDataProvider(&socket_data2); | 451 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 24 matching lines...) Expand all Loading... |
476 EXPECT_EQ(OK, callback_.WaitForResult()); | 476 EXPECT_EQ(OK, callback_.WaitForResult()); |
477 stream = request2.ReleaseStream(); | 477 stream = request2.ReleaseStream(); |
478 EXPECT_TRUE(stream.get()); | 478 EXPECT_TRUE(stream.get()); |
479 stream.reset(); | 479 stream.reset(); |
480 | 480 |
481 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( | 481 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( |
482 &factory_, host_port_pair_, is_https_), | 482 &factory_, host_port_pair_, is_https_), |
483 QuicStreamFactoryPeer::GetActiveSession( | 483 QuicStreamFactoryPeer::GetActiveSession( |
484 &factory_, host_port_pair_, !is_https_)); | 484 &factory_, host_port_pair_, !is_https_)); |
485 | 485 |
486 EXPECT_TRUE(socket_data1.at_read_eof()); | 486 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
487 EXPECT_TRUE(socket_data1.at_write_eof()); | 487 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
488 EXPECT_TRUE(socket_data2.at_read_eof()); | 488 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
489 EXPECT_TRUE(socket_data2.at_write_eof()); | 489 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
490 } | 490 } |
491 | 491 |
492 TEST_P(QuicStreamFactoryTest, Pooling) { | 492 TEST_P(QuicStreamFactoryTest, Pooling) { |
493 MockRead reads[] = { | 493 MockRead reads[] = { |
494 MockRead(ASYNC, OK, 0) // EOF | 494 MockRead(ASYNC, OK, 0) // EOF |
495 }; | 495 }; |
496 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 496 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
497 socket_factory_.AddSocketDataProvider(&socket_data); | 497 socket_factory_.AddSocketDataProvider(&socket_data); |
498 socket_data.StopAfter(1); | 498 socket_data.StopAfter(1); |
499 | 499 |
(...skipping 25 matching lines...) Expand all Loading... |
525 net_log_, | 525 net_log_, |
526 callback.callback())); | 526 callback.callback())); |
527 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 527 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
528 EXPECT_TRUE(stream2.get()); | 528 EXPECT_TRUE(stream2.get()); |
529 | 529 |
530 EXPECT_EQ( | 530 EXPECT_EQ( |
531 QuicStreamFactoryPeer::GetActiveSession( | 531 QuicStreamFactoryPeer::GetActiveSession( |
532 &factory_, host_port_pair_, is_https_), | 532 &factory_, host_port_pair_, is_https_), |
533 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); | 533 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); |
534 | 534 |
535 EXPECT_TRUE(socket_data.at_read_eof()); | 535 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
536 EXPECT_TRUE(socket_data.at_write_eof()); | 536 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
537 } | 537 } |
538 | 538 |
539 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { | 539 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
540 MockRead reads[] = { | 540 MockRead reads[] = { |
541 MockRead(ASYNC, OK, 0) // EOF | 541 MockRead(ASYNC, OK, 0) // EOF |
542 }; | 542 }; |
543 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 543 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
544 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 544 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
545 socket_factory_.AddSocketDataProvider(&socket_data1); | 545 socket_factory_.AddSocketDataProvider(&socket_data1); |
546 socket_factory_.AddSocketDataProvider(&socket_data2); | 546 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 net_log_, | 578 net_log_, |
579 callback.callback())); | 579 callback.callback())); |
580 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 580 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
581 EXPECT_TRUE(stream2.get()); | 581 EXPECT_TRUE(stream2.get()); |
582 | 582 |
583 EXPECT_NE( | 583 EXPECT_NE( |
584 QuicStreamFactoryPeer::GetActiveSession( | 584 QuicStreamFactoryPeer::GetActiveSession( |
585 &factory_, host_port_pair_, is_https_), | 585 &factory_, host_port_pair_, is_https_), |
586 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); | 586 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); |
587 | 587 |
588 EXPECT_TRUE(socket_data1.at_read_eof()); | 588 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
589 EXPECT_TRUE(socket_data1.at_write_eof()); | 589 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
590 EXPECT_TRUE(socket_data2.at_read_eof()); | 590 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
591 EXPECT_TRUE(socket_data2.at_write_eof()); | 591 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
592 } | 592 } |
593 | 593 |
594 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 594 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
595 MockRead reads[] = { | 595 MockRead reads[] = { |
596 MockRead(ASYNC, OK, 0) // EOF | 596 MockRead(ASYNC, OK, 0) // EOF |
597 }; | 597 }; |
598 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 598 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
599 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 599 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
600 socket_factory_.AddSocketDataProvider(&socket_data1); | 600 socket_factory_.AddSocketDataProvider(&socket_data1); |
601 socket_factory_.AddSocketDataProvider(&socket_data2); | 601 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 privacy_mode_, | 647 privacy_mode_, |
648 "GET", | 648 "GET", |
649 net_log_, | 649 net_log_, |
650 callback3.callback())); | 650 callback3.callback())); |
651 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 651 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); |
652 EXPECT_TRUE(stream3.get()); | 652 EXPECT_TRUE(stream3.get()); |
653 | 653 |
654 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession( | 654 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession( |
655 &factory_, server2, is_https_)); | 655 &factory_, server2, is_https_)); |
656 | 656 |
657 EXPECT_TRUE(socket_data1.at_read_eof()); | 657 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
658 EXPECT_TRUE(socket_data1.at_write_eof()); | 658 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
659 EXPECT_TRUE(socket_data2.at_read_eof()); | 659 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
660 EXPECT_TRUE(socket_data2.at_write_eof()); | 660 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
661 } | 661 } |
662 | 662 |
663 TEST_P(QuicStreamFactoryTest, HttpsPooling) { | 663 TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
664 MockRead reads[] = { | 664 MockRead reads[] = { |
665 MockRead(ASYNC, OK, 0) // EOF | 665 MockRead(ASYNC, OK, 0) // EOF |
666 }; | 666 }; |
667 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 667 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
668 socket_factory_.AddSocketDataProvider(&socket_data); | 668 socket_factory_.AddSocketDataProvider(&socket_data); |
669 socket_data.StopAfter(1); | 669 socket_data.StopAfter(1); |
670 | 670 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 net_log_, | 710 net_log_, |
711 callback_.callback())); | 711 callback_.callback())); |
712 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 712 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
713 EXPECT_TRUE(stream2.get()); | 713 EXPECT_TRUE(stream2.get()); |
714 | 714 |
715 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession( | 715 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession( |
716 &factory_, server1, is_https_), | 716 &factory_, server1, is_https_), |
717 QuicStreamFactoryPeer::GetActiveSession( | 717 QuicStreamFactoryPeer::GetActiveSession( |
718 &factory_, server2, is_https_)); | 718 &factory_, server2, is_https_)); |
719 | 719 |
720 EXPECT_TRUE(socket_data.at_read_eof()); | 720 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
721 EXPECT_TRUE(socket_data.at_write_eof()); | 721 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
722 } | 722 } |
723 | 723 |
724 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 724 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
725 MockRead reads[] = { | 725 MockRead reads[] = { |
726 MockRead(ASYNC, OK, 0) // EOF | 726 MockRead(ASYNC, OK, 0) // EOF |
727 }; | 727 }; |
728 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 728 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
729 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 729 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
730 socket_factory_.AddSocketDataProvider(&socket_data1); | 730 socket_factory_.AddSocketDataProvider(&socket_data1); |
731 socket_factory_.AddSocketDataProvider(&socket_data2); | 731 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 net_log_, | 777 net_log_, |
778 callback_.callback())); | 778 callback_.callback())); |
779 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 779 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
780 EXPECT_TRUE(stream2.get()); | 780 EXPECT_TRUE(stream2.get()); |
781 | 781 |
782 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( | 782 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( |
783 &factory_, server1, is_https_), | 783 &factory_, server1, is_https_), |
784 QuicStreamFactoryPeer::GetActiveSession( | 784 QuicStreamFactoryPeer::GetActiveSession( |
785 &factory_, server2, is_https_)); | 785 &factory_, server2, is_https_)); |
786 | 786 |
787 EXPECT_TRUE(socket_data1.at_read_eof()); | 787 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
788 EXPECT_TRUE(socket_data1.at_write_eof()); | 788 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
789 EXPECT_TRUE(socket_data2.at_read_eof()); | 789 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
790 EXPECT_TRUE(socket_data2.at_write_eof()); | 790 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
791 } | 791 } |
792 | 792 |
793 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) { | 793 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) { |
794 MockRead reads[] = { | 794 MockRead reads[] = { |
795 MockRead(ASYNC, OK, 0) // EOF | 795 MockRead(ASYNC, OK, 0) // EOF |
796 }; | 796 }; |
797 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 797 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
798 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 798 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
799 socket_factory_.AddSocketDataProvider(&socket_data1); | 799 socket_factory_.AddSocketDataProvider(&socket_data1); |
800 socket_factory_.AddSocketDataProvider(&socket_data2); | 800 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
843 net_log_, | 843 net_log_, |
844 callback_.callback())); | 844 callback_.callback())); |
845 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 845 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
846 EXPECT_TRUE(stream2.get()); | 846 EXPECT_TRUE(stream2.get()); |
847 | 847 |
848 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( | 848 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( |
849 &factory_, server1, is_https_), | 849 &factory_, server1, is_https_), |
850 QuicStreamFactoryPeer::GetActiveSession( | 850 QuicStreamFactoryPeer::GetActiveSession( |
851 &factory_, server2, is_https_)); | 851 &factory_, server2, is_https_)); |
852 | 852 |
853 EXPECT_TRUE(socket_data1.at_read_eof()); | 853 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
854 EXPECT_TRUE(socket_data1.at_write_eof()); | 854 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
855 EXPECT_TRUE(socket_data2.at_read_eof()); | 855 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
856 EXPECT_TRUE(socket_data2.at_write_eof()); | 856 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
857 } | 857 } |
858 | 858 |
859 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 859 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
860 MockRead reads[] = { | 860 MockRead reads[] = { |
861 MockRead(ASYNC, OK, 0) // EOF | 861 MockRead(ASYNC, OK, 0) // EOF |
862 }; | 862 }; |
863 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 863 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
864 socket_factory_.AddSocketDataProvider(&socket_data); | 864 socket_factory_.AddSocketDataProvider(&socket_data); |
865 socket_data.StopAfter(1); | 865 socket_data.StopAfter(1); |
866 | 866 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
911 net_log_, | 911 net_log_, |
912 callback_.callback())); | 912 callback_.callback())); |
913 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 913 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
914 EXPECT_TRUE(stream2.get()); | 914 EXPECT_TRUE(stream2.get()); |
915 | 915 |
916 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession( | 916 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession( |
917 &factory_, server1, is_https_), | 917 &factory_, server1, is_https_), |
918 QuicStreamFactoryPeer::GetActiveSession( | 918 QuicStreamFactoryPeer::GetActiveSession( |
919 &factory_, server2, is_https_)); | 919 &factory_, server2, is_https_)); |
920 | 920 |
921 EXPECT_TRUE(socket_data.at_read_eof()); | 921 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
922 EXPECT_TRUE(socket_data.at_write_eof()); | 922 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
923 } | 923 } |
924 | 924 |
925 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 925 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
926 MockRead reads[] = { | 926 MockRead reads[] = { |
927 MockRead(ASYNC, OK, 0) // EOF | 927 MockRead(ASYNC, OK, 0) // EOF |
928 }; | 928 }; |
929 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 929 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
930 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 930 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
931 socket_factory_.AddSocketDataProvider(&socket_data1); | 931 socket_factory_.AddSocketDataProvider(&socket_data1); |
932 socket_factory_.AddSocketDataProvider(&socket_data2); | 932 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 net_log_, | 983 net_log_, |
984 callback_.callback())); | 984 callback_.callback())); |
985 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 985 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
986 EXPECT_TRUE(stream2.get()); | 986 EXPECT_TRUE(stream2.get()); |
987 | 987 |
988 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( | 988 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( |
989 &factory_, server1, is_https_), | 989 &factory_, server1, is_https_), |
990 QuicStreamFactoryPeer::GetActiveSession( | 990 QuicStreamFactoryPeer::GetActiveSession( |
991 &factory_, server2, is_https_)); | 991 &factory_, server2, is_https_)); |
992 | 992 |
993 EXPECT_TRUE(socket_data1.at_read_eof()); | 993 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
994 EXPECT_TRUE(socket_data1.at_write_eof()); | 994 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
995 EXPECT_TRUE(socket_data2.at_read_eof()); | 995 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
996 EXPECT_TRUE(socket_data2.at_write_eof()); | 996 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
997 } | 997 } |
998 | 998 |
999 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 999 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
1000 MockRead reads[] = { | 1000 MockRead reads[] = { |
1001 MockRead(ASYNC, OK, 0) // EOF | 1001 MockRead(ASYNC, OK, 0) // EOF |
1002 }; | 1002 }; |
1003 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 1003 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
1004 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1004 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
1005 socket_factory_.AddSocketDataProvider(&socket_data1); | 1005 socket_factory_.AddSocketDataProvider(&socket_data1); |
1006 socket_factory_.AddSocketDataProvider(&socket_data2); | 1006 socket_factory_.AddSocketDataProvider(&socket_data2); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 net_log_, | 1063 net_log_, |
1064 callback_.callback())); | 1064 callback_.callback())); |
1065 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1065 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
1066 EXPECT_TRUE(stream2.get()); | 1066 EXPECT_TRUE(stream2.get()); |
1067 | 1067 |
1068 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( | 1068 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession( |
1069 &factory_, server1, is_https_), | 1069 &factory_, server1, is_https_), |
1070 QuicStreamFactoryPeer::GetActiveSession( | 1070 QuicStreamFactoryPeer::GetActiveSession( |
1071 &factory_, server2, is_https_)); | 1071 &factory_, server2, is_https_)); |
1072 | 1072 |
1073 EXPECT_TRUE(socket_data1.at_read_eof()); | 1073 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
1074 EXPECT_TRUE(socket_data1.at_write_eof()); | 1074 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
1075 EXPECT_TRUE(socket_data2.at_read_eof()); | 1075 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1076 EXPECT_TRUE(socket_data2.at_write_eof()); | 1076 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1077 } | 1077 } |
1078 | 1078 |
1079 TEST_P(QuicStreamFactoryTest, Goaway) { | 1079 TEST_P(QuicStreamFactoryTest, Goaway) { |
1080 MockRead reads[] = { | 1080 MockRead reads[] = { |
1081 MockRead(ASYNC, OK, 0) // EOF | 1081 MockRead(ASYNC, OK, 0) // EOF |
1082 }; | 1082 }; |
1083 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1083 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
1084 socket_data.StopAfter(1); | 1084 socket_data.StopAfter(1); |
1085 socket_factory_.AddSocketDataProvider(&socket_data); | 1085 socket_factory_.AddSocketDataProvider(&socket_data); |
1086 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1086 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1128 host_port_pair_, | 1128 host_port_pair_, |
1129 is_https_)); | 1129 is_https_)); |
1130 EXPECT_NE(session, | 1130 EXPECT_NE(session, |
1131 QuicStreamFactoryPeer::GetActiveSession( | 1131 QuicStreamFactoryPeer::GetActiveSession( |
1132 &factory_, host_port_pair_, is_https_)); | 1132 &factory_, host_port_pair_, is_https_)); |
1133 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session)); | 1133 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session)); |
1134 | 1134 |
1135 stream2.reset(); | 1135 stream2.reset(); |
1136 stream.reset(); | 1136 stream.reset(); |
1137 | 1137 |
1138 EXPECT_TRUE(socket_data.at_read_eof()); | 1138 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1139 EXPECT_TRUE(socket_data.at_write_eof()); | 1139 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1140 EXPECT_TRUE(socket_data2.at_read_eof()); | 1140 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1141 EXPECT_TRUE(socket_data2.at_write_eof()); | 1141 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1142 } | 1142 } |
1143 | 1143 |
1144 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { | 1144 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { |
1145 MockRead reads[] = { | 1145 MockRead reads[] = { |
1146 MockRead(ASYNC, OK, 0) // EOF | 1146 MockRead(ASYNC, OK, 0) // EOF |
1147 }; | 1147 }; |
1148 QuicStreamId stream_id = kClientDataStreamId1; | 1148 QuicStreamId stream_id = kClientDataStreamId1; |
1149 scoped_ptr<QuicEncryptedPacket> rst( | 1149 scoped_ptr<QuicEncryptedPacket> rst( |
1150 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); | 1150 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); |
1151 MockWrite writes[] = { | 1151 MockWrite writes[] = { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1194 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream( | 1194 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream( |
1195 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback())); | 1195 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback())); |
1196 | 1196 |
1197 // Close the first stream. | 1197 // Close the first stream. |
1198 streams.front()->Close(false); | 1198 streams.front()->Close(false); |
1199 | 1199 |
1200 ASSERT_TRUE(callback_.have_result()); | 1200 ASSERT_TRUE(callback_.have_result()); |
1201 | 1201 |
1202 EXPECT_EQ(OK, callback_.WaitForResult()); | 1202 EXPECT_EQ(OK, callback_.WaitForResult()); |
1203 | 1203 |
1204 EXPECT_TRUE(socket_data.at_read_eof()); | 1204 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1205 EXPECT_TRUE(socket_data.at_write_eof()); | 1205 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1206 STLDeleteElements(&streams); | 1206 STLDeleteElements(&streams); |
1207 } | 1207 } |
1208 | 1208 |
1209 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { | 1209 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { |
1210 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1210 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); |
1211 socket_factory_.AddSocketDataProvider(&socket_data); | 1211 socket_factory_.AddSocketDataProvider(&socket_data); |
1212 | 1212 |
1213 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); | 1213 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); |
1214 | 1214 |
1215 QuicStreamRequest request(&factory_); | 1215 QuicStreamRequest request(&factory_); |
1216 EXPECT_EQ(ERR_IO_PENDING, | 1216 EXPECT_EQ(ERR_IO_PENDING, |
1217 request.Request(host_port_pair_, | 1217 request.Request(host_port_pair_, |
1218 is_https_, | 1218 is_https_, |
1219 privacy_mode_, | 1219 privacy_mode_, |
1220 "GET", | 1220 "GET", |
1221 net_log_, | 1221 net_log_, |
1222 callback_.callback())); | 1222 callback_.callback())); |
1223 | 1223 |
1224 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); | 1224 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
1225 | 1225 |
1226 EXPECT_TRUE(socket_data.at_read_eof()); | 1226 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1227 EXPECT_TRUE(socket_data.at_write_eof()); | 1227 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1228 } | 1228 } |
1229 | 1229 |
1230 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { | 1230 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { |
1231 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); | 1231 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); |
1232 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1232 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); |
1233 socket_data.set_connect_data(connect); | 1233 socket_data.set_connect_data(connect); |
1234 socket_factory_.AddSocketDataProvider(&socket_data); | 1234 socket_factory_.AddSocketDataProvider(&socket_data); |
1235 socket_data.StopAfter(1); | 1235 socket_data.StopAfter(1); |
1236 | 1236 |
1237 QuicStreamRequest request(&factory_); | 1237 QuicStreamRequest request(&factory_); |
1238 EXPECT_EQ(ERR_IO_PENDING, | 1238 EXPECT_EQ(ERR_IO_PENDING, |
1239 request.Request(host_port_pair_, | 1239 request.Request(host_port_pair_, |
1240 is_https_, | 1240 is_https_, |
1241 privacy_mode_, | 1241 privacy_mode_, |
1242 "GET", | 1242 "GET", |
1243 net_log_, | 1243 net_log_, |
1244 callback_.callback())); | 1244 callback_.callback())); |
1245 | 1245 |
1246 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); | 1246 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); |
1247 | 1247 |
1248 EXPECT_TRUE(socket_data.at_read_eof()); | 1248 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1249 EXPECT_TRUE(socket_data.at_write_eof()); | 1249 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1250 } | 1250 } |
1251 | 1251 |
1252 TEST_P(QuicStreamFactoryTest, CancelCreate) { | 1252 TEST_P(QuicStreamFactoryTest, CancelCreate) { |
1253 MockRead reads[] = { | 1253 MockRead reads[] = { |
1254 MockRead(ASYNC, OK, 0) // EOF | 1254 MockRead(ASYNC, OK, 0) // EOF |
1255 }; | 1255 }; |
1256 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1256 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
1257 socket_factory_.AddSocketDataProvider(&socket_data); | 1257 socket_factory_.AddSocketDataProvider(&socket_data); |
1258 { | 1258 { |
1259 QuicStreamRequest request(&factory_); | 1259 QuicStreamRequest request(&factory_); |
1260 EXPECT_EQ(ERR_IO_PENDING, | 1260 EXPECT_EQ(ERR_IO_PENDING, |
1261 request.Request(host_port_pair_, | 1261 request.Request(host_port_pair_, |
1262 is_https_, | 1262 is_https_, |
1263 privacy_mode_, | 1263 privacy_mode_, |
1264 "GET", | 1264 "GET", |
1265 net_log_, | 1265 net_log_, |
1266 callback_.callback())); | 1266 callback_.callback())); |
1267 } | 1267 } |
1268 | 1268 |
1269 socket_data.StopAfter(1); | 1269 socket_data.StopAfter(1); |
1270 base::RunLoop run_loop; | 1270 base::RunLoop run_loop; |
1271 run_loop.RunUntilIdle(); | 1271 run_loop.RunUntilIdle(); |
1272 | 1272 |
1273 scoped_ptr<QuicHttpStream> stream( | 1273 scoped_ptr<QuicHttpStream> stream( |
1274 CreateIfSessionExists(host_port_pair_, net_log_)); | 1274 CreateIfSessionExists(host_port_pair_, net_log_)); |
1275 EXPECT_TRUE(stream.get()); | 1275 EXPECT_TRUE(stream.get()); |
1276 stream.reset(); | 1276 stream.reset(); |
1277 | 1277 |
1278 EXPECT_TRUE(socket_data.at_read_eof()); | 1278 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1279 EXPECT_TRUE(socket_data.at_write_eof()); | 1279 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1280 } | 1280 } |
1281 | 1281 |
1282 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { | 1282 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { |
1283 // Sequentially connect to the default host, then another host, and then the | 1283 // Sequentially connect to the default host, then another host, and then the |
1284 // default host. Verify that the default host gets a consistent ephemeral | 1284 // default host. Verify that the default host gets a consistent ephemeral |
1285 // port, that is different from the other host's connection. | 1285 // port, that is different from the other host's connection. |
1286 | 1286 |
1287 std::string other_server_name = "other.google.com"; | 1287 std::string other_server_name = "other.google.com"; |
1288 EXPECT_NE(kDefaultServerHostName, other_server_name); | 1288 EXPECT_NE(kDefaultServerHostName, other_server_name); |
1289 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort); | 1289 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1353 is_https_, | 1353 is_https_, |
1354 privacy_mode_, | 1354 privacy_mode_, |
1355 "GET", | 1355 "GET", |
1356 net_log_, | 1356 net_log_, |
1357 callback_.callback())); | 1357 callback_.callback())); |
1358 | 1358 |
1359 EXPECT_EQ(OK, callback_.WaitForResult()); | 1359 EXPECT_EQ(OK, callback_.WaitForResult()); |
1360 stream = request2.ReleaseStream(); | 1360 stream = request2.ReleaseStream(); |
1361 stream.reset(); // Will reset stream 3. | 1361 stream.reset(); // Will reset stream 3. |
1362 | 1362 |
1363 EXPECT_TRUE(socket_data.at_read_eof()); | 1363 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1364 EXPECT_TRUE(socket_data.at_write_eof()); | 1364 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1365 EXPECT_TRUE(socket_data2.at_read_eof()); | 1365 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1366 EXPECT_TRUE(socket_data2.at_write_eof()); | 1366 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1367 } | 1367 } |
1368 | 1368 |
1369 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1369 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
1370 MockRead reads[] = { | 1370 MockRead reads[] = { |
1371 MockRead(ASYNC, 0, 0) // EOF | 1371 MockRead(ASYNC, 0, 0) // EOF |
1372 }; | 1372 }; |
1373 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1373 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1374 std::vector<MockWrite> writes; | 1374 std::vector<MockWrite> writes; |
1375 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1375 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1376 DeterministicSocketData socket_data(reads, arraysize(reads), | 1376 DeterministicSocketData socket_data(reads, arraysize(reads), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1417 is_https_, | 1417 is_https_, |
1418 privacy_mode_, | 1418 privacy_mode_, |
1419 "GET", | 1419 "GET", |
1420 net_log_, | 1420 net_log_, |
1421 callback_.callback())); | 1421 callback_.callback())); |
1422 | 1422 |
1423 EXPECT_EQ(OK, callback_.WaitForResult()); | 1423 EXPECT_EQ(OK, callback_.WaitForResult()); |
1424 stream = request2.ReleaseStream(); | 1424 stream = request2.ReleaseStream(); |
1425 stream.reset(); // Will reset stream 3. | 1425 stream.reset(); // Will reset stream 3. |
1426 | 1426 |
1427 EXPECT_TRUE(socket_data.at_read_eof()); | 1427 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1428 EXPECT_TRUE(socket_data.at_write_eof()); | 1428 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1429 EXPECT_TRUE(socket_data2.at_read_eof()); | 1429 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1430 EXPECT_TRUE(socket_data2.at_write_eof()); | 1430 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1431 } | 1431 } |
1432 | 1432 |
1433 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 1433 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
1434 MockRead reads[] = { | 1434 MockRead reads[] = { |
1435 MockRead(ASYNC, 0, 0) // EOF | 1435 MockRead(ASYNC, 0, 0) // EOF |
1436 }; | 1436 }; |
1437 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1437 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1438 std::vector<MockWrite> writes; | 1438 std::vector<MockWrite> writes; |
1439 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1439 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1440 DeterministicSocketData socket_data(reads, arraysize(reads), | 1440 DeterministicSocketData socket_data(reads, arraysize(reads), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1481 is_https_, | 1481 is_https_, |
1482 privacy_mode_, | 1482 privacy_mode_, |
1483 "GET", | 1483 "GET", |
1484 net_log_, | 1484 net_log_, |
1485 callback_.callback())); | 1485 callback_.callback())); |
1486 | 1486 |
1487 EXPECT_EQ(OK, callback_.WaitForResult()); | 1487 EXPECT_EQ(OK, callback_.WaitForResult()); |
1488 stream = request2.ReleaseStream(); | 1488 stream = request2.ReleaseStream(); |
1489 stream.reset(); // Will reset stream 3. | 1489 stream.reset(); // Will reset stream 3. |
1490 | 1490 |
1491 EXPECT_TRUE(socket_data.at_read_eof()); | 1491 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1492 EXPECT_TRUE(socket_data.at_write_eof()); | 1492 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1493 EXPECT_TRUE(socket_data2.at_read_eof()); | 1493 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1494 EXPECT_TRUE(socket_data2.at_write_eof()); | 1494 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1495 } | 1495 } |
1496 | 1496 |
1497 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 1497 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
1498 MockRead reads[] = { | 1498 MockRead reads[] = { |
1499 MockRead(ASYNC, 0, 0) // EOF | 1499 MockRead(ASYNC, 0, 0) // EOF |
1500 }; | 1500 }; |
1501 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1501 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1502 std::vector<MockWrite> writes; | 1502 std::vector<MockWrite> writes; |
1503 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1503 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1504 DeterministicSocketData socket_data(reads, arraysize(reads), | 1504 DeterministicSocketData socket_data(reads, arraysize(reads), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1545 is_https_, | 1545 is_https_, |
1546 privacy_mode_, | 1546 privacy_mode_, |
1547 "GET", | 1547 "GET", |
1548 net_log_, | 1548 net_log_, |
1549 callback_.callback())); | 1549 callback_.callback())); |
1550 | 1550 |
1551 EXPECT_EQ(OK, callback_.WaitForResult()); | 1551 EXPECT_EQ(OK, callback_.WaitForResult()); |
1552 stream = request2.ReleaseStream(); | 1552 stream = request2.ReleaseStream(); |
1553 stream.reset(); // Will reset stream 3. | 1553 stream.reset(); // Will reset stream 3. |
1554 | 1554 |
1555 EXPECT_TRUE(socket_data.at_read_eof()); | 1555 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1556 EXPECT_TRUE(socket_data.at_write_eof()); | 1556 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1557 EXPECT_TRUE(socket_data2.at_read_eof()); | 1557 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1558 EXPECT_TRUE(socket_data2.at_write_eof()); | 1558 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1559 } | 1559 } |
1560 | 1560 |
1561 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { | 1561 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { |
1562 vector<string> cannoncial_suffixes; | 1562 vector<string> cannoncial_suffixes; |
1563 cannoncial_suffixes.push_back(string(".c.youtube.com")); | 1563 cannoncial_suffixes.push_back(string(".c.youtube.com")); |
1564 cannoncial_suffixes.push_back(string(".googlevideo.com")); | 1564 cannoncial_suffixes.push_back(string(".googlevideo.com")); |
1565 | 1565 |
1566 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) { | 1566 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) { |
1567 string r1_host_name("r1"); | 1567 string r1_host_name("r1"); |
1568 string r2_host_name("r2"); | 1568 string r2_host_name("r2"); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1657 EXPECT_EQ(ERR_IO_PENDING, | 1657 EXPECT_EQ(ERR_IO_PENDING, |
1658 request.Request(host_port_pair_, is_https_, privacy_mode_, "GET", | 1658 request.Request(host_port_pair_, is_https_, privacy_mode_, "GET", |
1659 net_log_, callback_.callback())); | 1659 net_log_, callback_.callback())); |
1660 EXPECT_EQ(2u, | 1660 EXPECT_EQ(2u, |
1661 QuicStreamFactoryPeer::GetNumberOfActiveJobs(&factory_, server_id)); | 1661 QuicStreamFactoryPeer::GetNumberOfActiveJobs(&factory_, server_id)); |
1662 | 1662 |
1663 runner_->RunNextTask(); | 1663 runner_->RunNextTask(); |
1664 | 1664 |
1665 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1665 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
1666 EXPECT_TRUE(stream.get()); | 1666 EXPECT_TRUE(stream.get()); |
1667 EXPECT_TRUE(socket_data.at_read_eof()); | 1667 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1668 EXPECT_TRUE(socket_data.at_write_eof()); | 1668 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1669 EXPECT_EQ(0u, | 1669 EXPECT_EQ(0u, |
1670 QuicStreamFactoryPeer::GetNumberOfActiveJobs(&factory_, server_id)); | 1670 QuicStreamFactoryPeer::GetNumberOfActiveJobs(&factory_, server_id)); |
1671 } | 1671 } |
1672 | 1672 |
1673 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { | 1673 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
1674 factory_.set_quic_server_info_factory(&quic_server_info_factory_); | 1674 factory_.set_quic_server_info_factory(&quic_server_info_factory_); |
1675 QuicStreamFactoryPeer::SetTaskRunner(&factory_, runner_.get()); | 1675 QuicStreamFactoryPeer::SetTaskRunner(&factory_, runner_.get()); |
1676 QuicStreamFactoryPeer::SetDisableDiskCache(&factory_, true); | 1676 QuicStreamFactoryPeer::SetDisableDiskCache(&factory_, true); |
1677 | 1677 |
1678 MockRead reads[] = { | 1678 MockRead reads[] = { |
(...skipping 12 matching lines...) Expand all Loading... |
1691 QuicStreamRequest request(&factory_); | 1691 QuicStreamRequest request(&factory_); |
1692 EXPECT_EQ(OK, request.Request(host_port_pair_, is_https_, privacy_mode_, | 1692 EXPECT_EQ(OK, request.Request(host_port_pair_, is_https_, privacy_mode_, |
1693 "GET", net_log_, callback_.callback())); | 1693 "GET", net_log_, callback_.callback())); |
1694 | 1694 |
1695 // If we are waiting for disk cache, we would have posted a task. Verify that | 1695 // If we are waiting for disk cache, we would have posted a task. Verify that |
1696 // the CancelWaitForDataReady task hasn't been posted. | 1696 // the CancelWaitForDataReady task hasn't been posted. |
1697 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); | 1697 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); |
1698 | 1698 |
1699 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1699 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
1700 EXPECT_TRUE(stream.get()); | 1700 EXPECT_TRUE(stream.get()); |
1701 EXPECT_TRUE(socket_data.at_read_eof()); | 1701 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1702 EXPECT_TRUE(socket_data.at_write_eof()); | 1702 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1703 } | 1703 } |
1704 | 1704 |
1705 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { | 1705 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
1706 factory_.set_quic_server_info_factory(&quic_server_info_factory_); | 1706 factory_.set_quic_server_info_factory(&quic_server_info_factory_); |
1707 QuicStreamFactoryPeer::SetTaskRunner(&factory_, runner_.get()); | 1707 QuicStreamFactoryPeer::SetTaskRunner(&factory_, runner_.get()); |
1708 QuicStreamFactoryPeer::SetDisableDiskCache(&factory_, true); | 1708 QuicStreamFactoryPeer::SetDisableDiskCache(&factory_, true); |
1709 QuicStreamFactoryPeer::SetMaxNumberOfLossyConnections(&factory_, 2); | 1709 QuicStreamFactoryPeer::SetMaxNumberOfLossyConnections(&factory_, 2); |
1710 EXPECT_FALSE( | 1710 EXPECT_FALSE( |
1711 QuicStreamFactoryPeer::IsQuicDisabled(&factory_, host_port_pair_.port())); | 1711 QuicStreamFactoryPeer::IsQuicDisabled(&factory_, host_port_pair_.port())); |
1712 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1712 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1825 EXPECT_FALSE( | 1825 EXPECT_FALSE( |
1826 QuicStreamFactoryPeer::HasActiveSession(&factory_, server3, is_https_)); | 1826 QuicStreamFactoryPeer::HasActiveSession(&factory_, server3, is_https_)); |
1827 EXPECT_EQ(nullptr, CreateIfSessionExists(server3, net_log_).get()); | 1827 EXPECT_EQ(nullptr, CreateIfSessionExists(server3, net_log_).get()); |
1828 | 1828 |
1829 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1829 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
1830 EXPECT_TRUE(stream.get()); | 1830 EXPECT_TRUE(stream.get()); |
1831 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1831 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
1832 EXPECT_TRUE(stream2.get()); | 1832 EXPECT_TRUE(stream2.get()); |
1833 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 1833 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); |
1834 EXPECT_TRUE(stream3.get()); | 1834 EXPECT_TRUE(stream3.get()); |
1835 EXPECT_TRUE(socket_data.at_read_eof()); | 1835 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1836 EXPECT_TRUE(socket_data.at_write_eof()); | 1836 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1837 EXPECT_TRUE(socket_data2.at_read_eof()); | 1837 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1838 EXPECT_TRUE(socket_data2.at_write_eof()); | 1838 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1839 EXPECT_TRUE(socket_data3.at_read_eof()); | 1839 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
1840 EXPECT_TRUE(socket_data3.at_write_eof()); | 1840 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
1841 } | 1841 } |
1842 | 1842 |
1843 } // namespace test | 1843 } // namespace test |
1844 } // namespace net | 1844 } // namespace net |
OLD | NEW |