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

Unified Diff: net/quic/quic_headers_stream_test.cc

Issue 1961573002: Avoids the "re-encode HPACK as SPDY3" step. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update new test Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_headers_stream.cc ('k') | net/quic/quic_spdy_stream.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_headers_stream_test.cc
diff --git a/net/quic/quic_headers_stream_test.cc b/net/quic/quic_headers_stream_test.cc
index fbfb8ac2680bb3fb3a61289fc4e673693dc48021..4bb65969957fd71acd2bc740352d43c9b54e7506 100644
--- a/net/quic/quic_headers_stream_test.cc
+++ b/net/quic/quic_headers_stream_test.cc
@@ -23,6 +23,7 @@ using std::vector;
using testing::ElementsAre;
using testing::InSequence;
using testing::Invoke;
+using testing::Return;
using testing::StrictMock;
using testing::WithArgs;
using testing::_;
@@ -175,6 +176,29 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
saved_header_data_.append(data.data(), data.length());
}
+ void SavePromiseHeaderList(QuicStreamId /* stream_id */,
+ QuicStreamId /* promised_stream_id */,
+ size_t size,
+ const QuicHeaderList& header_list) {
+ SaveToHandler(size, header_list);
+ }
+
+ void SaveHeaderList(QuicStreamId /* stream_id */,
+ bool /* fin */,
+ size_t size,
+ const QuicHeaderList& header_list) {
+ SaveToHandler(size, header_list);
+ }
+
+ void SaveToHandler(size_t size, const QuicHeaderList& header_list) {
+ headers_handler_.reset(new TestHeadersHandler);
+ headers_handler_->OnHeaderBlockStart();
+ for (const auto& p : header_list) {
+ headers_handler_->OnHeader(p.first, p.second);
+ }
+ headers_handler_->OnHeaderBlockEnd(size);
+ }
+
void WriteHeadersAndExpectSynStream(QuicStreamId stream_id,
bool fin,
SpdyPriority priority) {
@@ -208,9 +232,10 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
/*parent_stream_id=*/0,
/*exclusive=*/false, fin, kFrameComplete));
}
- EXPECT_CALL(visitor_, OnControlFrameHeaderData(stream_id, _, _))
- .WillRepeatedly(WithArgs<1, 2>(
- Invoke(this, &QuicHeadersStreamTest::SaveHeaderData)));
+ headers_handler_.reset(new TestHeadersHandler);
+ EXPECT_CALL(visitor_, OnHeaderFrameStart(stream_id))
+ .WillOnce(Return(headers_handler_.get()));
+ EXPECT_CALL(visitor_, OnHeaderFrameEnd(stream_id, true)).Times(1);
if (fin) {
EXPECT_CALL(visitor_, OnStreamEnd(stream_id));
}
@@ -223,11 +248,8 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
}
void CheckHeaders() {
- SpdyHeaderBlock headers;
- EXPECT_TRUE(framer_->ParseHeaderBlockInBuffer(
- saved_header_data_.data(), saved_header_data_.length(), &headers));
- EXPECT_EQ(headers_, headers);
- saved_header_data_.clear();
+ EXPECT_EQ(headers_, headers_handler_->decoded_block());
+ headers_handler_.reset();
}
Perspective perspective() { return GetParam().perspective; }
@@ -255,6 +277,7 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
StrictMock<MockQuicSpdySession> session_;
QuicHeadersStream* headers_stream_;
SpdyHeaderBlock headers_;
+ std::unique_ptr<TestHeadersHandler> headers_handler_;
string body_;
string saved_data_;
string saved_header_data_;
@@ -305,9 +328,10 @@ TEST_P(QuicHeadersStreamTest, WritePushPromises) {
// Parse the outgoing data and check that it matches was was written.
EXPECT_CALL(visitor_,
OnPushPromise(stream_id, promised_stream_id, kFrameComplete));
- EXPECT_CALL(visitor_, OnControlFrameHeaderData(stream_id, _, _))
- .WillRepeatedly(WithArgs<1, 2>(
- Invoke(this, &QuicHeadersStreamTest::SaveHeaderData)));
+ headers_handler_.reset(new TestHeadersHandler);
+ EXPECT_CALL(visitor_, OnHeaderFrameStart(stream_id))
+ .WillOnce(Return(headers_handler_.get()));
+ EXPECT_CALL(visitor_, OnHeaderFrameEnd(stream_id, true)).Times(1);
framer_->ProcessInput(saved_data_.data(), saved_data_.length());
EXPECT_FALSE(framer_->HasError())
<< SpdyFramer::ErrorCodeToString(framer_->error_code());
@@ -341,11 +365,9 @@ TEST_P(QuicHeadersStreamTest, ProcessRawData) {
headers_frame.set_fin(fin);
frame = framer_->SerializeFrame(headers_frame);
}
- EXPECT_CALL(session_, OnStreamHeaders(stream_id, _))
- .WillRepeatedly(WithArgs<1>(Invoke(
- this, &QuicHeadersStreamTest::SaveHeaderDataStringPiece)));
EXPECT_CALL(session_,
- OnStreamHeadersComplete(stream_id, fin, frame.size()));
+ OnStreamHeaderList(stream_id, fin, frame.size(), _))
+ .WillOnce(Invoke(this, &QuicHeadersStreamTest::SaveHeaderList));
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
headers_stream_->OnStreamFrame(stream_frame_);
@@ -372,11 +394,10 @@ TEST_P(QuicHeadersStreamTest, ProcessPushPromise) {
.WillRepeatedly(InvokeWithoutArgs(
this, &QuicHeadersStreamTest::TearDownLocalConnectionState));
} else {
- EXPECT_CALL(session_, OnPromiseHeaders(stream_id, _))
- .WillRepeatedly(WithArgs<1>(
- Invoke(this, &QuicHeadersStreamTest::SaveHeaderDataStringPiece)));
- EXPECT_CALL(session_, OnPromiseHeadersComplete(
- stream_id, promised_stream_id, frame.size()));
+ EXPECT_CALL(session_, OnPromiseHeaderList(stream_id, promised_stream_id,
+ frame.size(), _))
+ .WillOnce(
+ Invoke(this, &QuicHeadersStreamTest::SavePromiseHeaderList));
}
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
@@ -412,9 +433,8 @@ TEST_P(QuicHeadersStreamTest, EmptyHeaderHOLBlockedTime) {
headers_frame.set_fin(fin);
frame = framer_->SerializeFrame(headers_frame);
}
- EXPECT_CALL(session_, OnStreamHeaders(stream_id, _));
- EXPECT_CALL(session_,
- OnStreamHeadersComplete(stream_id, fin, frame.size()));
+ EXPECT_CALL(session_, OnStreamHeaderList(stream_id, fin, frame.size(), _))
+ .Times(1);
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
headers_stream_->OnStreamFrame(stream_frame_);
@@ -456,9 +476,7 @@ TEST_P(QuicHeadersStreamTest, NonEmptyHeaderHOLBlockedTime) {
DVLOG(1) << "make frame for stream " << stream_num << " offset "
<< stream_frames[stream_num].offset;
stream_frame_.offset += frames[stream_num].size();
- EXPECT_CALL(session_, OnStreamHeaders(stream_id, _)).Times(1);
- EXPECT_CALL(session_, OnStreamHeadersComplete(stream_id, fin, _))
- .Times(1);
+ EXPECT_CALL(session_, OnStreamHeaderList(stream_id, fin, _, _)).Times(1);
}
}
@@ -499,11 +517,9 @@ TEST_P(QuicHeadersStreamTest, ProcessLargeRawData) {
headers_frame.set_fin(fin);
frame = framer_->SerializeFrame(headers_frame);
}
- EXPECT_CALL(session_, OnStreamHeaders(stream_id, _))
- .WillRepeatedly(WithArgs<1>(Invoke(
- this, &QuicHeadersStreamTest::SaveHeaderDataStringPiece)));
EXPECT_CALL(session_,
- OnStreamHeadersComplete(stream_id, fin, frame.size()));
+ OnStreamHeaderList(stream_id, fin, frame.size(), _))
+ .WillOnce(Invoke(this, &QuicHeadersStreamTest::SaveHeaderList));
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
headers_stream_->OnStreamFrame(stream_frame_);
@@ -643,11 +659,9 @@ TEST_P(QuicHeadersStreamTest, HpackDecoderDebugVisitor) {
headers_frame.set_fin(fin);
frame = framer_->SerializeFrame(headers_frame);
}
- EXPECT_CALL(session_, OnStreamHeaders(stream_id, _))
- .WillRepeatedly(WithArgs<1>(Invoke(
- this, &QuicHeadersStreamTest::SaveHeaderDataStringPiece)));
EXPECT_CALL(session_,
- OnStreamHeadersComplete(stream_id, fin, frame.size()));
+ OnStreamHeaderList(stream_id, fin, frame.size(), _))
+ .WillOnce(Invoke(this, &QuicHeadersStreamTest::SaveHeaderList));
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
« no previous file with comments | « net/quic/quic_headers_stream.cc ('k') | net/quic/quic_spdy_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698