Index: net/quic/test_tools/quic_test_packet_maker.cc |
diff --git a/net/quic/test_tools/quic_test_packet_maker.cc b/net/quic/test_tools/quic_test_packet_maker.cc |
deleted file mode 100644 |
index f865171a6b6d397ba81ceab37425be9bfe52d18b..0000000000000000000000000000000000000000 |
--- a/net/quic/test_tools/quic_test_packet_maker.cc |
+++ /dev/null |
@@ -1,663 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/quic/test_tools/quic_test_packet_maker.h" |
- |
-#include <list> |
-#include <utility> |
- |
-#include "base/memory/ptr_util.h" |
-#include "net/quic/core/quic_framer.h" |
-#include "net/quic/core/quic_http_utils.h" |
-#include "net/quic/core/quic_utils.h" |
-#include "net/quic/test_tools/quic_test_utils.h" |
- |
- |
-namespace net { |
-namespace test { |
- |
-QuicTestPacketMaker::QuicTestPacketMaker(QuicVersion version, |
- QuicConnectionId connection_id, |
- MockClock* clock, |
- const std::string& host, |
- Perspective perspective) |
- : version_(version), |
- connection_id_(connection_id), |
- clock_(clock), |
- host_(host), |
- perspective_(perspective) {} |
- |
-QuicTestPacketMaker::~QuicTestPacketMaker() {} |
- |
-void QuicTestPacketMaker::set_hostname(const std::string& host) { |
- host_.assign(host); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakePingPacket( |
- QuicPacketNumber num, |
- bool include_version) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = include_version; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicPingFrame ping; |
- return std::unique_ptr<QuicReceivedPacket>( |
- MakePacket(header, QuicFrame(ping))); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
- QuicPacketNumber num, |
- bool include_version, |
- QuicStreamId stream_id, |
- QuicRstStreamErrorCode error_code) { |
- return MakeRstPacket(num, include_version, stream_id, error_code, 0); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket( |
- QuicPacketNumber num, |
- bool include_version, |
- QuicStreamId stream_id, |
- QuicRstStreamErrorCode error_code, |
- size_t bytes_written) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = include_version; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicRstStreamFrame rst(stream_id, error_code, bytes_written); |
- DVLOG(1) << "Adding frame: " << QuicFrame(&rst); |
- return std::unique_ptr<QuicReceivedPacket>( |
- MakePacket(header, QuicFrame(&rst))); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
- QuicPacketNumber num, |
- bool include_version, |
- QuicStreamId stream_id, |
- QuicRstStreamErrorCode error_code, |
- QuicPacketNumber largest_received, |
- QuicPacketNumber ack_least_unacked, |
- QuicPacketNumber stop_least_unacked, |
- bool send_feedback) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = include_version; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicAckFrame ack(MakeAckFrame(largest_received)); |
- ack.ack_delay_time = QuicTime::Delta::Zero(); |
- for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
- ack.received_packet_times.push_back(std::make_pair(i, clock_->Now())); |
- } |
- if (largest_received > 0) { |
- ack.packets.Add(1, largest_received + 1); |
- } |
- QuicFrames frames; |
- frames.push_back(QuicFrame(&ack)); |
- DVLOG(1) << "Adding frame: " << frames[0]; |
- |
- QuicStopWaitingFrame stop_waiting; |
- stop_waiting.least_unacked = stop_least_unacked; |
- frames.push_back(QuicFrame(&stop_waiting)); |
- DVLOG(1) << "Adding frame: " << frames[1]; |
- |
- QuicRstStreamFrame rst(stream_id, error_code, 0); |
- frames.push_back(QuicFrame(&rst)); |
- DVLOG(1) << "Adding frame: " << frames[2]; |
- |
- QuicFramer framer(SupportedVersions(version_), clock_->Now(), perspective_); |
- std::unique_ptr<QuicPacket> packet( |
- BuildUnsizedDataPacket(&framer, header, frames)); |
- char buffer[kMaxPacketSize]; |
- size_t encrypted_size = framer.EncryptPayload(ENCRYPTION_NONE, /*path_id=*/0u, |
- header.packet_number, *packet, |
- buffer, kMaxPacketSize); |
- EXPECT_NE(0u, encrypted_size); |
- QuicReceivedPacket encrypted(buffer, encrypted_size, QuicTime::Zero(), false); |
- return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeAckAndConnectionClosePacket( |
- QuicPacketNumber num, |
- bool include_version, |
- QuicTime::Delta ack_delay_time, |
- QuicPacketNumber largest_received, |
- QuicPacketNumber least_unacked, |
- QuicErrorCode quic_error, |
- const std::string& quic_error_details) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = include_version; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicAckFrame ack(MakeAckFrame(largest_received)); |
- ack.ack_delay_time = ack_delay_time; |
- for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { |
- ack.received_packet_times.push_back(std::make_pair(i, clock_->Now())); |
- } |
- if (largest_received > 0) { |
- ack.packets.Add(1, largest_received + 1); |
- } |
- QuicFrames frames; |
- frames.push_back(QuicFrame(&ack)); |
- DVLOG(1) << "Adding frame: " << frames[0]; |
- |
- QuicStopWaitingFrame stop_waiting; |
- stop_waiting.least_unacked = least_unacked; |
- frames.push_back(QuicFrame(&stop_waiting)); |
- DVLOG(1) << "Adding frame: " << frames[1]; |
- |
- QuicConnectionCloseFrame close; |
- close.error_code = quic_error; |
- close.error_details = quic_error_details; |
- |
- frames.push_back(QuicFrame(&close)); |
- DVLOG(1) << "Adding frame: " << frames[2]; |
- |
- QuicFramer framer(SupportedVersions(version_), clock_->Now(), perspective_); |
- std::unique_ptr<QuicPacket> packet( |
- BuildUnsizedDataPacket(&framer, header, frames)); |
- char buffer[kMaxPacketSize]; |
- size_t encrypted_size = framer.EncryptPayload(ENCRYPTION_NONE, /*path_id=*/0u, |
- header.packet_number, *packet, |
- buffer, kMaxPacketSize); |
- EXPECT_NE(0u, encrypted_size); |
- QuicReceivedPacket encrypted(buffer, encrypted_size, clock_->Now(), false); |
- return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeConnectionClosePacket(QuicPacketNumber num) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = false; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicConnectionCloseFrame close; |
- close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; |
- close.error_details = "Time to panic!"; |
- return std::unique_ptr<QuicReceivedPacket>( |
- MakePacket(header, QuicFrame(&close))); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeGoAwayPacket( |
- QuicPacketNumber num, |
- QuicErrorCode error_code, |
- std::string reason_phrase) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = false; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = num; |
- |
- QuicGoAwayFrame goaway; |
- goaway.error_code = error_code; |
- goaway.last_good_stream_id = 0; |
- goaway.reason_phrase = reason_phrase; |
- return std::unique_ptr<QuicReceivedPacket>( |
- MakePacket(header, QuicFrame(&goaway))); |
-} |
- |
-// Sets both least_unacked fields in stop waiting frame and ack frame |
-// to be |least_unacked|. |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckPacket( |
- QuicPacketNumber packet_number, |
- QuicPacketNumber largest_received, |
- QuicPacketNumber least_unacked, |
- bool send_feedback) { |
- return MakeAckPacket(packet_number, largest_received, least_unacked, |
- least_unacked, send_feedback); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckPacket( |
- QuicPacketNumber packet_number, |
- QuicPacketNumber largest_received, |
- QuicPacketNumber ack_least_unacked, |
- QuicPacketNumber stop_least_unacked, |
- bool send_feedback) { |
- QuicPacketHeader header; |
- header.public_header.connection_id = connection_id_; |
- header.public_header.reset_flag = false; |
- header.public_header.version_flag = false; |
- header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header.packet_number = packet_number; |
- |
- QuicAckFrame ack(MakeAckFrame(largest_received)); |
- ack.ack_delay_time = QuicTime::Delta::Zero(); |
- for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) { |
- ack.received_packet_times.push_back(std::make_pair(i, clock_->Now())); |
- } |
- if (largest_received > 0) { |
- ack.packets.Add(1, largest_received + 1); |
- } |
- |
- QuicFramer framer(SupportedVersions(version_), clock_->Now(), perspective_); |
- QuicFrames frames; |
- QuicFrame ack_frame(&ack); |
- DVLOG(1) << "Adding frame: " << ack_frame; |
- frames.push_back(ack_frame); |
- |
- QuicStopWaitingFrame stop_waiting; |
- stop_waiting.least_unacked = stop_least_unacked; |
- frames.push_back(QuicFrame(&stop_waiting)); |
- |
- std::unique_ptr<QuicPacket> packet( |
- BuildUnsizedDataPacket(&framer, header, frames)); |
- char buffer[kMaxPacketSize]; |
- size_t encrypted_size = framer.EncryptPayload(ENCRYPTION_NONE, /*path_id=*/0u, |
- header.packet_number, *packet, |
- buffer, kMaxPacketSize); |
- EXPECT_NE(0u, encrypted_size); |
- QuicReceivedPacket encrypted(buffer, encrypted_size, clock_->Now(), false); |
- return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); |
-} |
- |
-// Returns a newly created packet to send kData on stream 1. |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeDataPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- QuicStreamOffset offset, |
- base::StringPiece data) { |
- InitializeHeader(packet_number, should_include_version); |
- QuicStreamFrame frame(stream_id, fin, offset, data); |
- DVLOG(1) << "Adding frame: " << frame; |
- return MakePacket(header_, QuicFrame(&frame)); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeMultipleDataFramesPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- QuicStreamOffset offset, |
- const std::vector<std::string>& data_writes) { |
- InitializeHeader(packet_number, should_include_version); |
- QuicFrames data_frames; |
- // QuicFrame takes a raw pointer. Use a std::vector here so we keep |
- // StreamFrames alive until MakeMultipleFramesPacket is done. |
- std::vector<std::unique_ptr<QuicStreamFrame>> stream_frames; |
- for (size_t i = 0; i < data_writes.size(); ++i) { |
- bool is_fin = fin && (i == data_writes.size() - 1); |
- stream_frames.push_back(base::MakeUnique<QuicStreamFrame>( |
- stream_id, is_fin, offset, base::StringPiece(data_writes[i]))); |
- offset += data_writes[i].length(); |
- } |
- for (const auto& stream_frame : stream_frames) { |
- QuicFrame quic_frame(stream_frame.get()); |
- DVLOG(1) << "Adding frame: " << quic_frame; |
- data_frames.push_back(quic_frame); |
- } |
- return MakeMultipleFramesPacket(header_, data_frames); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndDataPacket( |
- QuicPacketNumber packet_number, |
- bool include_version, |
- QuicStreamId stream_id, |
- QuicPacketNumber largest_received, |
- QuicPacketNumber least_unacked, |
- bool fin, |
- QuicStreamOffset offset, |
- base::StringPiece data) { |
- InitializeHeader(packet_number, include_version); |
- |
- QuicAckFrame ack(MakeAckFrame(largest_received)); |
- ack.ack_delay_time = QuicTime::Delta::Zero(); |
- for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { |
- ack.received_packet_times.push_back(std::make_pair(i, clock_->Now())); |
- } |
- if (largest_received > 0) { |
- ack.packets.Add(1, largest_received + 1); |
- } |
- QuicFrames frames; |
- frames.push_back(QuicFrame(&ack)); |
- |
- QuicStopWaitingFrame stop_waiting; |
- stop_waiting.least_unacked = least_unacked; |
- frames.push_back(QuicFrame(&stop_waiting)); |
- |
- QuicStreamFrame stream_frame(stream_id, fin, offset, data); |
- frames.push_back(QuicFrame(&stream_frame)); |
- |
- return MakeMultipleFramesPacket(header_, frames); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeRequestHeadersAndMultipleDataFramesPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyPriority priority, |
- SpdyHeaderBlock headers, |
- QuicStreamOffset* header_stream_offset, |
- size_t* spdy_headers_frame_length, |
- const std::vector<std::string>& data_writes) { |
- InitializeHeader(packet_number, should_include_version); |
- SpdySerializedFrame spdy_frame; |
- SpdyHeadersIR headers_frame(stream_id, std::move(headers)); |
- headers_frame.set_fin(fin); |
- headers_frame.set_weight(Spdy3PriorityToHttp2Weight(priority)); |
- headers_frame.set_has_priority(true); |
- spdy_frame = spdy_request_framer_.SerializeFrame(headers_frame); |
- |
- if (spdy_headers_frame_length) { |
- *spdy_headers_frame_length = spdy_frame.size(); |
- } |
- QuicFrames frames; |
- QuicStreamOffset header_offset = |
- header_stream_offset == nullptr ? 0 : *header_stream_offset; |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, header_offset, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- frames.push_back(QuicFrame(&frame)); |
- if (header_stream_offset != nullptr) { |
- *header_stream_offset += spdy_frame.size(); |
- } |
- |
- QuicStreamOffset offset = 0; |
- // QuicFrame takes a raw pointer. Use a std::vector here so we keep |
- // StreamFrames alive until MakeMultipleFramesPacket is done. |
- std::vector<std::unique_ptr<QuicStreamFrame>> stream_frames; |
- for (size_t i = 0; i < data_writes.size(); ++i) { |
- bool is_fin = fin && (i == data_writes.size() - 1); |
- stream_frames.push_back(base::MakeUnique<QuicStreamFrame>( |
- stream_id, is_fin, offset, base::StringPiece(data_writes[i]))); |
- offset += data_writes[i].length(); |
- } |
- for (const auto& stream_frame : stream_frames) { |
- QuicFrame quic_frame(stream_frame.get()); |
- DVLOG(1) << "Adding frame: " << quic_frame; |
- frames.push_back(quic_frame); |
- } |
- return MakeMultipleFramesPacket(header_, frames); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeRequestHeadersPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyPriority priority, |
- SpdyHeaderBlock headers, |
- size_t* spdy_headers_frame_length) { |
- return MakeRequestHeadersPacket( |
- packet_number, stream_id, should_include_version, fin, priority, |
- std::move(headers), spdy_headers_frame_length, nullptr); |
-} |
- |
-// If |offset| is provided, will use the value when creating the packet. |
-// Will also update the value after packet creation. |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeRequestHeadersPacket(QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyPriority priority, |
- SpdyHeaderBlock headers, |
- size_t* spdy_headers_frame_length, |
- QuicStreamOffset* offset) { |
- InitializeHeader(packet_number, should_include_version); |
- SpdySerializedFrame spdy_frame; |
- SpdyHeadersIR headers_frame(stream_id, std::move(headers)); |
- headers_frame.set_fin(fin); |
- headers_frame.set_weight(Spdy3PriorityToHttp2Weight(priority)); |
- headers_frame.set_has_priority(true); |
- spdy_frame = spdy_request_framer_.SerializeFrame(headers_frame); |
- |
- if (spdy_headers_frame_length) { |
- *spdy_headers_frame_length = spdy_frame.size(); |
- } |
- if (offset != nullptr) { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, *offset, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- *offset += spdy_frame.size(); |
- return MakePacket(header_, QuicFrame(&frame)); |
- } else { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, 0, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- |
- return MakePacket(header_, QuicFrame(&frame)); |
- } |
-} |
- |
-// Convenience method for calling MakeRequestHeadersPacket with nullptr for |
-// |spdy_headers_frame_length|. |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeRequestHeadersPacketWithOffsetTracking( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyPriority priority, |
- SpdyHeaderBlock headers, |
- QuicStreamOffset* offset) { |
- return MakeRequestHeadersPacket(packet_number, stream_id, |
- should_include_version, fin, priority, |
- std::move(headers), nullptr, offset); |
-} |
- |
-// If |offset| is provided, will use the value when creating the packet. |
-// Will also update the value after packet creation. |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakePushPromisePacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- QuicStreamId promised_stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyHeaderBlock headers, |
- size_t* spdy_headers_frame_length, |
- QuicStreamOffset* offset) { |
- InitializeHeader(packet_number, should_include_version); |
- SpdySerializedFrame spdy_frame; |
- SpdyPushPromiseIR promise_frame(stream_id, promised_stream_id, |
- std::move(headers)); |
- promise_frame.set_fin(fin); |
- spdy_frame = spdy_request_framer_.SerializeFrame(promise_frame); |
- if (spdy_headers_frame_length) { |
- *spdy_headers_frame_length = spdy_frame.size(); |
- } |
- if (offset != nullptr) { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, *offset, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- *offset += spdy_frame.size(); |
- return MakePacket(header_, QuicFrame(&frame)); |
- } else { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, 0, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- return MakePacket(header_, QuicFrame(&frame)); |
- } |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeForceHolDataPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- QuicStreamOffset* offset, |
- base::StringPiece data) { |
- SpdyDataIR spdy_data(stream_id, data); |
- spdy_data.set_fin(fin); |
- SpdySerializedFrame spdy_frame( |
- spdy_request_framer_.SerializeFrame(spdy_data)); |
- InitializeHeader(packet_number, should_include_version); |
- QuicStreamFrame quic_frame(kHeadersStreamId, false, *offset, |
- StringPiece(spdy_frame.data(), spdy_frame.size())); |
- *offset += spdy_frame.size(); |
- return MakePacket(header_, QuicFrame(&quic_frame)); |
-} |
- |
-// If |offset| is provided, will use the value when creating the packet. |
-// Will also update the value after packet creation. |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeResponseHeadersPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyHeaderBlock headers, |
- size_t* spdy_headers_frame_length, |
- QuicStreamOffset* offset) { |
- InitializeHeader(packet_number, should_include_version); |
- SpdySerializedFrame spdy_frame; |
- SpdyHeadersIR headers_frame(stream_id, std::move(headers)); |
- headers_frame.set_fin(fin); |
- spdy_frame = spdy_response_framer_.SerializeFrame(headers_frame); |
- |
- if (spdy_headers_frame_length) { |
- *spdy_headers_frame_length = spdy_frame.size(); |
- } |
- if (offset != nullptr) { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, *offset, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- *offset += spdy_frame.size(); |
- return MakePacket(header_, QuicFrame(&frame)); |
- } else { |
- QuicStreamFrame frame( |
- kHeadersStreamId, false, 0, |
- base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
- return MakePacket(header_, QuicFrame(&frame)); |
- } |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeResponseHeadersPacket( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyHeaderBlock headers, |
- size_t* spdy_headers_frame_length) { |
- return MakeResponseHeadersPacket( |
- packet_number, stream_id, should_include_version, fin, std::move(headers), |
- spdy_headers_frame_length, nullptr); |
-} |
- |
-// Convenience method for calling MakeResponseHeadersPacket with nullptr for |
-// |spdy_headers_frame_length|. |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeResponseHeadersPacketWithOffsetTracking( |
- QuicPacketNumber packet_number, |
- QuicStreamId stream_id, |
- bool should_include_version, |
- bool fin, |
- SpdyHeaderBlock headers, |
- QuicStreamOffset* offset) { |
- return MakeResponseHeadersPacket(packet_number, stream_id, |
- should_include_version, fin, |
- std::move(headers), nullptr, offset); |
-} |
- |
-SpdyHeaderBlock QuicTestPacketMaker::GetRequestHeaders( |
- const std::string& method, |
- const std::string& scheme, |
- const std::string& path) { |
- SpdyHeaderBlock headers; |
- headers[":method"] = method; |
- headers[":authority"] = host_; |
- headers[":scheme"] = scheme; |
- headers[":path"] = path; |
- return headers; |
-} |
- |
-SpdyHeaderBlock QuicTestPacketMaker::GetResponseHeaders( |
- const std::string& status) { |
- SpdyHeaderBlock headers; |
- headers[":status"] = status; |
- headers["content-type"] = "text/plain"; |
- return headers; |
-} |
- |
-SpdyHeaderBlock QuicTestPacketMaker::GetResponseHeaders( |
- const std::string& status, |
- const std::string& alt_svc) { |
- SpdyHeaderBlock headers; |
- headers[":status"] = status; |
- headers["alt-svc"] = alt_svc; |
- headers["content-type"] = "text/plain"; |
- return headers; |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakePacket( |
- const QuicPacketHeader& header, |
- const QuicFrame& frame) { |
- QuicFrames frames; |
- frames.push_back(frame); |
- return MakeMultipleFramesPacket(header, frames); |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> |
-QuicTestPacketMaker::MakeMultipleFramesPacket(const QuicPacketHeader& header, |
- const QuicFrames& frames) { |
- QuicFramer framer(SupportedVersions(version_), clock_->Now(), perspective_); |
- std::unique_ptr<QuicPacket> packet( |
- BuildUnsizedDataPacket(&framer, header, frames)); |
- char buffer[kMaxPacketSize]; |
- size_t encrypted_size = framer.EncryptPayload(ENCRYPTION_NONE, /*path_id=*/0u, |
- header.packet_number, *packet, |
- buffer, kMaxPacketSize); |
- EXPECT_NE(0u, encrypted_size); |
- QuicReceivedPacket encrypted(buffer, encrypted_size, clock_->Now(), false); |
- return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone()); |
-} |
- |
-void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number, |
- bool should_include_version) { |
- header_.public_header.connection_id = connection_id_; |
- header_.public_header.reset_flag = false; |
- header_.public_header.version_flag = should_include_version; |
- header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
- header_.packet_number = packet_number; |
-} |
- |
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeSettingsPacket( |
- QuicPacketNumber packet_number, |
- SpdySettingsIds id, |
- size_t value, |
- bool should_include_version, |
- QuicStreamOffset* offset) { |
- SpdySettingsIR settings_frame; |
- settings_frame.AddSetting(id, false, false, value); |
- SpdySerializedFrame spdy_frame( |
- spdy_request_framer_.SerializeFrame(settings_frame)); |
- InitializeHeader(packet_number, should_include_version); |
- if (offset != nullptr) { |
- QuicStreamFrame quic_frame( |
- kHeadersStreamId, false, *offset, |
- StringPiece(spdy_frame.data(), spdy_frame.size())); |
- *offset += spdy_frame.size(); |
- return MakePacket(header_, QuicFrame(&quic_frame)); |
- } else { |
- QuicStreamFrame quic_frame( |
- kHeadersStreamId, false, 0, |
- StringPiece(spdy_frame.data(), spdy_frame.size())); |
- LOG(INFO) << "quic_frame: " << quic_frame; |
- return MakePacket(header_, QuicFrame(&quic_frame)); |
- } |
-} |
- |
-} // namespace test |
-} // namespace net |