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

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

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/bidirectional_stream_quic_impl.h" 5 #include "net/quic/bidirectional_stream_quic_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 18 matching lines...) Expand all
29 #include "net/quic/spdy_utils.h" 29 #include "net/quic/spdy_utils.h"
30 #include "net/quic/test_tools/crypto_test_utils.h" 30 #include "net/quic/test_tools/crypto_test_utils.h"
31 #include "net/quic/test_tools/mock_clock.h" 31 #include "net/quic/test_tools/mock_clock.h"
32 #include "net/quic/test_tools/mock_crypto_client_stream_factory.h" 32 #include "net/quic/test_tools/mock_crypto_client_stream_factory.h"
33 #include "net/quic/test_tools/mock_random.h" 33 #include "net/quic/test_tools/mock_random.h"
34 #include "net/quic/test_tools/quic_connection_peer.h" 34 #include "net/quic/test_tools/quic_connection_peer.h"
35 #include "net/quic/test_tools/quic_test_packet_maker.h" 35 #include "net/quic/test_tools/quic_test_packet_maker.h"
36 #include "net/quic/test_tools/quic_test_utils.h" 36 #include "net/quic/test_tools/quic_test_utils.h"
37 #include "net/quic/test_tools/test_task_runner.h" 37 #include "net/quic/test_tools/test_task_runner.h"
38 #include "net/socket/socket_test_util.h" 38 #include "net/socket/socket_test_util.h"
39 #include "net/test/gtest_util.h"
39 #include "testing/gmock/include/gmock/gmock.h" 40 #include "testing/gmock/include/gmock/gmock.h"
40 #include "testing/gtest/include/gtest/gtest.h" 41 #include "testing/gtest/include/gtest/gtest.h"
41 42
43 using net::test::IsError;
44 using net::test::IsOk;
45
42 namespace net { 46 namespace net {
43 47
44 namespace test { 48 namespace test {
45 49
46 namespace { 50 namespace {
47 51
48 const char kUploadData[] = "Really nifty data!"; 52 const char kUploadData[] = "Really nifty data!";
49 const char kDefaultServerHostName[] = "www.google.com"; 53 const char kDefaultServerHostName[] = "www.google.com";
50 const uint16_t kDefaultServerPort = 80; 54 const uint16_t kDefaultServerPort = 80;
51 // Size of the buffer to be allocated for each read. 55 // Size of the buffer to be allocated for each read.
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 638
635 size_t spdy_response_headers_frame_length; 639 size_t spdy_response_headers_frame_length;
636 QuicStreamOffset offset = 0; 640 QuicStreamOffset offset = 0;
637 ProcessPacket(ConstructResponseHeadersPacket( 641 ProcessPacket(ConstructResponseHeadersPacket(
638 2, !kFin, std::move(response_headers), 642 2, !kFin, std::move(response_headers),
639 &spdy_response_headers_frame_length, &offset)); 643 &spdy_response_headers_frame_length, &offset));
640 644
641 delegate->WaitUntilNextCallback(); // OnHeadersReceived 645 delegate->WaitUntilNextCallback(); // OnHeadersReceived
642 TestCompletionCallback cb; 646 TestCompletionCallback cb;
643 int rv = delegate->ReadData(cb.callback()); 647 int rv = delegate->ReadData(cb.callback());
644 EXPECT_EQ(ERR_IO_PENDING, rv); 648 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
645 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 649 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
646 const char kResponseBody[] = "Hello world!"; 650 const char kResponseBody[] = "Hello world!";
647 // Server sends data. 651 // Server sends data.
648 ProcessPacket( 652 ProcessPacket(
649 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 653 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
650 EXPECT_EQ(12, cb.WaitForResult()); 654 EXPECT_EQ(12, cb.WaitForResult());
651 655
652 EXPECT_EQ(std::string(kResponseBody), delegate->data_received()); 656 EXPECT_EQ(std::string(kResponseBody), delegate->data_received());
653 TestCompletionCallback cb2; 657 TestCompletionCallback cb2;
654 EXPECT_EQ(ERR_IO_PENDING, delegate->ReadData(cb2.callback())); 658 EXPECT_THAT(delegate->ReadData(cb2.callback()), IsError(ERR_IO_PENDING));
655 659
656 SpdyHeaderBlock trailers; 660 SpdyHeaderBlock trailers;
657 size_t spdy_trailers_frame_length; 661 size_t spdy_trailers_frame_length;
658 trailers["foo"] = "bar"; 662 trailers["foo"] = "bar";
659 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 663 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
660 // Server sends trailers. 664 // Server sends trailers.
661 ProcessPacket(ConstructResponseTrailersPacket( 665 ProcessPacket(ConstructResponseTrailersPacket(
662 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 666 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
663 667
664 delegate->WaitUntilNextCallback(); // OnTrailersReceived 668 delegate->WaitUntilNextCallback(); // OnTrailersReceived
665 EXPECT_EQ(OK, cb2.WaitForResult()); 669 EXPECT_THAT(cb2.WaitForResult(), IsOk());
666 trailers.erase(kFinalOffsetHeaderKey); 670 trailers.erase(kFinalOffsetHeaderKey);
667 EXPECT_EQ(trailers, delegate->trailers()); 671 EXPECT_EQ(trailers, delegate->trailers());
668 672
669 EXPECT_EQ(OK, delegate->ReadData(cb2.callback())); 673 EXPECT_THAT(delegate->ReadData(cb2.callback()), IsOk());
670 base::RunLoop().RunUntilIdle(); 674 base::RunLoop().RunUntilIdle();
671 675
672 EXPECT_EQ(2, delegate->on_data_read_count()); 676 EXPECT_EQ(2, delegate->on_data_read_count());
673 EXPECT_EQ(0, delegate->on_data_sent_count()); 677 EXPECT_EQ(0, delegate->on_data_sent_count());
674 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 678 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
675 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 679 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
676 delegate->GetTotalSentBytes()); 680 delegate->GetTotalSentBytes());
677 EXPECT_EQ( 681 EXPECT_EQ(
678 static_cast<int64_t>(spdy_response_headers_frame_length + 682 static_cast<int64_t>(spdy_response_headers_frame_length +
679 strlen(kResponseBody) + spdy_trailers_frame_length), 683 strlen(kResponseBody) + spdy_trailers_frame_length),
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 756 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
753 size_t spdy_response_headers_frame_length; 757 size_t spdy_response_headers_frame_length;
754 QuicStreamOffset offset = 0; 758 QuicStreamOffset offset = 0;
755 ProcessPacket(ConstructResponseHeadersPacket( 759 ProcessPacket(ConstructResponseHeadersPacket(
756 2, !kFin, std::move(response_headers), 760 2, !kFin, std::move(response_headers),
757 &spdy_response_headers_frame_length, &offset)); 761 &spdy_response_headers_frame_length, &offset));
758 762
759 delegate->WaitUntilNextCallback(); // OnHeadersReceived 763 delegate->WaitUntilNextCallback(); // OnHeadersReceived
760 TestCompletionCallback cb; 764 TestCompletionCallback cb;
761 int rv = delegate->ReadData(cb.callback()); 765 int rv = delegate->ReadData(cb.callback());
762 EXPECT_EQ(ERR_IO_PENDING, rv); 766 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
763 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 767 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
764 const char kResponseBody[] = "Hello world!"; 768 const char kResponseBody[] = "Hello world!";
765 // Server sends data. 769 // Server sends data.
766 ProcessPacket( 770 ProcessPacket(
767 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 771 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
768 772
769 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult()); 773 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
770 774
771 // Send a second Data packet. 775 // Send a second Data packet.
772 scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3)); 776 scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3));
773 scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4)); 777 scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4));
774 scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5)); 778 scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5));
775 779
776 delegate->SendvData({buf3, buf4, buf5}, 780 delegate->SendvData({buf3, buf4, buf5},
777 {buf3->size(), buf4->size(), buf5->size()}, kFin); 781 {buf3->size(), buf4->size(), buf5->size()}, kFin);
778 delegate->WaitUntilNextCallback(); // OnDataSent 782 delegate->WaitUntilNextCallback(); // OnDataSent
779 783
780 size_t spdy_trailers_frame_length; 784 size_t spdy_trailers_frame_length;
781 SpdyHeaderBlock trailers; 785 SpdyHeaderBlock trailers;
782 trailers["foo"] = "bar"; 786 trailers["foo"] = "bar";
783 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 787 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
784 // Server sends trailers. 788 // Server sends trailers.
785 ProcessPacket(ConstructResponseTrailersPacket( 789 ProcessPacket(ConstructResponseTrailersPacket(
786 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 790 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
787 791
788 delegate->WaitUntilNextCallback(); // OnTrailersReceived 792 delegate->WaitUntilNextCallback(); // OnTrailersReceived
789 trailers.erase(kFinalOffsetHeaderKey); 793 trailers.erase(kFinalOffsetHeaderKey);
790 EXPECT_EQ(trailers, delegate->trailers()); 794 EXPECT_EQ(trailers, delegate->trailers());
791 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 795 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
792 796
793 EXPECT_EQ(1, delegate->on_data_read_count()); 797 EXPECT_EQ(1, delegate->on_data_read_count());
794 EXPECT_EQ(2, delegate->on_data_sent_count()); 798 EXPECT_EQ(2, delegate->on_data_sent_count());
795 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 799 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
796 EXPECT_EQ( 800 EXPECT_EQ(
797 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) + 801 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) +
798 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) + 802 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) +
799 strlen(kBody5)), 803 strlen(kBody5)),
800 delegate->GetTotalSentBytes()); 804 delegate->GetTotalSentBytes());
801 EXPECT_EQ( 805 EXPECT_EQ(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 855 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
852 size_t spdy_response_headers_frame_length; 856 size_t spdy_response_headers_frame_length;
853 QuicStreamOffset offset = 0; 857 QuicStreamOffset offset = 0;
854 ProcessPacket(ConstructResponseHeadersPacket( 858 ProcessPacket(ConstructResponseHeadersPacket(
855 2, !kFin, std::move(response_headers), 859 2, !kFin, std::move(response_headers),
856 &spdy_response_headers_frame_length, &offset)); 860 &spdy_response_headers_frame_length, &offset));
857 861
858 delegate->WaitUntilNextCallback(); // OnHeadersReceived 862 delegate->WaitUntilNextCallback(); // OnHeadersReceived
859 TestCompletionCallback cb; 863 TestCompletionCallback cb;
860 int rv = delegate->ReadData(cb.callback()); 864 int rv = delegate->ReadData(cb.callback());
861 EXPECT_EQ(ERR_IO_PENDING, rv); 865 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
862 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 866 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
863 const char kResponseBody[] = "Hello world!"; 867 const char kResponseBody[] = "Hello world!";
864 // Server sends data. 868 // Server sends data.
865 ProcessPacket( 869 ProcessPacket(
866 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 870 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
867 871
868 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult()); 872 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
869 873
870 // Send a second Data packet. 874 // Send a second Data packet.
871 scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2)); 875 scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
872 876
873 delegate->SendData(buf2, buf2->size(), true); 877 delegate->SendData(buf2, buf2->size(), true);
874 delegate->WaitUntilNextCallback(); // OnDataSent 878 delegate->WaitUntilNextCallback(); // OnDataSent
875 879
876 size_t spdy_trailers_frame_length; 880 size_t spdy_trailers_frame_length;
877 SpdyHeaderBlock trailers; 881 SpdyHeaderBlock trailers;
878 trailers["foo"] = "bar"; 882 trailers["foo"] = "bar";
879 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 883 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
880 // Server sends trailers. 884 // Server sends trailers.
881 ProcessPacket(ConstructResponseTrailersPacket( 885 ProcessPacket(ConstructResponseTrailersPacket(
882 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 886 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
883 887
884 delegate->WaitUntilNextCallback(); // OnTrailersReceived 888 delegate->WaitUntilNextCallback(); // OnTrailersReceived
885 trailers.erase(kFinalOffsetHeaderKey); 889 trailers.erase(kFinalOffsetHeaderKey);
886 EXPECT_EQ(trailers, delegate->trailers()); 890 EXPECT_EQ(trailers, delegate->trailers());
887 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 891 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
888 892
889 EXPECT_EQ(1, delegate->on_data_read_count()); 893 EXPECT_EQ(1, delegate->on_data_read_count());
890 EXPECT_EQ(2, delegate->on_data_sent_count()); 894 EXPECT_EQ(2, delegate->on_data_sent_count());
891 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 895 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
892 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 896 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
893 strlen(kBody1) + strlen(kBody2)), 897 strlen(kBody1) + strlen(kBody2)),
894 delegate->GetTotalSentBytes()); 898 delegate->GetTotalSentBytes());
895 EXPECT_EQ( 899 EXPECT_EQ(
896 static_cast<int64_t>(spdy_response_headers_frame_length + 900 static_cast<int64_t>(spdy_response_headers_frame_length +
897 strlen(kResponseBody) + spdy_trailers_frame_length), 901 strlen(kResponseBody) + spdy_trailers_frame_length),
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 955 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
952 size_t spdy_response_headers_frame_length; 956 size_t spdy_response_headers_frame_length;
953 QuicStreamOffset offset = 0; 957 QuicStreamOffset offset = 0;
954 ProcessPacket(ConstructResponseHeadersPacket( 958 ProcessPacket(ConstructResponseHeadersPacket(
955 2, !kFin, std::move(response_headers), 959 2, !kFin, std::move(response_headers),
956 &spdy_response_headers_frame_length, &offset)); 960 &spdy_response_headers_frame_length, &offset));
957 961
958 delegate->WaitUntilNextCallback(); // OnHeadersReceived 962 delegate->WaitUntilNextCallback(); // OnHeadersReceived
959 TestCompletionCallback cb; 963 TestCompletionCallback cb;
960 int rv = delegate->ReadData(cb.callback()); 964 int rv = delegate->ReadData(cb.callback());
961 EXPECT_EQ(ERR_IO_PENDING, rv); 965 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
962 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 966 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
963 const char kResponseBody[] = "Hello world!"; 967 const char kResponseBody[] = "Hello world!";
964 // Server sends data. 968 // Server sends data.
965 ProcessPacket( 969 ProcessPacket(
966 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 970 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
967 971
968 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult()); 972 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
969 973
970 // Send a second Data packet. 974 // Send a second Data packet.
971 scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3)); 975 scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3));
972 scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4)); 976 scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4));
973 scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5)); 977 scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5));
974 978
975 delegate->SendvData({buf3, buf4, buf5}, 979 delegate->SendvData({buf3, buf4, buf5},
976 {buf3->size(), buf4->size(), buf5->size()}, kFin); 980 {buf3->size(), buf4->size(), buf5->size()}, kFin);
977 delegate->WaitUntilNextCallback(); // OnDataSent 981 delegate->WaitUntilNextCallback(); // OnDataSent
978 982
979 size_t spdy_trailers_frame_length; 983 size_t spdy_trailers_frame_length;
980 SpdyHeaderBlock trailers; 984 SpdyHeaderBlock trailers;
981 trailers["foo"] = "bar"; 985 trailers["foo"] = "bar";
982 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 986 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
983 // Server sends trailers. 987 // Server sends trailers.
984 ProcessPacket(ConstructResponseTrailersPacket( 988 ProcessPacket(ConstructResponseTrailersPacket(
985 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 989 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
986 990
987 delegate->WaitUntilNextCallback(); // OnTrailersReceived 991 delegate->WaitUntilNextCallback(); // OnTrailersReceived
988 trailers.erase(kFinalOffsetHeaderKey); 992 trailers.erase(kFinalOffsetHeaderKey);
989 EXPECT_EQ(trailers, delegate->trailers()); 993 EXPECT_EQ(trailers, delegate->trailers());
990 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 994 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
991 995
992 EXPECT_EQ(1, delegate->on_data_read_count()); 996 EXPECT_EQ(1, delegate->on_data_read_count());
993 EXPECT_EQ(2, delegate->on_data_sent_count()); 997 EXPECT_EQ(2, delegate->on_data_sent_count());
994 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 998 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
995 EXPECT_EQ( 999 EXPECT_EQ(
996 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) + 1000 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) +
997 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) + 1001 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) +
998 strlen(kBody5)), 1002 strlen(kBody5)),
999 delegate->GetTotalSentBytes()); 1003 delegate->GetTotalSentBytes());
1000 EXPECT_EQ( 1004 EXPECT_EQ(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1044 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1041 size_t spdy_response_headers_frame_length; 1045 size_t spdy_response_headers_frame_length;
1042 QuicStreamOffset offset = 0; 1046 QuicStreamOffset offset = 0;
1043 ProcessPacket(ConstructResponseHeadersPacket( 1047 ProcessPacket(ConstructResponseHeadersPacket(
1044 2, !kFin, std::move(response_headers), 1048 2, !kFin, std::move(response_headers),
1045 &spdy_response_headers_frame_length, &offset)); 1049 &spdy_response_headers_frame_length, &offset));
1046 1050
1047 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1051 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1048 TestCompletionCallback cb; 1052 TestCompletionCallback cb;
1049 int rv = delegate->ReadData(cb.callback()); 1053 int rv = delegate->ReadData(cb.callback());
1050 EXPECT_EQ(ERR_IO_PENDING, rv); 1054 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1051 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1055 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1052 const char kResponseBody[] = "Hello world!"; 1056 const char kResponseBody[] = "Hello world!";
1053 // Server sends data. 1057 // Server sends data.
1054 ProcessPacket( 1058 ProcessPacket(
1055 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1059 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
1056 1060
1057 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult()); 1061 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
1058 1062
1059 size_t spdy_trailers_frame_length; 1063 size_t spdy_trailers_frame_length;
1060 SpdyHeaderBlock trailers; 1064 SpdyHeaderBlock trailers;
1061 trailers["foo"] = "bar"; 1065 trailers["foo"] = "bar";
1062 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 1066 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
1063 // Server sends trailers. 1067 // Server sends trailers.
1064 ProcessPacket(ConstructResponseTrailersPacket( 1068 ProcessPacket(ConstructResponseTrailersPacket(
1065 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1069 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1066 1070
1067 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1071 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1068 trailers.erase(kFinalOffsetHeaderKey); 1072 trailers.erase(kFinalOffsetHeaderKey);
1069 EXPECT_EQ(trailers, delegate->trailers()); 1073 EXPECT_EQ(trailers, delegate->trailers());
1070 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 1074 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1071 1075
1072 EXPECT_EQ(1, delegate->on_data_read_count()); 1076 EXPECT_EQ(1, delegate->on_data_read_count());
1073 EXPECT_EQ(1, delegate->on_data_sent_count()); 1077 EXPECT_EQ(1, delegate->on_data_sent_count());
1074 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1078 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
1075 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1079 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1076 strlen(kUploadData)), 1080 strlen(kUploadData)),
1077 delegate->GetTotalSentBytes()); 1081 delegate->GetTotalSentBytes());
1078 EXPECT_EQ( 1082 EXPECT_EQ(
1079 static_cast<int64_t>(spdy_response_headers_frame_length + 1083 static_cast<int64_t>(spdy_response_headers_frame_length +
1080 strlen(kResponseBody) + spdy_trailers_frame_length), 1084 strlen(kResponseBody) + spdy_trailers_frame_length),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1117 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1121 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1118 size_t spdy_response_headers_frame_length; 1122 size_t spdy_response_headers_frame_length;
1119 QuicStreamOffset offset = 0; 1123 QuicStreamOffset offset = 0;
1120 ProcessPacket(ConstructResponseHeadersPacket( 1124 ProcessPacket(ConstructResponseHeadersPacket(
1121 2, !kFin, std::move(response_headers), 1125 2, !kFin, std::move(response_headers),
1122 &spdy_response_headers_frame_length, &offset)); 1126 &spdy_response_headers_frame_length, &offset));
1123 1127
1124 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1128 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1125 TestCompletionCallback cb; 1129 TestCompletionCallback cb;
1126 int rv = delegate->ReadData(cb.callback()); 1130 int rv = delegate->ReadData(cb.callback());
1127 EXPECT_EQ(ERR_IO_PENDING, rv); 1131 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1128 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1132 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1129 const char kResponseBody[] = "Hello world!"; 1133 const char kResponseBody[] = "Hello world!";
1130 // Server sends data. 1134 // Server sends data.
1131 ProcessPacket( 1135 ProcessPacket(
1132 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1136 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
1133 1137
1134 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult()); 1138 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
1135 1139
1136 size_t spdy_trailers_frame_length; 1140 size_t spdy_trailers_frame_length;
1137 SpdyHeaderBlock trailers; 1141 SpdyHeaderBlock trailers;
1138 trailers["foo"] = "bar"; 1142 trailers["foo"] = "bar";
1139 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 1143 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
1140 // Server sends trailers. 1144 // Server sends trailers.
1141 ProcessPacket(ConstructResponseTrailersPacket( 1145 ProcessPacket(ConstructResponseTrailersPacket(
1142 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1146 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1143 1147
1144 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1148 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1145 trailers.erase(kFinalOffsetHeaderKey); 1149 trailers.erase(kFinalOffsetHeaderKey);
1146 EXPECT_EQ(trailers, delegate->trailers()); 1150 EXPECT_EQ(trailers, delegate->trailers());
1147 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 1151 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1148 1152
1149 EXPECT_EQ(1, delegate->on_data_read_count()); 1153 EXPECT_EQ(1, delegate->on_data_read_count());
1150 EXPECT_EQ(1, delegate->on_data_sent_count()); 1154 EXPECT_EQ(1, delegate->on_data_sent_count());
1151 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1155 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
1152 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1156 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1153 strlen(kUploadData)), 1157 strlen(kUploadData)),
1154 delegate->GetTotalSentBytes()); 1158 delegate->GetTotalSentBytes());
1155 EXPECT_EQ( 1159 EXPECT_EQ(
1156 static_cast<int64_t>(spdy_response_headers_frame_length + 1160 static_cast<int64_t>(spdy_response_headers_frame_length +
1157 strlen(kResponseBody) + spdy_trailers_frame_length), 1161 strlen(kResponseBody) + spdy_trailers_frame_length),
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1201 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1198 1202
1199 // Client sends a data packet. 1203 // Client sends a data packet.
1200 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); 1204 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
1201 1205
1202 delegate->SendData(buf, buf->size(), false); 1206 delegate->SendData(buf, buf->size(), false);
1203 delegate->WaitUntilNextCallback(); // OnDataSent 1207 delegate->WaitUntilNextCallback(); // OnDataSent
1204 1208
1205 TestCompletionCallback cb; 1209 TestCompletionCallback cb;
1206 int rv = delegate->ReadData(cb.callback()); 1210 int rv = delegate->ReadData(cb.callback());
1207 EXPECT_EQ(ERR_IO_PENDING, rv); 1211 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1208 const char kResponseBody[] = "Hello world!"; 1212 const char kResponseBody[] = "Hello world!";
1209 1213
1210 // Server sends a data packet. 1214 // Server sends a data packet.
1211 ProcessPacket(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, !kFin, 0, 1215 ProcessPacket(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, !kFin, 0,
1212 kResponseBody, &server_maker_)); 1216 kResponseBody, &server_maker_));
1213 1217
1214 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult()); 1218 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult());
1215 EXPECT_EQ(std::string(kResponseBody), delegate->data_received()); 1219 EXPECT_EQ(std::string(kResponseBody), delegate->data_received());
1216 1220
1217 // Client sends a data packet. 1221 // Client sends a data packet.
1218 delegate->SendData(buf, buf->size(), true); 1222 delegate->SendData(buf, buf->size(), true);
1219 delegate->WaitUntilNextCallback(); // OnDataSent 1223 delegate->WaitUntilNextCallback(); // OnDataSent
1220 1224
1221 TestCompletionCallback cb2; 1225 TestCompletionCallback cb2;
1222 rv = delegate->ReadData(cb2.callback()); 1226 rv = delegate->ReadData(cb2.callback());
1223 EXPECT_EQ(ERR_IO_PENDING, rv); 1227 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1224 ProcessPacket(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 1, kFin, 1228 ProcessPacket(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 1, kFin,
1225 strlen(kResponseBody), kResponseBody, 1229 strlen(kResponseBody), kResponseBody,
1226 &server_maker_)); 1230 &server_maker_));
1227 1231
1228 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb2.WaitForResult()); 1232 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb2.WaitForResult());
1229 1233
1230 std::string expected_body(kResponseBody); 1234 std::string expected_body(kResponseBody);
1231 expected_body.append(kResponseBody); 1235 expected_body.append(kResponseBody);
1232 EXPECT_EQ(expected_body, delegate->data_received()); 1236 EXPECT_EQ(expected_body, delegate->data_received());
1233 1237
1234 EXPECT_EQ(OK, delegate->ReadData(cb.callback())); 1238 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1235 EXPECT_EQ(2, delegate->on_data_read_count()); 1239 EXPECT_EQ(2, delegate->on_data_read_count());
1236 EXPECT_EQ(2, delegate->on_data_sent_count()); 1240 EXPECT_EQ(2, delegate->on_data_sent_count());
1237 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1241 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
1238 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1242 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1239 2 * strlen(kUploadData)), 1243 2 * strlen(kUploadData)),
1240 delegate->GetTotalSentBytes()); 1244 delegate->GetTotalSentBytes());
1241 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1245 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1242 2 * strlen(kResponseBody)), 1246 2 * strlen(kResponseBody)),
1243 delegate->GetTotalReceivedBytes()); 1247 delegate->GetTotalReceivedBytes());
1244 } 1248 }
(...skipping 16 matching lines...) Expand all
1261 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); 1265 new TestDelegateBase(read_buffer.get(), kReadBufferSize));
1262 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); 1266 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr());
1263 delegate->WaitUntilNextCallback(); // OnStreamReady 1267 delegate->WaitUntilNextCallback(); // OnStreamReady
1264 ConfirmHandshake(); 1268 ConfirmHandshake();
1265 1269
1266 // Server sends a Rst. 1270 // Server sends a Rst.
1267 ProcessPacket(ConstructServerRstStreamPacket(1)); 1271 ProcessPacket(ConstructServerRstStreamPacket(1));
1268 1272
1269 delegate->WaitUntilNextCallback(); // OnFailed 1273 delegate->WaitUntilNextCallback(); // OnFailed
1270 TestCompletionCallback cb; 1274 TestCompletionCallback cb;
1271 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->ReadData(cb.callback())); 1275 EXPECT_THAT(delegate->ReadData(cb.callback()),
1276 IsError(ERR_QUIC_PROTOCOL_ERROR));
1272 1277
1273 base::RunLoop().RunUntilIdle(); 1278 base::RunLoop().RunUntilIdle();
1274 1279
1275 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->error()); 1280 EXPECT_THAT(delegate->error(), IsError(ERR_QUIC_PROTOCOL_ERROR));
1276 EXPECT_EQ(0, delegate->on_data_read_count()); 1281 EXPECT_EQ(0, delegate->on_data_read_count());
1277 EXPECT_EQ(0, delegate->on_data_sent_count()); 1282 EXPECT_EQ(0, delegate->on_data_sent_count());
1278 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1283 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1279 delegate->GetTotalSentBytes()); 1284 delegate->GetTotalSentBytes());
1280 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); 1285 EXPECT_EQ(0, delegate->GetTotalReceivedBytes());
1281 } 1286 }
1282 1287
1283 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterReadData) { 1288 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterReadData) {
1284 SetRequest("GET", "/", DEFAULT_PRIORITY); 1289 SetRequest("GET", "/", DEFAULT_PRIORITY);
1285 size_t spdy_request_headers_frame_length; 1290 size_t spdy_request_headers_frame_length;
(...skipping 27 matching lines...) Expand all
1313 QuicStreamOffset offset = 0; 1318 QuicStreamOffset offset = 0;
1314 ProcessPacket(ConstructResponseHeadersPacket( 1319 ProcessPacket(ConstructResponseHeadersPacket(
1315 2, !kFin, std::move(response_headers), 1320 2, !kFin, std::move(response_headers),
1316 &spdy_response_headers_frame_length, &offset)); 1321 &spdy_response_headers_frame_length, &offset));
1317 1322
1318 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1323 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1319 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1324 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1320 1325
1321 TestCompletionCallback cb; 1326 TestCompletionCallback cb;
1322 int rv = delegate->ReadData(cb.callback()); 1327 int rv = delegate->ReadData(cb.callback());
1323 EXPECT_EQ(ERR_IO_PENDING, rv); 1328 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1324 1329
1325 // Server sends a Rst. 1330 // Server sends a Rst.
1326 ProcessPacket(ConstructServerRstStreamPacket(3)); 1331 ProcessPacket(ConstructServerRstStreamPacket(3));
1327 1332
1328 delegate->WaitUntilNextCallback(); // OnFailed 1333 delegate->WaitUntilNextCallback(); // OnFailed
1329 1334
1330 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->ReadData(cb.callback())); 1335 EXPECT_THAT(delegate->ReadData(cb.callback()),
1331 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->error()); 1336 IsError(ERR_QUIC_PROTOCOL_ERROR));
1337 EXPECT_THAT(delegate->error(), IsError(ERR_QUIC_PROTOCOL_ERROR));
1332 EXPECT_EQ(0, delegate->on_data_read_count()); 1338 EXPECT_EQ(0, delegate->on_data_read_count());
1333 EXPECT_EQ(0, delegate->on_data_sent_count()); 1339 EXPECT_EQ(0, delegate->on_data_sent_count());
1334 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1340 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1335 delegate->GetTotalSentBytes()); 1341 delegate->GetTotalSentBytes());
1336 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1342 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1337 delegate->GetTotalReceivedBytes()); 1343 delegate->GetTotalReceivedBytes());
1338 } 1344 }
1339 1345
1340 TEST_P(BidirectionalStreamQuicImplTest, CancelStreamAfterSendData) { 1346 TEST_P(BidirectionalStreamQuicImplTest, CancelStreamAfterSendData) {
1341 SetRequest("POST", "/", DEFAULT_PRIORITY); 1347 SetRequest("POST", "/", DEFAULT_PRIORITY);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 1433
1428 size_t spdy_response_headers_frame_length; 1434 size_t spdy_response_headers_frame_length;
1429 QuicStreamOffset offset = 0; 1435 QuicStreamOffset offset = 0;
1430 ProcessPacket(ConstructResponseHeadersPacket( 1436 ProcessPacket(ConstructResponseHeadersPacket(
1431 2, !kFin, std::move(response_headers), 1437 2, !kFin, std::move(response_headers),
1432 &spdy_response_headers_frame_length, &offset)); 1438 &spdy_response_headers_frame_length, &offset));
1433 1439
1434 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1440 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1435 TestCompletionCallback cb; 1441 TestCompletionCallback cb;
1436 int rv = delegate->ReadData(cb.callback()); 1442 int rv = delegate->ReadData(cb.callback());
1437 EXPECT_EQ(ERR_IO_PENDING, rv); 1443 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1438 session()->connection()->CloseConnection( 1444 session()->connection()->CloseConnection(
1439 QUIC_NO_ERROR, "test", ConnectionCloseBehavior::SILENT_CLOSE); 1445 QUIC_NO_ERROR, "test", ConnectionCloseBehavior::SILENT_CLOSE);
1440 delegate->WaitUntilNextCallback(); // OnFailed 1446 delegate->WaitUntilNextCallback(); // OnFailed
1441 EXPECT_TRUE(delegate->on_failed_called()); 1447 EXPECT_TRUE(delegate->on_failed_called());
1442 1448
1443 // Try to send data after OnFailed(), should not get called back. 1449 // Try to send data after OnFailed(), should not get called back.
1444 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); 1450 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
1445 delegate->SendData(buf, buf->size(), false); 1451 delegate->SendData(buf, buf->size(), false);
1446 base::RunLoop().RunUntilIdle(); 1452 base::RunLoop().RunUntilIdle();
1447 1453
1448 EXPECT_EQ(ERR_UNEXPECTED, delegate->ReadData(cb.callback())); 1454 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_UNEXPECTED));
1449 EXPECT_EQ(ERR_UNEXPECTED, delegate->error()); 1455 EXPECT_THAT(delegate->error(), IsError(ERR_UNEXPECTED));
1450 EXPECT_EQ(0, delegate->on_data_read_count()); 1456 EXPECT_EQ(0, delegate->on_data_read_count());
1451 EXPECT_EQ(0, delegate->on_data_sent_count()); 1457 EXPECT_EQ(0, delegate->on_data_sent_count());
1452 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1458 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
1453 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1459 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1454 delegate->GetTotalSentBytes()); 1460 delegate->GetTotalSentBytes());
1455 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1461 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1456 delegate->GetTotalReceivedBytes()); 1462 delegate->GetTotalReceivedBytes());
1457 } 1463 }
1458 1464
1459 TEST_P(BidirectionalStreamQuicImplTest, CancelStreamAfterReadData) { 1465 TEST_P(BidirectionalStreamQuicImplTest, CancelStreamAfterReadData) {
(...skipping 26 matching lines...) Expand all
1486 size_t spdy_response_headers_frame_length; 1492 size_t spdy_response_headers_frame_length;
1487 ProcessPacket( 1493 ProcessPacket(
1488 ConstructResponseHeadersPacket(2, !kFin, std::move(response_headers), 1494 ConstructResponseHeadersPacket(2, !kFin, std::move(response_headers),
1489 &spdy_response_headers_frame_length, 0)); 1495 &spdy_response_headers_frame_length, 0));
1490 1496
1491 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1497 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1492 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1498 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1493 1499
1494 // Cancel the stream after ReadData returns ERR_IO_PENDING. 1500 // Cancel the stream after ReadData returns ERR_IO_PENDING.
1495 TestCompletionCallback cb; 1501 TestCompletionCallback cb;
1496 EXPECT_EQ(ERR_IO_PENDING, delegate->ReadData(cb.callback())); 1502 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_IO_PENDING));
1497 delegate->CancelStream(); 1503 delegate->CancelStream();
1498 1504
1499 base::RunLoop().RunUntilIdle(); 1505 base::RunLoop().RunUntilIdle();
1500 1506
1501 EXPECT_EQ(0, delegate->on_data_read_count()); 1507 EXPECT_EQ(0, delegate->on_data_read_count());
1502 EXPECT_EQ(0, delegate->on_data_sent_count()); 1508 EXPECT_EQ(0, delegate->on_data_sent_count());
1503 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1509 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol());
1504 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1510 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1505 delegate->GetTotalSentBytes()); 1511 delegate->GetTotalSentBytes());
1506 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1512 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 ProcessPacket(ConstructResponseHeadersPacket( 1589 ProcessPacket(ConstructResponseHeadersPacket(
1584 2, !kFin, std::move(response_headers), 1590 2, !kFin, std::move(response_headers),
1585 &spdy_response_headers_frame_length, nullptr)); 1591 &spdy_response_headers_frame_length, nullptr));
1586 1592
1587 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1593 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1588 1594
1589 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1595 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1590 1596
1591 TestCompletionCallback cb; 1597 TestCompletionCallback cb;
1592 int rv = delegate->ReadData(cb.callback()); 1598 int rv = delegate->ReadData(cb.callback());
1593 EXPECT_EQ(ERR_IO_PENDING, rv); 1599 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1594 const char kResponseBody[] = "Hello world!"; 1600 const char kResponseBody[] = "Hello world!";
1595 // Server sends data. 1601 // Server sends data.
1596 ProcessPacket( 1602 ProcessPacket(
1597 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1603 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
1598 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult()); 1604 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult());
1599 1605
1600 base::RunLoop().RunUntilIdle(); 1606 base::RunLoop().RunUntilIdle();
1601 1607
1602 EXPECT_EQ(1, delegate->on_data_read_count()); 1608 EXPECT_EQ(1, delegate->on_data_read_count());
1603 EXPECT_EQ(0, delegate->on_data_sent_count()); 1609 EXPECT_EQ(0, delegate->on_data_sent_count());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1636 ProcessPacket(ConstructResponseHeadersPacket( 1642 ProcessPacket(ConstructResponseHeadersPacket(
1637 2, !kFin, std::move(response_headers), 1643 2, !kFin, std::move(response_headers),
1638 &spdy_response_headers_frame_length, &offset)); 1644 &spdy_response_headers_frame_length, &offset));
1639 1645
1640 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1646 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1641 1647
1642 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1648 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1643 1649
1644 TestCompletionCallback cb; 1650 TestCompletionCallback cb;
1645 int rv = delegate->ReadData(cb.callback()); 1651 int rv = delegate->ReadData(cb.callback());
1646 EXPECT_EQ(ERR_IO_PENDING, rv); 1652 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1647 const char kResponseBody[] = "Hello world!"; 1653 const char kResponseBody[] = "Hello world!";
1648 // Server sends data. 1654 // Server sends data.
1649 ProcessPacket( 1655 ProcessPacket(
1650 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1656 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
1651 1657
1652 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult()); 1658 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult());
1653 EXPECT_EQ(std::string(kResponseBody), delegate->data_received()); 1659 EXPECT_EQ(std::string(kResponseBody), delegate->data_received());
1654 1660
1655 size_t spdy_trailers_frame_length; 1661 size_t spdy_trailers_frame_length;
1656 SpdyHeaderBlock trailers; 1662 SpdyHeaderBlock trailers;
1657 trailers["foo"] = "bar"; 1663 trailers["foo"] = "bar";
1658 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody)); 1664 trailers[kFinalOffsetHeaderKey] = base::IntToString(strlen(kResponseBody));
1659 // Server sends trailers. 1665 // Server sends trailers.
1660 ProcessPacket(ConstructResponseTrailersPacket( 1666 ProcessPacket(ConstructResponseTrailersPacket(
1661 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1667 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1662 1668
1663 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1669 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1664 trailers.erase(kFinalOffsetHeaderKey); 1670 trailers.erase(kFinalOffsetHeaderKey);
1665 EXPECT_EQ(trailers, delegate->trailers()); 1671 EXPECT_EQ(trailers, delegate->trailers());
1666 1672
1667 base::RunLoop().RunUntilIdle(); 1673 base::RunLoop().RunUntilIdle();
1668 1674
1669 EXPECT_EQ(1, delegate->on_data_read_count()); 1675 EXPECT_EQ(1, delegate->on_data_read_count());
1670 EXPECT_EQ(0, delegate->on_data_sent_count()); 1676 EXPECT_EQ(0, delegate->on_data_sent_count());
1671 } 1677 }
1672 1678
1673 } // namespace test 1679 } // namespace test
1674 1680
1675 } // namespace net 1681 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_service_unittest.cc ('k') | net/quic/crypto/properties_based_quic_server_info_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698