| 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
|
| index 67e0ffa91fdde9b2c488a219d867579143cfa3a9..a1a7f896d8a5a6140e439879ab86dc8b78dc173e 100644
|
| --- a/net/quic/test_tools/quic_test_packet_maker.cc
|
| +++ b/net/quic/test_tools/quic_test_packet_maker.cc
|
| @@ -287,6 +287,20 @@ scoped_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeDataPacket(
|
| return MakePacket(header_, QuicFrame(&frame));
|
| }
|
|
|
| +scoped_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 =
|
| + MakeMultipleDataFrames(stream_id, fin, offset, data_writes);
|
| + return MakeMultipleFramesPacket(header_, data_frames);
|
| +}
|
| +
|
| scoped_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndDataPacket(
|
| QuicPacketNumber packet_number,
|
| bool include_version,
|
| @@ -316,6 +330,50 @@ scoped_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndDataPacket(
|
| return MakeMultipleFramesPacket(header_, frames);
|
| }
|
|
|
| +scoped_ptr<QuicReceivedPacket>
|
| +QuicTestPacketMaker::MakeRequestHeadersAndMultipleDataFramesPacket(
|
| + QuicPacketNumber packet_number,
|
| + QuicStreamId stream_id,
|
| + bool should_include_version,
|
| + bool fin,
|
| + SpdyPriority priority,
|
| + const SpdyHeaderBlock& headers,
|
| + size_t* spdy_headers_frame_length,
|
| + const std::vector<std::string>& data_writes) {
|
| + InitializeHeader(packet_number, should_include_version);
|
| + SpdySerializedFrame spdy_frame;
|
| + if (spdy_request_framer_.protocol_version() == SPDY3) {
|
| + SpdySynStreamIR syn_stream(stream_id);
|
| + syn_stream.set_header_block(headers);
|
| + syn_stream.set_fin(fin);
|
| + syn_stream.set_priority(priority);
|
| + spdy_frame = spdy_request_framer_.SerializeSynStream(syn_stream);
|
| + } else {
|
| + SpdyHeadersIR headers_frame(stream_id);
|
| + headers_frame.set_header_block(headers);
|
| + headers_frame.set_fin(fin);
|
| + headers_frame.set_priority(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();
|
| + }
|
| + QuicStreamFrame frame(
|
| + kHeadersStreamId, false, 0,
|
| + base::StringPiece(spdy_frame.data(), spdy_frame.size()));
|
| +
|
| + QuicFrames frames;
|
| + frames.push_back(QuicFrame(&frame));
|
| +
|
| + QuicFrames data_frames =
|
| + MakeMultipleDataFrames(stream_id, fin, 0, data_writes);
|
| + for (auto data_frame : data_frames) {
|
| + frames.push_back(data_frame);
|
| + }
|
| + return MakeMultipleFramesPacket(header_, frames);
|
| +}
|
| +
|
| scoped_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
|
| QuicPacketNumber packet_number,
|
| QuicStreamId stream_id,
|
| @@ -511,6 +569,23 @@ scoped_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeMultipleFramesPacket(
|
| return scoped_ptr<QuicReceivedPacket>(encrypted.Clone());
|
| }
|
|
|
| +QuicFrames QuicTestPacketMaker::MakeMultipleDataFrames(
|
| + QuicStreamId stream_id,
|
| + bool fin,
|
| + QuicStreamOffset offset,
|
| + const std::vector<std::string>& data_writes) {
|
| + QuicFrames result_frames;
|
| + for (size_t i = 0; i < data_writes.size(); ++i) {
|
| + bool is_fin = fin && (i == data_writes.size() - 1);
|
| + QuicStreamFrame* stream_frame = new QuicStreamFrame(
|
| + stream_id, is_fin, offset, base::StringPiece(data_writes[i]));
|
| + offset += data_writes[i].length();
|
| + DVLOG(1) << "Adding frame: " << QuicFrame(stream_frame);
|
| + result_frames.push_back(QuicFrame(stream_frame));
|
| + }
|
| + return result_frames;
|
| +}
|
| +
|
| void QuicTestPacketMaker::InitializeHeader(QuicPacketNumber packet_number,
|
| bool should_include_version) {
|
| header_.public_header.connection_id = connection_id_;
|
|
|