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

Unified Diff: net/quic/quic_headers_stream_test.cc

Issue 1777163003: OnStreamEnd is now called instead of the sentinel call of OnStreamFrameData(stream_id, nullptr, 0, … (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@116266391
Patch Set: Merge spdy_framer_test.cc Created 4 years, 9 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
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 2cae45f336ce32a9016066510f5e773229e00ace..2f51bab67a33232f00db0d6349eec391cc2b5ae9 100644
--- a/net/quic/quic_headers_stream_test.cc
+++ b/net/quic/quic_headers_stream_test.cc
@@ -93,19 +93,26 @@ class MockVisitor : public SpdyFramerVisitorInterface {
MOCK_METHOD2(OnUnknownFrame, bool(SpdyStreamId stream_id, int frame_type));
};
-// Run all tests with each version, and client or server
+// Run all tests with each version, perspective (client or server),
+// and relevant flag options (false or true)
struct TestParams {
- TestParams(QuicVersion version, Perspective perspective)
- : version(version), perspective(perspective) {}
+ TestParams(QuicVersion version,
+ Perspective perspective,
+ bool spdy_on_stream_end)
+ : version(version),
+ perspective(perspective),
+ spdy_on_stream_end(spdy_on_stream_end) {}
friend ostream& operator<<(ostream& os, const TestParams& p) {
os << "{ version: " << QuicVersionToString(p.version);
- os << ", perspective: " << p.perspective << " }";
+ os << ", perspective: " << p.perspective;
+ os << ", spdy_on_stream_end: " << p.spdy_on_stream_end << " }";
return os;
}
QuicVersion version;
Perspective perspective;
+ bool spdy_on_stream_end;
};
// Constructs various test permutations.
@@ -113,8 +120,10 @@ vector<TestParams> GetTestParams() {
vector<TestParams> params;
QuicVersionVector all_supported_versions = QuicSupportedVersions();
for (const QuicVersion version : all_supported_versions) {
- params.push_back(TestParams(version, Perspective::IS_CLIENT));
- params.push_back(TestParams(version, Perspective::IS_SERVER));
+ params.push_back(TestParams(version, Perspective::IS_CLIENT, true));
+ params.push_back(TestParams(version, Perspective::IS_SERVER, true));
+ params.push_back(TestParams(version, Perspective::IS_CLIENT, false));
+ params.push_back(TestParams(version, Perspective::IS_SERVER, false));
}
FLAGS_quic_supports_push_promise = true;
return params;
@@ -129,14 +138,15 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
session_(connection_),
headers_stream_(QuicSpdySessionPeer::GetHeadersStream(&session_)),
body_("hello world"),
- framer_(HTTP2),
stream_frame_(kHeadersStreamId, /*fin=*/false, /*offset=*/0, ""),
next_promised_stream_id_(2) {
FLAGS_quic_always_log_bugs_for_tests = true;
headers_[":version"] = "HTTP/1.1";
headers_[":status"] = "200 Ok";
headers_["content-length"] = "11";
- framer_.set_visitor(&visitor_);
+ FLAGS_spdy_on_stream_end = GetParam().spdy_on_stream_end;
+ framer_ = std::unique_ptr<SpdyFramer>(new SpdyFramer(HTTP2));
+ framer_->set_visitor(&visitor_);
EXPECT_EQ(version(), session_.connection()->version());
EXPECT_TRUE(headers_stream_ != nullptr);
VLOG(1) << GetParam();
@@ -197,11 +207,15 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
.WillRepeatedly(WithArgs<1, 2>(
Invoke(this, &QuicHeadersStreamTest::SaveHeaderData)));
if (fin) {
- EXPECT_CALL(visitor_, OnStreamFrameData(stream_id, nullptr, 0, true));
+ if (FLAGS_spdy_on_stream_end) {
+ EXPECT_CALL(visitor_, OnStreamEnd(stream_id));
+ } else {
+ EXPECT_CALL(visitor_, OnStreamFrameData(stream_id, nullptr, 0, true));
+ }
}
- framer_.ProcessInput(saved_data_.data(), saved_data_.length());
- EXPECT_FALSE(framer_.HasError())
- << SpdyFramer::ErrorCodeToString(framer_.error_code());
+ framer_->ProcessInput(saved_data_.data(), saved_data_.length());
+ EXPECT_FALSE(framer_->HasError())
+ << SpdyFramer::ErrorCodeToString(framer_->error_code());
CheckHeaders();
saved_data_.clear();
@@ -209,7 +223,7 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
void CheckHeaders() {
SpdyHeaderBlock headers;
- EXPECT_TRUE(framer_.ParseHeaderBlockInBuffer(
+ EXPECT_TRUE(framer_->ParseHeaderBlockInBuffer(
saved_header_data_.data(), saved_header_data_.length(), &headers));
EXPECT_EQ(headers_, headers);
saved_header_data_.clear();
@@ -240,7 +254,7 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> {
string body_;
string saved_data_;
string saved_header_data_;
- SpdyFramer framer_;
+ std::unique_ptr<SpdyFramer> framer_;
StrictMock<MockVisitor> visitor_;
QuicStreamFrame stream_frame_;
QuicStreamId next_promised_stream_id_;
@@ -287,9 +301,9 @@ TEST_P(QuicHeadersStreamTest, WritePushPromises) {
EXPECT_CALL(visitor_, OnControlFrameHeaderData(stream_id, _, _))
.WillRepeatedly(WithArgs<1, 2>(
Invoke(this, &QuicHeadersStreamTest::SaveHeaderData)));
- framer_.ProcessInput(saved_data_.data(), saved_data_.length());
- EXPECT_FALSE(framer_.HasError())
- << SpdyFramer::ErrorCodeToString(framer_.error_code());
+ framer_->ProcessInput(saved_data_.data(), saved_data_.length());
+ EXPECT_FALSE(framer_->HasError())
+ << SpdyFramer::ErrorCodeToString(framer_->error_code());
CheckHeaders();
saved_data_.clear();
} else {
@@ -312,13 +326,13 @@ TEST_P(QuicHeadersStreamTest, ProcessRawData) {
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
headers_frame.set_has_priority(true);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0));
} else {
SpdyHeadersIR headers_frame(stream_id);
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
}
EXPECT_CALL(session_, OnStreamHeaders(stream_id, _))
.WillRepeatedly(WithArgs<1>(Invoke(
@@ -344,7 +358,7 @@ TEST_P(QuicHeadersStreamTest, ProcessPushPromise) {
scoped_ptr<SpdySerializedFrame> frame;
SpdyPushPromiseIR push_promise(stream_id, promised_stream_id);
push_promise.set_header_block(headers_);
- frame.reset(framer_.SerializeFrame(push_promise));
+ frame.reset(framer_->SerializeFrame(push_promise));
if (perspective() == Perspective::IS_SERVER) {
EXPECT_CALL(*connection_, SendConnectionCloseWithDetails(
QUIC_INVALID_HEADERS_STREAM_DATA,
@@ -381,13 +395,13 @@ TEST_P(QuicHeadersStreamTest, EmptyHeaderHOLBlockedTime) {
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
headers_frame.set_has_priority(true);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0));
} else {
SpdyHeadersIR headers_frame(stream_id);
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
}
EXPECT_CALL(session_, OnStreamHeaders(stream_id, _));
EXPECT_CALL(session_,
@@ -415,13 +429,13 @@ TEST_P(QuicHeadersStreamTest, NonEmptyHeaderHOLBlockedTime) {
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
headers_frame.set_has_priority(true);
- frames[stream_num].reset(framer_.SerializeFrame(headers_frame));
+ frames[stream_num].reset(framer_->SerializeFrame(headers_frame));
EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0)).Times(1);
} else {
SpdyHeadersIR headers_frame(stream_id);
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
- frames[stream_num].reset(framer_.SerializeFrame(headers_frame));
+ frames[stream_num].reset(framer_->SerializeFrame(headers_frame));
}
stream_frames[stream_num].stream_id = stream_frame_.stream_id;
stream_frames[stream_num].offset = stream_frame_.offset;
@@ -465,13 +479,13 @@ TEST_P(QuicHeadersStreamTest, ProcessLargeRawData) {
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
headers_frame.set_has_priority(true);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
EXPECT_CALL(session_, OnStreamHeadersPriority(stream_id, 0));
} else {
SpdyHeadersIR headers_frame(stream_id);
headers_frame.set_header_block(headers_);
headers_frame.set_fin(fin);
- frame.reset(framer_.SerializeFrame(headers_frame));
+ frame.reset(framer_->SerializeFrame(headers_frame));
}
EXPECT_CALL(session_, OnStreamHeaders(stream_id, _))
.WillRepeatedly(WithArgs<1>(Invoke(
@@ -500,7 +514,7 @@ TEST_P(QuicHeadersStreamTest, ProcessBadData) {
TEST_P(QuicHeadersStreamTest, ProcessSpdyDataFrame) {
SpdyDataIR data(2, "");
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_,
SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY DATA frame received."))
@@ -513,7 +527,7 @@ TEST_P(QuicHeadersStreamTest, ProcessSpdyDataFrame) {
TEST_P(QuicHeadersStreamTest, ProcessSpdyRstStreamFrame) {
SpdyRstStreamIR data(2, RST_STREAM_PROTOCOL_ERROR);
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_,
SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY RST_STREAM frame received."))
@@ -527,7 +541,7 @@ TEST_P(QuicHeadersStreamTest, ProcessSpdyRstStreamFrame) {
TEST_P(QuicHeadersStreamTest, ProcessSpdySettingsFrame) {
SpdySettingsIR data;
data.AddSetting(SETTINGS_HEADER_TABLE_SIZE, true, true, 0);
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_,
SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY SETTINGS frame received."))
@@ -540,7 +554,7 @@ TEST_P(QuicHeadersStreamTest, ProcessSpdySettingsFrame) {
TEST_P(QuicHeadersStreamTest, ProcessSpdyPingFrame) {
SpdyPingIR data(1);
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_,
SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY PING frame received."))
@@ -553,7 +567,7 @@ TEST_P(QuicHeadersStreamTest, ProcessSpdyPingFrame) {
TEST_P(QuicHeadersStreamTest, ProcessSpdyGoAwayFrame) {
SpdyGoAwayIR data(1, GOAWAY_PROTOCOL_ERROR, "go away");
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_,
SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY GOAWAY frame received."))
@@ -566,7 +580,7 @@ TEST_P(QuicHeadersStreamTest, ProcessSpdyGoAwayFrame) {
TEST_P(QuicHeadersStreamTest, ProcessSpdyWindowUpdateFrame) {
SpdyWindowUpdateIR data(1, 1);
- scoped_ptr<SpdySerializedFrame> frame(framer_.SerializeFrame(data));
+ scoped_ptr<SpdySerializedFrame> frame(framer_->SerializeFrame(data));
EXPECT_CALL(*connection_, SendConnectionCloseWithDetails(
QUIC_INVALID_HEADERS_STREAM_DATA,
"SPDY WINDOW_UPDATE frame received."))

Powered by Google App Engine
This is Rietveld 408576698