Commit 1f7384c5 authored by Renjie Tang's avatar Renjie Tang Committed by Commit Bot

Enable TLS1.3 in QuicChromiumClientStreamTest.

Change-Id: I0861e5a870f2e43f45d971b8c6b6530ac72db59d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1918836
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715830}
parent a1aa4dd2
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "net/third_party/quiche/src/quic/core/quic_utils.h" #include "net/third_party/quiche/src/quic/core/quic_utils.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h" #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
#include "net/third_party/quiche/src/quic/test_tools/crypto_test_utils.h" #include "net/third_party/quiche/src/quic/test_tools/crypto_test_utils.h"
#include "net/third_party/quiche/src/quic/test_tools/quic_config_peer.h"
#include "net/third_party/quiche/src/quic/test_tools/quic_spdy_session_peer.h" #include "net/third_party/quiche/src/quic/test_tools/quic_spdy_session_peer.h"
#include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h" #include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
...@@ -151,22 +152,30 @@ MockQuicClientSessionBase::MockQuicClientSessionBase( ...@@ -151,22 +152,30 @@ MockQuicClientSessionBase::MockQuicClientSessionBase(
MockQuicClientSessionBase::~MockQuicClientSessionBase() {} MockQuicClientSessionBase::~MockQuicClientSessionBase() {}
class QuicChromiumClientStreamTest class QuicChromiumClientStreamTest
: public ::testing::TestWithParam<quic::QuicTransportVersion>, : public ::testing::TestWithParam<quic::ParsedQuicVersion>,
public WithTaskEnvironment { public WithTaskEnvironment {
public: public:
QuicChromiumClientStreamTest() QuicChromiumClientStreamTest()
: crypto_config_( : version_(GetParam()),
crypto_config_(
quic::test::crypto_test_utils::ProofVerifierForTesting()), quic::test::crypto_test_utils::ProofVerifierForTesting()),
session_(new quic::test::MockQuicConnection( session_(new quic::test::MockQuicConnection(
&helper_, &helper_,
&alarm_factory_, &alarm_factory_,
quic::Perspective::IS_CLIENT, quic::Perspective::IS_CLIENT,
quic::test::SupportedVersions( quic::test::SupportedVersions(version_)),
quic::ParsedQuicVersion(quic::PROTOCOL_QUIC_CRYPTO,
GetParam()))),
&push_promise_index_) { &push_promise_index_) {
quic::test::QuicConfigPeer::SetReceivedInitialSessionFlowControlWindow(
session_.config(), quic::kMinimumFlowControlSendWindow);
quic::test::QuicConfigPeer::
SetReceivedInitialMaxStreamDataBytesOutgoingBidirectional(
session_.config(), quic::kMinimumFlowControlSendWindow);
quic::test::QuicConfigPeer::SetReceivedMaxIncomingUnidirectionalStreams(
session_.config(), 10);
session_.OnConfigNegotiated();
stream_ = new QuicChromiumClientStream( stream_ = new QuicChromiumClientStream(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
&session_, quic::BIDIRECTIONAL, NetLogWithSource(), &session_, quic::BIDIRECTIONAL, NetLogWithSource(),
TRAFFIC_ANNOTATION_FOR_TESTS); TRAFFIC_ANNOTATION_FOR_TESTS);
session_.ActivateStream(base::WrapUnique(stream_)); session_.ActivateStream(base::WrapUnique(stream_));
...@@ -251,7 +260,7 @@ class QuicChromiumClientStreamTest ...@@ -251,7 +260,7 @@ class QuicChromiumClientStreamTest
} }
std::string ConstructDataHeader(size_t body_len) { std::string ConstructDataHeader(size_t body_len) {
if (GetParam() != quic::QUIC_VERSION_99) { if (version_.transport_version != quic::QUIC_VERSION_99) {
return ""; return "";
} }
std::unique_ptr<char[]> buffer; std::unique_ptr<char[]> buffer;
...@@ -260,6 +269,7 @@ class QuicChromiumClientStreamTest ...@@ -260,6 +269,7 @@ class QuicChromiumClientStreamTest
return std::string(buffer.get(), header_length); return std::string(buffer.get(), header_length);
} }
const quic::ParsedQuicVersion version_;
quic::QuicCryptoClientConfig crypto_config_; quic::QuicCryptoClientConfig crypto_config_;
std::unique_ptr<QuicChromiumClientStream::Handle> handle_; std::unique_ptr<QuicChromiumClientStream::Handle> handle_;
std::unique_ptr<QuicChromiumClientStream::Handle> handle2_; std::unique_ptr<QuicChromiumClientStream::Handle> handle2_;
...@@ -272,17 +282,16 @@ class QuicChromiumClientStreamTest ...@@ -272,17 +282,16 @@ class QuicChromiumClientStreamTest
quic::QuicClientPushPromiseIndex push_promise_index_; quic::QuicClientPushPromiseIndex push_promise_index_;
}; };
INSTANTIATE_TEST_SUITE_P( INSTANTIATE_TEST_SUITE_P(Version,
Version,
QuicChromiumClientStreamTest, QuicChromiumClientStreamTest,
::testing::ValuesIn(quic::AllSupportedTransportVersions()), ::testing::ValuesIn(quic::AllSupportedVersions()),
::testing::PrintToStringParamName()); ::testing::PrintToStringParamName());
TEST_P(QuicChromiumClientStreamTest, Handle) { TEST_P(QuicChromiumClientStreamTest, Handle) {
testing::InSequence seq; testing::InSequence seq;
EXPECT_TRUE(handle_->IsOpen()); EXPECT_TRUE(handle_->IsOpen());
EXPECT_EQ( EXPECT_EQ(quic::test::GetNthClientInitiatedBidirectionalStreamId(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), version_.transport_version, 0),
handle_->id()); handle_->id());
EXPECT_EQ(quic::QUIC_NO_ERROR, handle_->connection_error()); EXPECT_EQ(quic::QUIC_NO_ERROR, handle_->connection_error());
EXPECT_EQ(quic::QUIC_STREAM_NO_ERROR, handle_->stream_error()); EXPECT_EQ(quic::QUIC_STREAM_NO_ERROR, handle_->stream_error());
...@@ -298,7 +307,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) { ...@@ -298,7 +307,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) {
quic::QuicStreamOffset offset = 0; quic::QuicStreamOffset offset = 0;
ProcessHeadersFull(headers_); ProcessHeadersFull(headers_);
quic::QuicStreamFrame frame2( quic::QuicStreamFrame frame2(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
true, offset, quic::QuicStringPiece()); true, offset, quic::QuicStringPiece());
stream_->OnStreamFrame(frame2); stream_->OnStreamFrame(frame2);
EXPECT_TRUE(handle_->fin_received()); EXPECT_TRUE(handle_->fin_received());
...@@ -309,7 +319,7 @@ TEST_P(QuicChromiumClientStreamTest, Handle) { ...@@ -309,7 +319,7 @@ TEST_P(QuicChromiumClientStreamTest, Handle) {
// All data written. // All data written.
std::string header = ConstructDataHeader(kDataLen); std::string header = ConstructDataHeader(kDataLen);
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
} }
...@@ -321,8 +331,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) { ...@@ -321,8 +331,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) {
true, callback.callback())); true, callback.callback()));
EXPECT_FALSE(handle_->IsOpen()); EXPECT_FALSE(handle_->IsOpen());
EXPECT_EQ( EXPECT_EQ(quic::test::GetNthClientInitiatedBidirectionalStreamId(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), version_.transport_version, 0),
handle_->id()); handle_->id());
EXPECT_EQ(quic::QUIC_NO_ERROR, handle_->connection_error()); EXPECT_EQ(quic::QUIC_NO_ERROR, handle_->connection_error());
EXPECT_EQ(quic::QUIC_STREAM_NO_ERROR, handle_->stream_error()); EXPECT_EQ(quic::QUIC_STREAM_NO_ERROR, handle_->stream_error());
...@@ -352,8 +362,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) { ...@@ -352,8 +362,8 @@ TEST_P(QuicChromiumClientStreamTest, Handle) {
TEST_P(QuicChromiumClientStreamTest, HandleAfterConnectionClose) { TEST_P(QuicChromiumClientStreamTest, HandleAfterConnectionClose) {
EXPECT_CALL( EXPECT_CALL(
session_, session_,
SendRstStream( SendRstStream(quic::test::GetNthClientInitiatedBidirectionalStreamId(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), version_.transport_version, 0),
quic::QUIC_RST_ACKNOWLEDGEMENT, 0)); quic::QUIC_RST_ACKNOWLEDGEMENT, 0));
stream_->OnConnectionClosed(quic::QUIC_INVALID_FRAME_DATA, stream_->OnConnectionClosed(quic::QUIC_INVALID_FRAME_DATA,
quic::ConnectionCloseSource::FROM_PEER); quic::ConnectionCloseSource::FROM_PEER);
...@@ -366,13 +376,14 @@ TEST_P(QuicChromiumClientStreamTest, HandleAfterStreamReset) { ...@@ -366,13 +376,14 @@ TEST_P(QuicChromiumClientStreamTest, HandleAfterStreamReset) {
// Verify that the Handle still behaves correctly after the stream is reset. // Verify that the Handle still behaves correctly after the stream is reset.
quic::QuicRstStreamFrame rst( quic::QuicRstStreamFrame rst(
quic::kInvalidControlFrameId, quic::kInvalidControlFrameId,
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
quic::QUIC_STREAM_CANCELLED, 0); quic::QUIC_STREAM_CANCELLED, 0);
if (GetParam() != quic::QUIC_VERSION_99) { if (version_.transport_version != quic::QUIC_VERSION_99) {
EXPECT_CALL( EXPECT_CALL(
session_, session_,
SendRstStream(quic::test::GetNthClientInitiatedBidirectionalStreamId( SendRstStream(quic::test::GetNthClientInitiatedBidirectionalStreamId(
GetParam(), 0), version_.transport_version, 0),
quic::QUIC_RST_ACKNOWLEDGEMENT, 0)); quic::QUIC_RST_ACKNOWLEDGEMENT, 0));
} else { } else {
// Intercept & check that the call to the QuicConnection's OnStreamReast // Intercept & check that the call to the QuicConnection's OnStreamReast
...@@ -388,13 +399,14 @@ TEST_P(QuicChromiumClientStreamTest, HandleAfterStreamReset) { ...@@ -388,13 +399,14 @@ TEST_P(QuicChromiumClientStreamTest, HandleAfterStreamReset) {
} }
stream_->OnStreamReset(rst); stream_->OnStreamReset(rst);
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
// Make a STOP_SENDING frame and pass it to QUIC. For V99/IETF QUIC, // Make a STOP_SENDING frame and pass it to QUIC. For V99/IETF QUIC,
// we need both a REST_STREAM and a STOP_SENDING to effect a closed // we need both a REST_STREAM and a STOP_SENDING to effect a closed
// stream. // stream.
quic::QuicStopSendingFrame stop_sending_frame( quic::QuicStopSendingFrame stop_sending_frame(
quic::kInvalidControlFrameId, quic::kInvalidControlFrameId,
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
quic::QUIC_STREAM_CANCELLED); quic::QUIC_STREAM_CANCELLED);
session_.OnStopSendingFrame(stop_sending_frame); session_.OnStopSendingFrame(stop_sending_frame);
} }
...@@ -407,7 +419,8 @@ TEST_P(QuicChromiumClientStreamTest, OnFinRead) { ...@@ -407,7 +419,8 @@ TEST_P(QuicChromiumClientStreamTest, OnFinRead) {
quic::QuicStreamOffset offset = 0; quic::QuicStreamOffset offset = 0;
ProcessHeadersFull(headers_); ProcessHeadersFull(headers_);
quic::QuicStreamFrame frame2( quic::QuicStreamFrame frame2(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
true, offset, quic::QuicStringPiece()); true, offset, quic::QuicStringPiece());
stream_->OnStreamFrame(frame2); stream_->OnStreamFrame(frame2);
} }
...@@ -419,16 +432,18 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailable) { ...@@ -419,16 +432,18 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailable) {
const char data[] = "hello world!"; const char data[] = "hello world!";
int data_len = strlen(data); int data_len = strlen(data);
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, data)); /*offset=*/offset, data));
...@@ -455,17 +470,19 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableAfterReadBody) { ...@@ -455,17 +470,19 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableAfterReadBody) {
handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback())); handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, data)); /*offset=*/offset, data));
...@@ -480,8 +497,8 @@ TEST_P(QuicChromiumClientStreamTest, ProcessHeadersWithError) { ...@@ -480,8 +497,8 @@ TEST_P(QuicChromiumClientStreamTest, ProcessHeadersWithError) {
bad_headers["NAME"] = "..."; bad_headers["NAME"] = "...";
EXPECT_CALL( EXPECT_CALL(
session_, session_,
SendRstStream( SendRstStream(quic::test::GetNthClientInitiatedBidirectionalStreamId(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), version_.transport_version, 0),
quic::QUIC_BAD_APPLICATION_PAYLOAD, 0)); quic::QUIC_BAD_APPLICATION_PAYLOAD, 0));
auto headers = quic::test::AsHeaderList(bad_headers); auto headers = quic::test::AsHeaderList(bad_headers);
...@@ -497,8 +514,8 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableWithError) { ...@@ -497,8 +514,8 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableWithError) {
ProcessHeadersFull(headers_); ProcessHeadersFull(headers_);
EXPECT_CALL( EXPECT_CALL(
session_, session_,
SendRstStream( SendRstStream(quic::test::GetNthClientInitiatedBidirectionalStreamId(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), version_.transport_version, 0),
quic::QUIC_STREAM_CANCELLED, 0)); quic::QUIC_STREAM_CANCELLED, 0));
const char data[] = "hello world!"; const char data[] = "hello world!";
...@@ -516,16 +533,18 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableWithError) { ...@@ -516,16 +533,18 @@ TEST_P(QuicChromiumClientStreamTest, OnDataAvailableWithError) {
// Receive the data and close the stream during the callback. // Receive the data and close the stream during the callback.
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/0, data)); /*offset=*/0, data));
...@@ -546,16 +565,18 @@ TEST_P(QuicChromiumClientStreamTest, OnTrailers) { ...@@ -546,16 +565,18 @@ TEST_P(QuicChromiumClientStreamTest, OnTrailers) {
const char data[] = "hello world!"; const char data[] = "hello world!";
int data_len = strlen(data); int data_len = strlen(data);
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, data)); /*offset=*/offset, data));
...@@ -569,7 +590,7 @@ TEST_P(QuicChromiumClientStreamTest, OnTrailers) { ...@@ -569,7 +590,7 @@ TEST_P(QuicChromiumClientStreamTest, OnTrailers) {
spdy::SpdyHeaderBlock trailers; spdy::SpdyHeaderBlock trailers;
trailers["bar"] = "foo"; trailers["bar"] = "foo";
if (GetParam() != quic::QUIC_VERSION_99) { if (version_.transport_version != quic::QUIC_VERSION_99) {
trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data)); trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data));
} }
...@@ -600,16 +621,18 @@ TEST_P(QuicChromiumClientStreamTest, MarkTrailersConsumedWhenNotifyDelegate) { ...@@ -600,16 +621,18 @@ TEST_P(QuicChromiumClientStreamTest, MarkTrailersConsumedWhenNotifyDelegate) {
const char data[] = "hello world!"; const char data[] = "hello world!";
int data_len = strlen(data); int data_len = strlen(data);
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, data)); /*offset=*/offset, data));
...@@ -628,7 +651,7 @@ TEST_P(QuicChromiumClientStreamTest, MarkTrailersConsumedWhenNotifyDelegate) { ...@@ -628,7 +651,7 @@ TEST_P(QuicChromiumClientStreamTest, MarkTrailersConsumedWhenNotifyDelegate) {
spdy::SpdyHeaderBlock trailers; spdy::SpdyHeaderBlock trailers;
trailers["bar"] = "foo"; trailers["bar"] = "foo";
if (GetParam() != quic::QUIC_VERSION_99) { if (version_.transport_version != quic::QUIC_VERSION_99) {
trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data)); trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data));
} }
quic::QuicHeaderList t = ProcessTrailers(trailers); quic::QuicHeaderList t = ProcessTrailers(trailers);
...@@ -661,16 +684,18 @@ TEST_P(QuicChromiumClientStreamTest, ReadAfterTrailersReceivedButNotDelivered) { ...@@ -661,16 +684,18 @@ TEST_P(QuicChromiumClientStreamTest, ReadAfterTrailersReceivedButNotDelivered) {
const char data[] = "hello world!"; const char data[] = "hello world!";
int data_len = strlen(data); int data_len = strlen(data);
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(data_len); std::string header = ConstructDataHeader(data_len);
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, header)); /*offset=*/offset, header));
offset += header.length(); offset += header.length();
} }
stream_->OnStreamFrame(quic::QuicStreamFrame( stream_->OnStreamFrame(quic::QuicStreamFrame(
quic::test::GetNthClientInitiatedBidirectionalStreamId(GetParam(), 0), quic::test::GetNthClientInitiatedBidirectionalStreamId(
version_.transport_version, 0),
/*fin=*/false, /*fin=*/false,
/*offset=*/offset, data)); /*offset=*/offset, data));
...@@ -685,7 +710,7 @@ TEST_P(QuicChromiumClientStreamTest, ReadAfterTrailersReceivedButNotDelivered) { ...@@ -685,7 +710,7 @@ TEST_P(QuicChromiumClientStreamTest, ReadAfterTrailersReceivedButNotDelivered) {
// Deliver trailers. Delegate notification is posted asynchronously. // Deliver trailers. Delegate notification is posted asynchronously.
spdy::SpdyHeaderBlock trailers; spdy::SpdyHeaderBlock trailers;
trailers["bar"] = "foo"; trailers["bar"] = "foo";
if (GetParam() != quic::QUIC_VERSION_99) { if (version_.transport_version != quic::QUIC_VERSION_99) {
trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data)); trailers[quic::kFinalOffsetHeaderKey] = base::NumberToString(strlen(data));
} }
...@@ -726,7 +751,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamData) { ...@@ -726,7 +751,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamData) {
const size_t kDataLen = base::size(kData1); const size_t kDataLen = base::size(kData1);
// All data written. // All data written.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(kDataLen); std::string header = ConstructDataHeader(kDataLen);
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
...@@ -754,7 +779,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) { ...@@ -754,7 +779,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) {
ASSERT_FALSE(callback.have_result()); ASSERT_FALSE(callback.have_result());
// All data written. // All data written.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(kDataLen); std::string header = ConstructDataHeader(kDataLen);
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
...@@ -763,7 +788,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) { ...@@ -763,7 +788,7 @@ TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) {
.WillOnce(Return(quic::QuicConsumedData(kDataLen, true))); .WillOnce(Return(quic::QuicConsumedData(kDataLen, true)));
stream_->OnCanWrite(); stream_->OnCanWrite();
// Do 2 writes in version 99. // Do 2 writes in version 99.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
stream_->OnCanWrite(); stream_->OnCanWrite();
} }
ASSERT_TRUE(callback.have_result()); ASSERT_TRUE(callback.have_result());
...@@ -778,14 +803,14 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamData) { ...@@ -778,14 +803,14 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamData) {
base::MakeRefCounted<StringIOBuffer>("Just a small payload"); base::MakeRefCounted<StringIOBuffer>("Just a small payload");
// All data written. // All data written.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(buf1->size()); std::string header = ConstructDataHeader(buf1->size());
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
} }
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(buf1->size(), false))); .WillOnce(Return(quic::QuicConsumedData(buf1->size(), false)));
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(buf2->size()); std::string header = ConstructDataHeader(buf2->size());
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
...@@ -806,7 +831,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) { ...@@ -806,7 +831,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) {
base::MakeRefCounted<StringIOBuffer>("Just a small payload"); base::MakeRefCounted<StringIOBuffer>("Just a small payload");
// Only a part of the data is written. // Only a part of the data is written.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(buf1->size()); std::string header = ConstructDataHeader(buf1->size());
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
...@@ -825,7 +850,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) { ...@@ -825,7 +850,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) {
ASSERT_FALSE(callback.have_result()); ASSERT_FALSE(callback.have_result());
// The second piece of data is written. // The second piece of data is written.
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(buf2->size()); std::string header = ConstructDataHeader(buf2->size());
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(header.length(), false))); .WillOnce(Return(quic::QuicConsumedData(header.length(), false)));
...@@ -833,7 +858,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) { ...@@ -833,7 +858,7 @@ TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) {
EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _)) EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
.WillOnce(Return(quic::QuicConsumedData(buf2->size(), true))); .WillOnce(Return(quic::QuicConsumedData(buf2->size(), true)));
stream_->OnCanWrite(); stream_->OnCanWrite();
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
stream_->OnCanWrite(); stream_->OnCanWrite();
} }
ASSERT_TRUE(callback.have_result()); ASSERT_TRUE(callback.have_result());
...@@ -882,7 +907,7 @@ TEST_P(QuicChromiumClientStreamTest, HeadersAndDataBeforeHandle) { ...@@ -882,7 +907,7 @@ TEST_P(QuicChromiumClientStreamTest, HeadersAndDataBeforeHandle) {
const char data[] = "hello world!"; const char data[] = "hello world!";
size_t offset = 0; size_t offset = 0;
if (GetParam() == quic::QUIC_VERSION_99) { if (version_.transport_version == quic::QUIC_VERSION_99) {
std::string header = ConstructDataHeader(strlen(data)); std::string header = ConstructDataHeader(strlen(data));
stream2->OnStreamFrame(quic::QuicStreamFrame(stream_id, stream2->OnStreamFrame(quic::QuicStreamFrame(stream_id,
/*fin=*/false, /*fin=*/false,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment