| Index: net/quic/chromium/quic_chromium_client_session_test.cc
|
| diff --git a/net/quic/chromium/quic_chromium_client_session_test.cc b/net/quic/chromium/quic_chromium_client_session_test.cc
|
| index 2242250837c9f5290a999a250bd8be39a88986bf..b8390fd2a275cf6c7c44165b512d99b365d5ac37 100644
|
| --- a/net/quic/chromium/quic_chromium_client_session_test.cc
|
| +++ b/net/quic/chromium/quic_chromium_client_session_test.cc
|
| @@ -37,7 +37,6 @@
|
| #include "net/quic/platform/api/quic_flags.h"
|
| #include "net/quic/test_tools/crypto_test_utils.h"
|
| #include "net/quic/test_tools/quic_client_promised_info_peer.h"
|
| -#include "net/quic/test_tools/quic_spdy_session_peer.h"
|
| #include "net/quic/test_tools/quic_test_utils.h"
|
| #include "net/quic/test_tools/simple_quic_framer.h"
|
| #include "net/socket/datagram_client_socket.h"
|
| @@ -156,6 +155,14 @@ class QuicChromiumClientSessionTest
|
| return writer.release();
|
| }
|
|
|
| + QuicStreamId GetNthClientInitiatedStreamId(int n) {
|
| + return test::GetNthClientInitiatedStreamId(GetParam(), n);
|
| + }
|
| +
|
| + QuicStreamId GetNthServerInitiatedStreamId(int n) {
|
| + return test::GetNthServerInitiatedStreamId(GetParam(), n);
|
| + }
|
| +
|
| QuicCryptoClientConfig crypto_config_;
|
| TestNetLog net_log_;
|
| BoundTestNetLog bound_test_net_log_;
|
| @@ -267,8 +274,8 @@ TEST_P(QuicChromiumClientSessionTest, StreamRequestBeforeConfirmation) {
|
| TEST_P(QuicChromiumClientSessionTest, CancelStreamRequestBeforeRelease) {
|
| MockQuicData quic_data;
|
| quic_data.AddWrite(client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| - quic_data.AddWrite(client_maker_.MakeRstPacket(2, true, kClientDataStreamId1,
|
| - QUIC_STREAM_CANCELLED));
|
| + quic_data.AddWrite(client_maker_.MakeRstPacket(
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_STREAM_CANCELLED));
|
| quic_data.AddRead(ASYNC, ERR_IO_PENDING);
|
| quic_data.AddRead(ASYNC, OK); // EOF
|
| quic_data.AddSocketDataToFactory(&socket_factory_);
|
| @@ -291,8 +298,8 @@ TEST_P(QuicChromiumClientSessionTest, CancelStreamRequestBeforeRelease) {
|
| TEST_P(QuicChromiumClientSessionTest, AsyncStreamRequest) {
|
| MockQuicData quic_data;
|
| quic_data.AddWrite(client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| - quic_data.AddWrite(client_maker_.MakeRstPacket(2, true, kClientDataStreamId1,
|
| - QUIC_RST_ACKNOWLEDGEMENT));
|
| + quic_data.AddWrite(client_maker_.MakeRstPacket(
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
| quic_data.AddRead(ASYNC, ERR_IO_PENDING);
|
| quic_data.AddRead(ASYNC, OK); // EOF
|
| quic_data.AddSocketDataToFactory(&socket_factory_);
|
| @@ -315,7 +322,8 @@ TEST_P(QuicChromiumClientSessionTest, AsyncStreamRequest) {
|
| ASSERT_EQ(ERR_IO_PENDING, stream_request->StartRequest(callback.callback()));
|
|
|
| // Close a stream and ensure the stream request completes.
|
| - QuicRstStreamFrame rst(kClientDataStreamId1, QUIC_STREAM_CANCELLED, 0);
|
| + QuicRstStreamFrame rst(GetNthClientInitiatedStreamId(0),
|
| + QUIC_STREAM_CANCELLED, 0);
|
| session_->OnRstStream(rst);
|
| ASSERT_TRUE(callback.have_result());
|
| EXPECT_THAT(callback.WaitForResult(), IsOk());
|
| @@ -329,8 +337,8 @@ TEST_P(QuicChromiumClientSessionTest, AsyncStreamRequest) {
|
| TEST_P(QuicChromiumClientSessionTest, CancelPendingStreamRequest) {
|
| MockQuicData quic_data;
|
| quic_data.AddWrite(client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| - quic_data.AddWrite(client_maker_.MakeRstPacket(2, true, kClientDataStreamId1,
|
| - QUIC_RST_ACKNOWLEDGEMENT));
|
| + quic_data.AddWrite(client_maker_.MakeRstPacket(
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
| quic_data.AddRead(ASYNC, ERR_IO_PENDING);
|
| quic_data.AddRead(ASYNC, OK); // EOF
|
| quic_data.AddSocketDataToFactory(&socket_factory_);
|
| @@ -356,7 +364,8 @@ TEST_P(QuicChromiumClientSessionTest, CancelPendingStreamRequest) {
|
| stream_request.reset();
|
|
|
| // Close a stream and ensure that no new stream is created.
|
| - QuicRstStreamFrame rst(kClientDataStreamId1, QUIC_STREAM_CANCELLED, 0);
|
| + QuicRstStreamFrame rst(GetNthClientInitiatedStreamId(0),
|
| + QUIC_STREAM_CANCELLED, 0);
|
| session_->OnRstStream(rst);
|
| EXPECT_EQ(kMaxOpenStreams - 1, session_->GetNumOpenOutgoingStreams());
|
|
|
| @@ -453,7 +462,7 @@ TEST_P(QuicChromiumClientSessionTest, MaxNumStreams) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -492,7 +501,7 @@ TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT));
|
| + 2, true, GetNthServerInitiatedStreamId(0), QUIC_PUSH_STREAM_TIMED_OUT));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -519,11 +528,11 @@ TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) {
|
| promise_headers[":path"] = "/pushed.jpg";
|
|
|
| // Receive a PUSH PROMISE from the server.
|
| - EXPECT_TRUE(session_->HandlePromised(stream->id(), kServerDataStreamId1,
|
| - promise_headers));
|
| + EXPECT_TRUE(session_->HandlePromised(
|
| + stream->id(), GetNthServerInitiatedStreamId(0), promise_headers));
|
|
|
| QuicClientPromisedInfo* promised =
|
| - session_->GetPromisedById(kServerDataStreamId1);
|
| + session_->GetPromisedById(GetNthServerInitiatedStreamId(0));
|
| EXPECT_TRUE(promised);
|
| // Fire alarm to time out the push stream.
|
| alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised));
|
| @@ -541,7 +550,7 @@ TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT));
|
| + 2, true, GetNthServerInitiatedStreamId(0), QUIC_PUSH_STREAM_TIMED_OUT));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -567,17 +576,19 @@ TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) {
|
| promise_headers[":scheme"] = "https";
|
| promise_headers[":path"] = "/pushed.jpg";
|
|
|
| - session_->GetOrCreateStream(kServerDataStreamId1);
|
| + session_->GetOrCreateStream(GetNthServerInitiatedStreamId(0));
|
| // Receive a PUSH PROMISE from the server.
|
| - EXPECT_TRUE(session_->HandlePromised(stream->id(), kServerDataStreamId1,
|
| - promise_headers));
|
| - session_->OnInitialHeadersComplete(kServerDataStreamId1, SpdyHeaderBlock());
|
| + EXPECT_TRUE(session_->HandlePromised(
|
| + stream->id(), GetNthServerInitiatedStreamId(0), promise_headers));
|
| + session_->OnInitialHeadersComplete(GetNthServerInitiatedStreamId(0),
|
| + SpdyHeaderBlock());
|
| // Read data on the pushed stream.
|
| - QuicStreamFrame data(kServerDataStreamId1, false, 0, QuicStringPiece("SP"));
|
| + QuicStreamFrame data(GetNthServerInitiatedStreamId(0), false, 0,
|
| + QuicStringPiece("SP"));
|
| session_->OnStreamFrame(data);
|
|
|
| QuicClientPromisedInfo* promised =
|
| - session_->GetPromisedById(kServerDataStreamId1);
|
| + session_->GetPromisedById(GetNthServerInitiatedStreamId(0));
|
| EXPECT_TRUE(promised);
|
| // Fire alarm to time out the push stream.
|
| alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised));
|
| @@ -592,7 +603,7 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
|
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| @@ -620,11 +631,11 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) {
|
| promise_headers[":path"] = "/pushed.jpg";
|
|
|
| // Receive a PUSH PROMISE from the server.
|
| - EXPECT_TRUE(session_->HandlePromised(stream->id(), kServerDataStreamId1,
|
| - promise_headers));
|
| + EXPECT_TRUE(session_->HandlePromised(
|
| + stream->id(), GetNthServerInitiatedStreamId(0), promise_headers));
|
|
|
| QuicClientPromisedInfo* promised =
|
| - session_->GetPromisedById(kServerDataStreamId1);
|
| + session_->GetPromisedById(GetNthServerInitiatedStreamId(0));
|
| EXPECT_TRUE(promised);
|
|
|
| // Initiate rendezvous.
|
| @@ -638,7 +649,7 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) {
|
| EXPECT_TRUE(session_->GetPromisedByUrl(pushed_url.spec()));
|
|
|
| // Reset the stream now before tear down.
|
| - session_->CloseStream(kClientDataStreamId1);
|
| + session_->CloseStream(GetNthClientInitiatedStreamId(0));
|
| }
|
|
|
| TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) {
|
| @@ -647,7 +658,7 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
|
| + 2, true, GetNthServerInitiatedStreamId(0), QUIC_STREAM_CANCELLED));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -674,11 +685,11 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) {
|
| promise_headers[":path"] = "/pushed.jpg";
|
|
|
| // Receive a PUSH PROMISE from the server.
|
| - EXPECT_TRUE(session_->HandlePromised(stream->id(), kServerDataStreamId1,
|
| - promise_headers));
|
| + EXPECT_TRUE(session_->HandlePromised(
|
| + stream->id(), GetNthServerInitiatedStreamId(0), promise_headers));
|
|
|
| QuicClientPromisedInfo* promised =
|
| - session_->GetPromisedById(kServerDataStreamId1);
|
| + session_->GetPromisedById(GetNthServerInitiatedStreamId(0));
|
| EXPECT_TRUE(promised);
|
| // Cancel the push before receiving the response to the pushed request.
|
| GURL pushed_url("https://www.example.org/pushed.jpg");
|
| @@ -697,7 +708,7 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
|
| + 2, true, GetNthServerInitiatedStreamId(0), QUIC_STREAM_CANCELLED));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -723,17 +734,19 @@ TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) {
|
| promise_headers[":scheme"] = "https";
|
| promise_headers[":path"] = "/pushed.jpg";
|
|
|
| - session_->GetOrCreateStream(kServerDataStreamId1);
|
| + session_->GetOrCreateStream(GetNthServerInitiatedStreamId(0));
|
| // Receive a PUSH PROMISE from the server.
|
| - EXPECT_TRUE(session_->HandlePromised(stream->id(), kServerDataStreamId1,
|
| - promise_headers));
|
| - session_->OnInitialHeadersComplete(kServerDataStreamId1, SpdyHeaderBlock());
|
| + EXPECT_TRUE(session_->HandlePromised(
|
| + stream->id(), GetNthServerInitiatedStreamId(0), promise_headers));
|
| + session_->OnInitialHeadersComplete(GetNthServerInitiatedStreamId(0),
|
| + SpdyHeaderBlock());
|
| // Read data on the pushed stream.
|
| - QuicStreamFrame data(kServerDataStreamId1, false, 0, QuicStringPiece("SP"));
|
| + QuicStreamFrame data(GetNthServerInitiatedStreamId(0), false, 0,
|
| + QuicStringPiece("SP"));
|
| session_->OnStreamFrame(data);
|
|
|
| QuicClientPromisedInfo* promised =
|
| - session_->GetPromisedById(kServerDataStreamId1);
|
| + session_->GetPromisedById(GetNthServerInitiatedStreamId(0));
|
| EXPECT_TRUE(promised);
|
| // Cancel the push after receiving data on the push stream.
|
| GURL pushed_url("https://www.example.org/pushed.jpg");
|
| @@ -751,7 +764,7 @@ TEST_P(QuicChromiumClientSessionTest, Priority) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
| @@ -779,7 +792,7 @@ TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) {
|
| std::unique_ptr<QuicEncryptedPacket> settings_packet(
|
| client_maker_.MakeInitialSettingsPacket(1, nullptr));
|
| std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
|
| - 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
|
| + 2, true, GetNthClientInitiatedStreamId(0), QUIC_RST_ACKNOWLEDGEMENT));
|
| MockWrite writes[] = {
|
| MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
|
| MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
|
|
|