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

Side by Side Diff: net/quic/quic_http_stream_test.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
« no previous file with comments | « net/quic/quic_end_to_end_unittest.cc ('k') | net/quic/quic_network_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/quic_http_stream.h" 5 #include "net/quic/quic_http_stream.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "net/quic/test_tools/quic_test_packet_maker.h" 44 #include "net/quic/test_tools/quic_test_packet_maker.h"
45 #include "net/quic/test_tools/quic_test_utils.h" 45 #include "net/quic/test_tools/quic_test_utils.h"
46 #include "net/quic/test_tools/test_task_runner.h" 46 #include "net/quic/test_tools/test_task_runner.h"
47 #include "net/socket/socket_performance_watcher.h" 47 #include "net/socket/socket_performance_watcher.h"
48 #include "net/socket/socket_test_util.h" 48 #include "net/socket/socket_test_util.h"
49 #include "net/spdy/spdy_frame_builder.h" 49 #include "net/spdy/spdy_frame_builder.h"
50 #include "net/spdy/spdy_framer.h" 50 #include "net/spdy/spdy_framer.h"
51 #include "net/spdy/spdy_http_utils.h" 51 #include "net/spdy/spdy_http_utils.h"
52 #include "net/spdy/spdy_protocol.h" 52 #include "net/spdy/spdy_protocol.h"
53 #include "net/test/cert_test_util.h" 53 #include "net/test/cert_test_util.h"
54 #include "net/test/gtest_util.h"
54 #include "net/test/test_data_directory.h" 55 #include "net/test/test_data_directory.h"
55 #include "testing/gmock/include/gmock/gmock.h" 56 #include "testing/gmock/include/gmock/gmock.h"
56 #include "testing/gtest/include/gtest/gtest.h" 57 #include "testing/gtest/include/gtest/gtest.h"
57 58
59 using net::test::IsError;
60 using net::test::IsOk;
61
58 using std::string; 62 using std::string;
59 using testing::_; 63 using testing::_;
60 using testing::AnyNumber; 64 using testing::AnyNumber;
61 using testing::Return; 65 using testing::Return;
62 66
63 namespace net { 67 namespace net {
64 namespace test { 68 namespace test {
65 namespace { 69 namespace {
66 70
67 const char kUploadData[] = "Really nifty data!"; 71 const char kUploadData[] = "Really nifty data!";
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 589
586 EXPECT_EQ(OK, 590 EXPECT_EQ(OK,
587 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 591 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
588 net_log_.bound(), callback_.callback())); 592 net_log_.bound(), callback_.callback()));
589 EXPECT_EQ(OK, 593 EXPECT_EQ(OK,
590 stream_->SendRequest(headers_, &response_, callback_.callback())); 594 stream_->SendRequest(headers_, &response_, callback_.callback()));
591 595
592 // Ack the request. 596 // Ack the request.
593 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 597 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
594 598
595 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 599 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
600 IsError(ERR_IO_PENDING));
596 601
597 SetResponse("404 Not Found", string()); 602 SetResponse("404 Not Found", string());
598 size_t spdy_response_header_frame_length; 603 size_t spdy_response_header_frame_length;
599 ProcessPacket(ConstructResponseHeadersPacket( 604 ProcessPacket(ConstructResponseHeadersPacket(
600 2, kFin, &spdy_response_header_frame_length)); 605 2, kFin, &spdy_response_header_frame_length));
601 606
602 // Now that the headers have been processed, the callback will return. 607 // Now that the headers have been processed, the callback will return.
603 EXPECT_EQ(OK, callback_.WaitForResult()); 608 EXPECT_THAT(callback_.WaitForResult(), IsOk());
604 ASSERT_TRUE(response_.headers.get()); 609 ASSERT_TRUE(response_.headers.get());
605 EXPECT_EQ(404, response_.headers->response_code()); 610 EXPECT_EQ(404, response_.headers->response_code());
606 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 611 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
607 EXPECT_FALSE(response_.response_time.is_null()); 612 EXPECT_FALSE(response_.response_time.is_null());
608 EXPECT_FALSE(response_.request_time.is_null()); 613 EXPECT_FALSE(response_.request_time.is_null());
609 614
610 // There is no body, so this should return immediately. 615 // There is no body, so this should return immediately.
611 EXPECT_EQ(0, 616 EXPECT_EQ(0,
612 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 617 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
613 callback_.callback())); 618 callback_.callback()));
(...skipping 24 matching lines...) Expand all
638 643
639 EXPECT_EQ(OK, 644 EXPECT_EQ(OK,
640 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 645 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
641 net_log_.bound(), callback_.callback())); 646 net_log_.bound(), callback_.callback()));
642 647
643 EXPECT_EQ(OK, 648 EXPECT_EQ(OK,
644 stream_->SendRequest(headers_, &response_, callback_.callback())); 649 stream_->SendRequest(headers_, &response_, callback_.callback()));
645 // Ack the request. 650 // Ack the request.
646 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 651 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
647 652
648 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 653 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
654 IsError(ERR_IO_PENDING));
649 655
650 SetResponse("200 OK", string()); 656 SetResponse("200 OK", string());
651 657
652 // Send the response headers. 658 // Send the response headers.
653 size_t spdy_response_header_frame_length; 659 size_t spdy_response_header_frame_length;
654 QuicStreamOffset offset = 0; 660 QuicStreamOffset offset = 0;
655 ProcessPacket(ConstructResponseHeadersPacketWithOffset( 661 ProcessPacket(ConstructResponseHeadersPacketWithOffset(
656 2, !kFin, &spdy_response_header_frame_length, &offset)); 662 2, !kFin, &spdy_response_header_frame_length, &offset));
657 // Now that the headers have been processed, the callback will return. 663 // Now that the headers have been processed, the callback will return.
658 EXPECT_EQ(OK, callback_.WaitForResult()); 664 EXPECT_THAT(callback_.WaitForResult(), IsOk());
659 ASSERT_TRUE(response_.headers.get()); 665 ASSERT_TRUE(response_.headers.get());
660 EXPECT_EQ(200, response_.headers->response_code()); 666 EXPECT_EQ(200, response_.headers->response_code());
661 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 667 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
662 EXPECT_FALSE(response_.response_time.is_null()); 668 EXPECT_FALSE(response_.response_time.is_null());
663 EXPECT_FALSE(response_.request_time.is_null()); 669 EXPECT_FALSE(response_.request_time.is_null());
664 670
665 // Send the response body. 671 // Send the response body.
666 const char kResponseBody[] = "Hello world!"; 672 const char kResponseBody[] = "Hello world!";
667 ProcessPacket( 673 ProcessPacket(
668 ConstructServerDataPacket(3, false, !kFin, /*offset=*/0, kResponseBody)); 674 ConstructServerDataPacket(3, false, !kFin, /*offset=*/0, kResponseBody));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 732
727 EXPECT_EQ(OK, 733 EXPECT_EQ(OK,
728 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 734 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
729 net_log_.bound(), callback_.callback())); 735 net_log_.bound(), callback_.callback()));
730 EXPECT_EQ(OK, 736 EXPECT_EQ(OK,
731 stream_->SendRequest(headers_, &response_, callback_.callback())); 737 stream_->SendRequest(headers_, &response_, callback_.callback()));
732 738
733 // Ack the request. 739 // Ack the request.
734 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 740 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
735 741
736 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 742 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
743 IsError(ERR_IO_PENDING));
737 744
738 response_headers_[":status"] = "200 OK"; 745 response_headers_[":status"] = "200 OK";
739 response_headers_[":version"] = "HTTP/1.1"; 746 response_headers_[":version"] = "HTTP/1.1";
740 response_headers_["content-type"] = "text/plain"; 747 response_headers_["content-type"] = "text/plain";
741 response_headers_["big6"] = string(1000, 'x'); // Lots of x's. 748 response_headers_["big6"] = string(1000, 'x'); // Lots of x's.
742 749
743 size_t spdy_response_headers_frame_length; 750 size_t spdy_response_headers_frame_length;
744 ProcessPacket(ConstructResponseHeadersPacket( 751 ProcessPacket(ConstructResponseHeadersPacket(
745 2, kFin, &spdy_response_headers_frame_length)); 752 2, kFin, &spdy_response_headers_frame_length));
746 753
747 // Now that the headers have been processed, the callback will return. 754 // Now that the headers have been processed, the callback will return.
748 EXPECT_EQ(OK, callback_.WaitForResult()); 755 EXPECT_THAT(callback_.WaitForResult(), IsOk());
749 ASSERT_TRUE(response_.headers.get()); 756 ASSERT_TRUE(response_.headers.get());
750 EXPECT_EQ(200, response_.headers->response_code()); 757 EXPECT_EQ(200, response_.headers->response_code());
751 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 758 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
752 759
753 // There is no body, so this should return immediately. 760 // There is no body, so this should return immediately.
754 EXPECT_EQ(0, 761 EXPECT_EQ(0,
755 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 762 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
756 callback_.callback())); 763 callback_.callback()));
757 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 764 EXPECT_TRUE(stream_->IsResponseBodyComplete());
758 EXPECT_TRUE(AtEof()); 765 EXPECT_TRUE(AtEof());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 request_.url = GURL("http://www.example.org/"); 832 request_.url = GURL("http://www.example.org/");
826 833
827 EXPECT_EQ(OK, 834 EXPECT_EQ(OK,
828 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 835 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
829 net_log_.bound(), callback_.callback())); 836 net_log_.bound(), callback_.callback()));
830 EXPECT_EQ(OK, 837 EXPECT_EQ(OK,
831 stream_->SendRequest(headers_, &response_, callback_.callback())); 838 stream_->SendRequest(headers_, &response_, callback_.callback()));
832 839
833 // Ack the request. 840 // Ack the request.
834 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 841 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
835 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 842 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
843 IsError(ERR_IO_PENDING));
836 844
837 EXPECT_TRUE(QuicHttpStreamPeer::WasHandshakeConfirmed(stream_.get())); 845 EXPECT_TRUE(QuicHttpStreamPeer::WasHandshakeConfirmed(stream_.get()));
838 846
839 QuicConnectionCloseFrame frame; 847 QuicConnectionCloseFrame frame;
840 frame.error_code = QUIC_PEER_GOING_AWAY; 848 frame.error_code = QUIC_PEER_GOING_AWAY;
841 session_->connection()->OnConnectionCloseFrame(frame); 849 session_->connection()->OnConnectionCloseFrame(frame);
842 850
843 NetErrorDetails details; 851 NetErrorDetails details;
844 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); 852 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error);
845 stream_->PopulateNetErrorDetails(&details); 853 stream_->PopulateNetErrorDetails(&details);
(...skipping 13 matching lines...) Expand all
859 request_.url = GURL("http://www.example.org/"); 867 request_.url = GURL("http://www.example.org/");
860 868
861 EXPECT_EQ(OK, 869 EXPECT_EQ(OK,
862 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 870 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
863 net_log_.bound(), callback_.callback())); 871 net_log_.bound(), callback_.callback()));
864 EXPECT_EQ(OK, 872 EXPECT_EQ(OK,
865 stream_->SendRequest(headers_, &response_, callback_.callback())); 873 stream_->SendRequest(headers_, &response_, callback_.callback()));
866 874
867 // Ack the request. 875 // Ack the request.
868 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 876 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
869 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 877 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
878 IsError(ERR_IO_PENDING));
870 879
871 // The test setup defaults handshake to be confirmed. Manually set 880 // The test setup defaults handshake to be confirmed. Manually set
872 // it to be not confirmed. 881 // it to be not confirmed.
873 // Granular errors shouldn't be reported if handshake not confirmed. 882 // Granular errors shouldn't be reported if handshake not confirmed.
874 QuicHttpStreamPeer::SetHandshakeConfirmed(stream_.get(), false); 883 QuicHttpStreamPeer::SetHandshakeConfirmed(stream_.get(), false);
875 884
876 EXPECT_FALSE(QuicHttpStreamPeer::WasHandshakeConfirmed(stream_.get())); 885 EXPECT_FALSE(QuicHttpStreamPeer::WasHandshakeConfirmed(stream_.get()));
877 QuicConnectionCloseFrame frame; 886 QuicConnectionCloseFrame frame;
878 frame.error_code = QUIC_PEER_GOING_AWAY; 887 frame.error_code = QUIC_PEER_GOING_AWAY;
879 session_->connection()->OnConnectionCloseFrame(frame); 888 session_->connection()->OnConnectionCloseFrame(frame);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 933
925 Initialize(); 934 Initialize();
926 935
927 std::vector<std::unique_ptr<UploadElementReader>> element_readers; 936 std::vector<std::unique_ptr<UploadElementReader>> element_readers;
928 element_readers.push_back(base::WrapUnique( 937 element_readers.push_back(base::WrapUnique(
929 new UploadBytesElementReader(kUploadData, strlen(kUploadData)))); 938 new UploadBytesElementReader(kUploadData, strlen(kUploadData))));
930 ElementsUploadDataStream upload_data_stream(std::move(element_readers), 0); 939 ElementsUploadDataStream upload_data_stream(std::move(element_readers), 0);
931 request_.method = "POST"; 940 request_.method = "POST";
932 request_.url = GURL("http://www.example.org/"); 941 request_.url = GURL("http://www.example.org/");
933 request_.upload_data_stream = &upload_data_stream; 942 request_.upload_data_stream = &upload_data_stream;
934 ASSERT_EQ(OK, request_.upload_data_stream->Init(CompletionCallback())); 943 ASSERT_THAT(request_.upload_data_stream->Init(CompletionCallback()), IsOk());
935 944
936 EXPECT_EQ(OK, 945 EXPECT_EQ(OK,
937 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 946 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
938 net_log_.bound(), callback_.callback())); 947 net_log_.bound(), callback_.callback()));
939 EXPECT_EQ(OK, 948 EXPECT_EQ(OK,
940 stream_->SendRequest(headers_, &response_, callback_.callback())); 949 stream_->SendRequest(headers_, &response_, callback_.callback()));
941 950
942 // Ack both packets in the request. 951 // Ack both packets in the request.
943 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 952 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
944 953
945 // Send the response headers (but not the body). 954 // Send the response headers (but not the body).
946 SetResponse("200 OK", string()); 955 SetResponse("200 OK", string());
947 size_t spdy_response_headers_frame_length; 956 size_t spdy_response_headers_frame_length;
948 ProcessPacket(ConstructResponseHeadersPacket( 957 ProcessPacket(ConstructResponseHeadersPacket(
949 2, !kFin, &spdy_response_headers_frame_length)); 958 2, !kFin, &spdy_response_headers_frame_length));
950 959
951 // The headers have arrived, but they are delivered asynchronously. 960 // The headers have arrived, but they are delivered asynchronously.
952 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 961 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
953 EXPECT_EQ(OK, callback_.WaitForResult()); 962 IsError(ERR_IO_PENDING));
963 EXPECT_THAT(callback_.WaitForResult(), IsOk());
954 ASSERT_TRUE(response_.headers.get()); 964 ASSERT_TRUE(response_.headers.get());
955 EXPECT_EQ(200, response_.headers->response_code()); 965 EXPECT_EQ(200, response_.headers->response_code());
956 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 966 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
957 967
958 // Send the response body. 968 // Send the response body.
959 const char kResponseBody[] = "Hello world!"; 969 const char kResponseBody[] = "Hello world!";
960 ProcessPacket(ConstructServerDataPacket(3, false, kFin, 0, kResponseBody)); 970 ProcessPacket(ConstructServerDataPacket(3, false, kFin, 0, kResponseBody));
961 // Since the body has already arrived, this should return immediately. 971 // Since the body has already arrived, this should return immediately.
962 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), 972 EXPECT_EQ(static_cast<int>(strlen(kResponseBody)),
963 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 973 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 ASSERT_EQ(OK, request_.upload_data_stream->Init( 1008 ASSERT_EQ(OK, request_.upload_data_stream->Init(
999 TestCompletionCallback().callback())); 1009 TestCompletionCallback().callback()));
1000 1010
1001 ASSERT_EQ(OK, 1011 ASSERT_EQ(OK,
1002 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1012 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1003 net_log_.bound(), callback_.callback())); 1013 net_log_.bound(), callback_.callback()));
1004 ASSERT_EQ(ERR_IO_PENDING, 1014 ASSERT_EQ(ERR_IO_PENDING,
1005 stream_->SendRequest(headers_, &response_, callback_.callback())); 1015 stream_->SendRequest(headers_, &response_, callback_.callback()));
1006 1016
1007 upload_data_stream.AppendData(kUploadData, chunk_size, true); 1017 upload_data_stream.AppendData(kUploadData, chunk_size, true);
1008 EXPECT_EQ(OK, callback_.WaitForResult()); 1018 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1009 1019
1010 // Ack both packets in the request. 1020 // Ack both packets in the request.
1011 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1021 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1012 1022
1013 // Send the response headers (but not the body). 1023 // Send the response headers (but not the body).
1014 SetResponse("200 OK", string()); 1024 SetResponse("200 OK", string());
1015 size_t spdy_response_headers_frame_length; 1025 size_t spdy_response_headers_frame_length;
1016 ProcessPacket(ConstructResponseHeadersPacket( 1026 ProcessPacket(ConstructResponseHeadersPacket(
1017 2, !kFin, &spdy_response_headers_frame_length)); 1027 2, !kFin, &spdy_response_headers_frame_length));
1018 1028
1019 // The headers have arrived, but they are delivered asynchronously 1029 // The headers have arrived, but they are delivered asynchronously
1020 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 1030 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
1021 EXPECT_EQ(OK, callback_.WaitForResult()); 1031 IsError(ERR_IO_PENDING));
1032 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1022 ASSERT_TRUE(response_.headers.get()); 1033 ASSERT_TRUE(response_.headers.get());
1023 EXPECT_EQ(200, response_.headers->response_code()); 1034 EXPECT_EQ(200, response_.headers->response_code());
1024 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 1035 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
1025 1036
1026 // Send the response body. 1037 // Send the response body.
1027 const char kResponseBody[] = "Hello world!"; 1038 const char kResponseBody[] = "Hello world!";
1028 ProcessPacket(ConstructServerDataPacket( 1039 ProcessPacket(ConstructServerDataPacket(
1029 3, false, kFin, response_data_.length(), kResponseBody)); 1040 3, false, kFin, response_data_.length(), kResponseBody));
1030 1041
1031 // Since the body has already arrived, this should return immediately. 1042 // Since the body has already arrived, this should return immediately.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 ASSERT_EQ(OK, request_.upload_data_stream->Init( 1078 ASSERT_EQ(OK, request_.upload_data_stream->Init(
1068 TestCompletionCallback().callback())); 1079 TestCompletionCallback().callback()));
1069 1080
1070 ASSERT_EQ(OK, 1081 ASSERT_EQ(OK,
1071 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1082 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1072 net_log_.bound(), callback_.callback())); 1083 net_log_.bound(), callback_.callback()));
1073 ASSERT_EQ(ERR_IO_PENDING, 1084 ASSERT_EQ(ERR_IO_PENDING,
1074 stream_->SendRequest(headers_, &response_, callback_.callback())); 1085 stream_->SendRequest(headers_, &response_, callback_.callback()));
1075 1086
1076 upload_data_stream.AppendData(nullptr, 0, true); 1087 upload_data_stream.AppendData(nullptr, 0, true);
1077 EXPECT_EQ(OK, callback_.WaitForResult()); 1088 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1078 1089
1079 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1090 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1080 1091
1081 // Send the response headers (but not the body). 1092 // Send the response headers (but not the body).
1082 SetResponse("200 OK", string()); 1093 SetResponse("200 OK", string());
1083 size_t spdy_response_headers_frame_length; 1094 size_t spdy_response_headers_frame_length;
1084 ProcessPacket(ConstructResponseHeadersPacket( 1095 ProcessPacket(ConstructResponseHeadersPacket(
1085 2, !kFin, &spdy_response_headers_frame_length)); 1096 2, !kFin, &spdy_response_headers_frame_length));
1086 1097
1087 // The headers have arrived, but they are delivered asynchronously 1098 // The headers have arrived, but they are delivered asynchronously
1088 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 1099 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
1089 EXPECT_EQ(OK, callback_.WaitForResult()); 1100 IsError(ERR_IO_PENDING));
1101 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1090 ASSERT_TRUE(response_.headers.get()); 1102 ASSERT_TRUE(response_.headers.get());
1091 EXPECT_EQ(200, response_.headers->response_code()); 1103 EXPECT_EQ(200, response_.headers->response_code());
1092 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 1104 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
1093 1105
1094 // Send the response body. 1106 // Send the response body.
1095 const char kResponseBody[] = "Hello world!"; 1107 const char kResponseBody[] = "Hello world!";
1096 ProcessPacket(ConstructServerDataPacket( 1108 ProcessPacket(ConstructServerDataPacket(
1097 3, false, kFin, response_data_.length(), kResponseBody)); 1109 3, false, kFin, response_data_.length(), kResponseBody));
1098 1110
1099 // The body has arrived, but it is delivered asynchronously 1111 // The body has arrived, but it is delivered asynchronously
(...skipping 30 matching lines...) Expand all
1130 ASSERT_EQ(OK, request_.upload_data_stream->Init( 1142 ASSERT_EQ(OK, request_.upload_data_stream->Init(
1131 TestCompletionCallback().callback())); 1143 TestCompletionCallback().callback()));
1132 1144
1133 ASSERT_EQ(OK, 1145 ASSERT_EQ(OK,
1134 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1146 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1135 net_log_.bound(), callback_.callback())); 1147 net_log_.bound(), callback_.callback()));
1136 ASSERT_EQ(ERR_IO_PENDING, 1148 ASSERT_EQ(ERR_IO_PENDING,
1137 stream_->SendRequest(headers_, &response_, callback_.callback())); 1149 stream_->SendRequest(headers_, &response_, callback_.callback()));
1138 1150
1139 upload_data_stream.AppendData(nullptr, 0, true); 1151 upload_data_stream.AppendData(nullptr, 0, true);
1140 EXPECT_EQ(OK, callback_.WaitForResult()); 1152 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1141 1153
1142 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1154 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1143 1155
1144 // Send the response headers (but not the body). 1156 // Send the response headers (but not the body).
1145 SetResponse("200 OK", string()); 1157 SetResponse("200 OK", string());
1146 size_t spdy_response_headers_frame_length; 1158 size_t spdy_response_headers_frame_length;
1147 ProcessPacket(ConstructResponseHeadersPacket( 1159 ProcessPacket(ConstructResponseHeadersPacket(
1148 2, !kFin, &spdy_response_headers_frame_length)); 1160 2, !kFin, &spdy_response_headers_frame_length));
1149 1161
1150 // The headers have arrived, but they are delivered asynchronously 1162 // The headers have arrived, but they are delivered asynchronously
1151 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 1163 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
1152 EXPECT_EQ(OK, callback_.WaitForResult()); 1164 IsError(ERR_IO_PENDING));
1165 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1153 ASSERT_TRUE(response_.headers.get()); 1166 ASSERT_TRUE(response_.headers.get());
1154 EXPECT_EQ(200, response_.headers->response_code()); 1167 EXPECT_EQ(200, response_.headers->response_code());
1155 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 1168 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
1156 1169
1157 // Send the response body. 1170 // Send the response body.
1158 const char kResponseBody[] = "Hello world!"; 1171 const char kResponseBody[] = "Hello world!";
1159 ProcessPacket(ConstructServerDataPacket( 1172 ProcessPacket(ConstructServerDataPacket(
1160 3, false, kFin, response_data_.length(), kResponseBody)); 1173 3, false, kFin, response_data_.length(), kResponseBody));
1161 1174
1162 // The body has arrived, but it is delivered asynchronously 1175 // The body has arrived, but it is delivered asynchronously
(...skipping 26 matching lines...) Expand all
1189 request_.url = GURL("http://www.example.org/"); 1202 request_.url = GURL("http://www.example.org/");
1190 1203
1191 EXPECT_EQ(OK, 1204 EXPECT_EQ(OK,
1192 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1205 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1193 net_log_.bound(), callback_.callback())); 1206 net_log_.bound(), callback_.callback()));
1194 EXPECT_EQ(OK, 1207 EXPECT_EQ(OK,
1195 stream_->SendRequest(headers_, &response_, callback_.callback())); 1208 stream_->SendRequest(headers_, &response_, callback_.callback()));
1196 1209
1197 // Ack the request. 1210 // Ack the request.
1198 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1211 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1199 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 1212 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
1213 IsError(ERR_IO_PENDING));
1200 1214
1201 // Send the response with a body. 1215 // Send the response with a body.
1202 SetResponse("404 OK", "hello world!"); 1216 SetResponse("404 OK", "hello world!");
1203 // In the course of processing this packet, the QuicHttpStream close itself. 1217 // In the course of processing this packet, the QuicHttpStream close itself.
1204 ProcessPacket(ConstructResponseHeadersPacket(2, kFin, nullptr)); 1218 ProcessPacket(ConstructResponseHeadersPacket(2, kFin, nullptr));
1205 1219
1206 base::RunLoop().RunUntilIdle(); 1220 base::RunLoop().RunUntilIdle();
1207 1221
1208 EXPECT_TRUE(AtEof()); 1222 EXPECT_TRUE(AtEof());
1209 1223
(...skipping 28 matching lines...) Expand all
1238 1252
1239 EXPECT_EQ(OK, 1253 EXPECT_EQ(OK,
1240 stream_->SendRequest(headers_, &response_, callback_.callback())); 1254 stream_->SendRequest(headers_, &response_, callback_.callback()));
1241 1255
1242 // Check that priority has now dropped back to MEDIUM. 1256 // Check that priority has now dropped back to MEDIUM.
1243 DCHECK_EQ(MEDIUM, 1257 DCHECK_EQ(MEDIUM,
1244 ConvertQuicPriorityToRequestPriority(reliable_stream->priority())); 1258 ConvertQuicPriorityToRequestPriority(reliable_stream->priority()));
1245 1259
1246 // Ack the request. 1260 // Ack the request.
1247 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1261 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1248 EXPECT_EQ(ERR_IO_PENDING, stream_->ReadResponseHeaders(callback_.callback())); 1262 EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
1263 IsError(ERR_IO_PENDING));
1249 1264
1250 // Send the response with a body. 1265 // Send the response with a body.
1251 SetResponse("404 OK", "hello world!"); 1266 SetResponse("404 OK", "hello world!");
1252 // In the course of processing this packet, the QuicHttpStream close itself. 1267 // In the course of processing this packet, the QuicHttpStream close itself.
1253 ProcessPacket(ConstructResponseHeadersPacket(2, kFin, nullptr)); 1268 ProcessPacket(ConstructResponseHeadersPacket(2, kFin, nullptr));
1254 1269
1255 base::RunLoop().RunUntilIdle(); 1270 base::RunLoop().RunUntilIdle();
1256 1271
1257 EXPECT_TRUE(AtEof()); 1272 EXPECT_TRUE(AtEof());
1258 1273
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 // with the promised stream. 1397 // with the promised stream.
1383 EXPECT_EQ(OK, promised_stream_->SendRequest(headers_, &response_, 1398 EXPECT_EQ(OK, promised_stream_->SendRequest(headers_, &response_,
1384 callback_.callback())); 1399 callback_.callback()));
1385 1400
1386 EXPECT_EQ( 1401 EXPECT_EQ(
1387 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1402 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1388 ->id(), 1403 ->id(),
1389 promise_id_); 1404 promise_id_);
1390 1405
1391 // The headers will be immediately available. 1406 // The headers will be immediately available.
1392 EXPECT_EQ(OK, promised_stream_->ReadResponseHeaders(callback_.callback())); 1407 EXPECT_THAT(promised_stream_->ReadResponseHeaders(callback_.callback()),
1408 IsOk());
1393 1409
1394 // As will be the body. 1410 // As will be the body.
1395 EXPECT_EQ( 1411 EXPECT_EQ(
1396 static_cast<int>(strlen(kResponseBody)), 1412 static_cast<int>(strlen(kResponseBody)),
1397 promised_stream_->ReadResponseBody( 1413 promised_stream_->ReadResponseBody(
1398 read_buffer_.get(), read_buffer_->size(), callback_.callback())); 1414 read_buffer_.get(), read_buffer_->size(), callback_.callback()));
1399 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete()); 1415 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete());
1400 EXPECT_TRUE(AtEof()); 1416 EXPECT_TRUE(AtEof());
1401 1417
1402 EXPECT_EQ(0, stream_->GetTotalSentBytes()); 1418 EXPECT_EQ(0, stream_->GetTotalSentBytes());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1446 // Receive the promised response body. 1462 // Receive the promised response body.
1447 const char kResponseBody[] = "Hello world!"; 1463 const char kResponseBody[] = "Hello world!";
1448 ProcessPacket(InnerConstructDataPacket(2, promise_id_, false, kFin, 0, 1464 ProcessPacket(InnerConstructDataPacket(2, promise_id_, false, kFin, 0,
1449 kResponseBody, &server_maker_)); 1465 kResponseBody, &server_maker_));
1450 1466
1451 base::RunLoop().RunUntilIdle(); 1467 base::RunLoop().RunUntilIdle();
1452 1468
1453 // Rendezvous should have succeeded now, so the promised stream 1469 // Rendezvous should have succeeded now, so the promised stream
1454 // should point at our push stream, and we should be able read 1470 // should point at our push stream, and we should be able read
1455 // headers and data from it. 1471 // headers and data from it.
1456 EXPECT_EQ(OK, callback_.WaitForResult()); 1472 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1457 1473
1458 EXPECT_EQ( 1474 EXPECT_EQ(
1459 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1475 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1460 ->id(), 1476 ->id(),
1461 promise_id_); 1477 promise_id_);
1462 1478
1463 EXPECT_EQ(OK, promised_stream_->ReadResponseHeaders(callback_.callback())); 1479 EXPECT_THAT(promised_stream_->ReadResponseHeaders(callback_.callback()),
1480 IsOk());
1464 1481
1465 EXPECT_EQ( 1482 EXPECT_EQ(
1466 static_cast<int>(strlen(kResponseBody)), 1483 static_cast<int>(strlen(kResponseBody)),
1467 promised_stream_->ReadResponseBody( 1484 promised_stream_->ReadResponseBody(
1468 read_buffer_.get(), read_buffer_->size(), callback_.callback())); 1485 read_buffer_.get(), read_buffer_->size(), callback_.callback()));
1469 1486
1470 // Callback should return 1487 // Callback should return
1471 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete()); 1488 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete());
1472 EXPECT_TRUE(AtEof()); 1489 EXPECT_TRUE(AtEof());
1473 1490
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 // with the promised stream. 1542 // with the promised stream.
1526 EXPECT_EQ(OK, promised_stream_->SendRequest(headers_, &response_, 1543 EXPECT_EQ(OK, promised_stream_->SendRequest(headers_, &response_,
1527 callback_.callback())); 1544 callback_.callback()));
1528 1545
1529 EXPECT_EQ( 1546 EXPECT_EQ(
1530 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1547 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1531 ->id(), 1548 ->id(),
1532 promise_id_); 1549 promise_id_);
1533 1550
1534 // The headers will be immediately available. 1551 // The headers will be immediately available.
1535 EXPECT_EQ(OK, promised_stream_->ReadResponseHeaders(callback_.callback())); 1552 EXPECT_THAT(promised_stream_->ReadResponseHeaders(callback_.callback()),
1553 IsOk());
1536 1554
1537 // As will be the body. 1555 // As will be the body.
1538 EXPECT_EQ( 1556 EXPECT_EQ(
1539 static_cast<int>(strlen(kResponseBody)), 1557 static_cast<int>(strlen(kResponseBody)),
1540 promised_stream_->ReadResponseBody( 1558 promised_stream_->ReadResponseBody(
1541 read_buffer_.get(), read_buffer_->size(), callback_.callback())); 1559 read_buffer_.get(), read_buffer_->size(), callback_.callback()));
1542 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete()); 1560 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete());
1543 EXPECT_TRUE(AtEof()); 1561 EXPECT_TRUE(AtEof());
1544 1562
1545 EXPECT_EQ(0, stream_->GetTotalSentBytes()); 1563 EXPECT_EQ(0, stream_->GetTotalSentBytes());
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1621 // Receive the promised response body. 1639 // Receive the promised response body.
1622 const char kResponseBody[] = "Hello world!"; 1640 const char kResponseBody[] = "Hello world!";
1623 ProcessPacket(InnerConstructDataPacket(2, promise_id_, false, kFin, 0, 1641 ProcessPacket(InnerConstructDataPacket(2, promise_id_, false, kFin, 0,
1624 kResponseBody, &server_maker_)); 1642 kResponseBody, &server_maker_));
1625 1643
1626 base::RunLoop().RunUntilIdle(); 1644 base::RunLoop().RunUntilIdle();
1627 1645
1628 // Rendezvous should have succeeded now, so the promised stream 1646 // Rendezvous should have succeeded now, so the promised stream
1629 // should point at our push stream, and we should be able read 1647 // should point at our push stream, and we should be able read
1630 // headers and data from it. 1648 // headers and data from it.
1631 EXPECT_EQ(OK, callback_.WaitForResult()); 1649 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1632 1650
1633 EXPECT_EQ( 1651 EXPECT_EQ(
1634 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1652 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1635 ->id(), 1653 ->id(),
1636 promise_id_); 1654 promise_id_);
1637 1655
1638 EXPECT_EQ(OK, promised_stream_->ReadResponseHeaders(callback_.callback())); 1656 EXPECT_THAT(promised_stream_->ReadResponseHeaders(callback_.callback()),
1657 IsOk());
1639 1658
1640 EXPECT_EQ( 1659 EXPECT_EQ(
1641 static_cast<int>(strlen(kResponseBody)), 1660 static_cast<int>(strlen(kResponseBody)),
1642 promised_stream_->ReadResponseBody( 1661 promised_stream_->ReadResponseBody(
1643 read_buffer_.get(), read_buffer_->size(), callback_.callback())); 1662 read_buffer_.get(), read_buffer_->size(), callback_.callback()));
1644 1663
1645 // Callback should return 1664 // Callback should return
1646 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete()); 1665 EXPECT_TRUE(promised_stream_->IsResponseBodyComplete());
1647 EXPECT_TRUE(AtEof()); 1666 EXPECT_TRUE(AtEof());
1648 1667
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1706 response_headers_ = promised_response_.Clone(); 1725 response_headers_ = promised_response_.Clone();
1707 size_t spdy_response_headers_frame_length; 1726 size_t spdy_response_headers_frame_length;
1708 ProcessPacket(InnerConstructResponseHeadersPacket( 1727 ProcessPacket(InnerConstructResponseHeadersPacket(
1709 1, promise_id_, false, &spdy_response_headers_frame_length)); 1728 1, promise_id_, false, &spdy_response_headers_frame_length));
1710 1729
1711 base::RunLoop().RunUntilIdle(); 1730 base::RunLoop().RunUntilIdle();
1712 1731
1713 // Rendezvous should have failed due to vary mismatch, so the 1732 // Rendezvous should have failed due to vary mismatch, so the
1714 // promised stream should have been aborted, and instead we have a 1733 // promised stream should have been aborted, and instead we have a
1715 // new, regular client initiated stream. 1734 // new, regular client initiated stream.
1716 EXPECT_EQ(OK, callback_.WaitForResult()); 1735 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1717 1736
1718 // Not a server-initiated stream. 1737 // Not a server-initiated stream.
1719 EXPECT_NE( 1738 EXPECT_NE(
1720 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1739 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1721 ->id(), 1740 ->id(),
1722 promise_id_); 1741 promise_id_);
1723 1742
1724 // Instead, a new client-initiated stream. 1743 // Instead, a new client-initiated stream.
1725 EXPECT_EQ( 1744 EXPECT_EQ(
1726 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get()) 1745 QuicHttpStreamPeer::GetQuicChromiumClientStream(promised_stream_.get())
1727 ->id(), 1746 ->id(),
1728 stream_id_ + 2); 1747 stream_id_ + 2);
1729 1748
1730 // After rendezvous failure, the push stream has been cancelled. 1749 // After rendezvous failure, the push stream has been cancelled.
1731 EXPECT_EQ(session_->GetPromisedByUrl(promise_url_), nullptr); 1750 EXPECT_EQ(session_->GetPromisedByUrl(promise_url_), nullptr);
1732 1751
1733 // The rest of the test verifies that the retried as 1752 // The rest of the test verifies that the retried as
1734 // client-initiated version of |promised_stream_| works as intended. 1753 // client-initiated version of |promised_stream_| works as intended.
1735 1754
1736 // Ack the request. 1755 // Ack the request.
1737 ProcessPacket(ConstructServerAckPacket(2, 0, 0)); 1756 ProcessPacket(ConstructServerAckPacket(2, 0, 0));
1738 1757
1739 SetResponse("404 Not Found", string()); 1758 SetResponse("404 Not Found", string());
1740 size_t spdy_response_header_frame_length; 1759 size_t spdy_response_header_frame_length;
1741 ProcessPacket(InnerConstructResponseHeadersPacket( 1760 ProcessPacket(InnerConstructResponseHeadersPacket(
1742 3, stream_id_ + 2, kFin, &spdy_response_header_frame_length)); 1761 3, stream_id_ + 2, kFin, &spdy_response_header_frame_length));
1743 1762
1744 base::RunLoop().RunUntilIdle(); 1763 base::RunLoop().RunUntilIdle();
1745 1764
1746 EXPECT_EQ(OK, promised_stream_->ReadResponseHeaders(callback_.callback())); 1765 EXPECT_THAT(promised_stream_->ReadResponseHeaders(callback_.callback()),
1766 IsOk());
1747 ASSERT_TRUE(response_.headers.get()); 1767 ASSERT_TRUE(response_.headers.get());
1748 EXPECT_EQ(404, response_.headers->response_code()); 1768 EXPECT_EQ(404, response_.headers->response_code());
1749 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain")); 1769 EXPECT_TRUE(response_.headers->HasHeaderValue("Content-Type", "text/plain"));
1750 EXPECT_FALSE(response_.response_time.is_null()); 1770 EXPECT_FALSE(response_.response_time.is_null());
1751 EXPECT_FALSE(response_.request_time.is_null()); 1771 EXPECT_FALSE(response_.request_time.is_null());
1752 1772
1753 // There is no body, so this should return immediately. 1773 // There is no body, so this should return immediately.
1754 EXPECT_EQ( 1774 EXPECT_EQ(
1755 0, promised_stream_->ReadResponseBody( 1775 0, promised_stream_->ReadResponseBody(
1756 read_buffer_.get(), read_buffer_->size(), callback_.callback())); 1776 read_buffer_.get(), read_buffer_->size(), callback_.callback()));
(...skipping 26 matching lines...) Expand all
1783 request_.url = GURL("http://www.example.org/"); 1803 request_.url = GURL("http://www.example.org/");
1784 request_.upload_data_stream = &upload_data_stream; 1804 request_.upload_data_stream = &upload_data_stream;
1785 ASSERT_EQ(OK, request_.upload_data_stream->Init( 1805 ASSERT_EQ(OK, request_.upload_data_stream->Init(
1786 TestCompletionCallback().callback())); 1806 TestCompletionCallback().callback()));
1787 1807
1788 EXPECT_EQ(OK, 1808 EXPECT_EQ(OK,
1789 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1809 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1790 net_log_.bound(), callback_.callback())); 1810 net_log_.bound(), callback_.callback()));
1791 1811
1792 int result = stream_->SendRequest(headers_, &response_, callback_.callback()); 1812 int result = stream_->SendRequest(headers_, &response_, callback_.callback());
1793 EXPECT_EQ(ERR_FAILED, result); 1813 EXPECT_THAT(result, IsError(ERR_FAILED));
1794 1814
1795 EXPECT_TRUE(AtEof()); 1815 EXPECT_TRUE(AtEof());
1796 1816
1797 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers. 1817 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers.
1798 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1818 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1799 stream_->GetTotalSentBytes()); 1819 stream_->GetTotalSentBytes());
1800 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1820 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1801 } 1821 }
1802 1822
1803 TEST_P(QuicHttpStreamTest, DataReadErrorAsynchronous) { 1823 TEST_P(QuicHttpStreamTest, DataReadErrorAsynchronous) {
(...skipping 15 matching lines...) Expand all
1819 1839
1820 EXPECT_EQ(OK, 1840 EXPECT_EQ(OK,
1821 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1841 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1822 net_log_.bound(), callback_.callback())); 1842 net_log_.bound(), callback_.callback()));
1823 1843
1824 int result = stream_->SendRequest(headers_, &response_, callback_.callback()); 1844 int result = stream_->SendRequest(headers_, &response_, callback_.callback());
1825 1845
1826 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1846 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1827 SetResponse("200 OK", string()); 1847 SetResponse("200 OK", string());
1828 1848
1829 EXPECT_EQ(ERR_IO_PENDING, result); 1849 EXPECT_THAT(result, IsError(ERR_IO_PENDING));
1830 EXPECT_EQ(ERR_FAILED, callback_.GetResult(result)); 1850 EXPECT_THAT(callback_.GetResult(result), IsError(ERR_FAILED));
1831 1851
1832 EXPECT_TRUE(AtEof()); 1852 EXPECT_TRUE(AtEof());
1833 1853
1834 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers. 1854 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers.
1835 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1855 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1836 stream_->GetTotalSentBytes()); 1856 stream_->GetTotalSentBytes());
1837 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1857 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1838 } 1858 }
1839 1859
1840 } // namespace test 1860 } // namespace test
1841 } // namespace net 1861 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_end_to_end_unittest.cc ('k') | net/quic/quic_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698