| Index: net/spdy/spdy_framer_test.cc
|
| diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc
|
| index 30a654d8492a68f5844b222a43455dff4d358b7f..4d7ca5d9c848101e329ac8b37d4885f00a2b59ce 100644
|
| --- a/net/spdy/spdy_framer_test.cc
|
| +++ b/net/spdy/spdy_framer_test.cc
|
| @@ -318,12 +318,6 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
|
| << fin << ") data:\n"
|
| << base::HexEncode(data, len);
|
| EXPECT_EQ(header_stream_id_, stream_id);
|
| - if (!FLAGS_spdy_on_stream_end) {
|
| - if (len == 0) {
|
| - ++end_of_stream_count_;
|
| - }
|
| - }
|
| -
|
| data_bytes_ += len;
|
| }
|
|
|
| @@ -4598,8 +4592,6 @@ TEST_P(SpdyFramerTest, CatchProbableHttpResponse) {
|
| }
|
|
|
| TEST_P(SpdyFramerTest, DataFrameFlagsV2V3) {
|
| - FLAGS_spdy_on_stream_end = true;
|
| -
|
| if (!IsSpdy3()) {
|
| return;
|
| }
|
| @@ -4639,52 +4631,7 @@ TEST_P(SpdyFramerTest, DataFrameFlagsV2V3) {
|
| } while (++flags != 0);
|
| }
|
|
|
| -TEST_P(SpdyFramerTest, DataFrameFlagsV2V3disabled) {
|
| - FLAGS_spdy_on_stream_end = false;
|
| -
|
| - if (!IsSpdy3()) {
|
| - return;
|
| - }
|
| -
|
| - uint8_t flags = 0;
|
| - do {
|
| - SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| -
|
| - testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
|
| - SpdyFramer framer(spdy_version_);
|
| - framer.set_visitor(&visitor);
|
| -
|
| - SpdyDataIR data_ir(1, "hello");
|
| - SpdySerializedFrame frame(framer.SerializeData(data_ir));
|
| - SetFrameFlags(&frame, flags, spdy_version_);
|
| -
|
| - if (flags & ~DATA_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnError(_));
|
| - } else {
|
| - EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN));
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 5, false));
|
| - if (flags & DATA_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
|
| - }
|
| - }
|
| -
|
| - framer.ProcessInput(frame.data(), frame.size());
|
| - if (flags & ~DATA_FLAG_FIN) {
|
| - EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_INVALID_DATA_FRAME_FLAGS,
|
| - framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } else {
|
| - EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - }
|
| - } while (++flags != 0);
|
| -}
|
| -
|
| TEST_P(SpdyFramerTest, DataFrameFlagsV4) {
|
| - FLAGS_spdy_on_stream_end = true;
|
| -
|
| if (!IsHttp2()) {
|
| return;
|
| }
|
| @@ -4737,64 +4684,7 @@ TEST_P(SpdyFramerTest, DataFrameFlagsV4) {
|
| } while (++flags != 0);
|
| }
|
|
|
| -TEST_P(SpdyFramerTest, DataFrameFlagsV4disabled) {
|
| - FLAGS_spdy_on_stream_end = false;
|
| -
|
| - if (!IsHttp2()) {
|
| - return;
|
| - }
|
| -
|
| - uint8_t valid_data_flags = DATA_FLAG_FIN | DATA_FLAG_PADDED;
|
| -
|
| - uint8_t flags = 0;
|
| - do {
|
| - SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| -
|
| - testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
|
| - SpdyFramer framer(spdy_version_);
|
| - framer.set_visitor(&visitor);
|
| -
|
| - SpdyDataIR data_ir(1, "hello");
|
| - SpdySerializedFrame frame(framer.SerializeData(data_ir));
|
| - SetFrameFlags(&frame, flags, spdy_version_);
|
| -
|
| - if (flags & ~valid_data_flags) {
|
| - EXPECT_CALL(visitor, OnError(_));
|
| - } else {
|
| - EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN));
|
| - if (flags & DATA_FLAG_PADDED) {
|
| - // The first byte of payload is parsed as padding length.
|
| - EXPECT_CALL(visitor, OnStreamPadding(_, 1));
|
| - // Expect Error since the frame ends prematurely.
|
| - EXPECT_CALL(visitor, OnError(_));
|
| - } else {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 5, false));
|
| - if (flags & DATA_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
|
| - }
|
| - }
|
| - }
|
| -
|
| - framer.ProcessInput(frame.data(), frame.size());
|
| - if (flags & ~valid_data_flags) {
|
| - EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_INVALID_DATA_FRAME_FLAGS, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } else if (flags & DATA_FLAG_PADDED) {
|
| - EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_INVALID_PADDING, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } else {
|
| - EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - }
|
| - } while (++flags != 0);
|
| -}
|
| -
|
| TEST_P(SpdyFramerTest, SynStreamFrameFlags) {
|
| - FLAGS_spdy_on_stream_end = true;
|
| -
|
| if (!IsSpdy3()) {
|
| return;
|
| }
|
| @@ -4848,65 +4738,7 @@ TEST_P(SpdyFramerTest, SynStreamFrameFlags) {
|
| } while (++flags != 0);
|
| }
|
|
|
| -TEST_P(SpdyFramerTest, SynStreamFrameFlagsDisabled) {
|
| - FLAGS_spdy_on_stream_end = false;
|
| -
|
| - if (!IsSpdy3()) {
|
| - return;
|
| - }
|
| -
|
| - uint8_t flags = 0;
|
| - do {
|
| - SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| -
|
| - testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
|
| - testing::StrictMock<test::MockDebugVisitor> debug_visitor;
|
| - SpdyFramer framer(spdy_version_);
|
| - framer.set_visitor(&visitor);
|
| - framer.set_debug_visitor(&debug_visitor);
|
| -
|
| - EXPECT_CALL(debug_visitor, OnSendCompressedFrame(8, SYN_STREAM, _, _));
|
| -
|
| - SpdySynStreamIR syn_stream(8);
|
| - syn_stream.set_associated_to_stream_id(3);
|
| - syn_stream.set_priority(1);
|
| - syn_stream.SetHeader("foo", "bar");
|
| - SpdySerializedFrame frame(framer.SerializeSynStream(syn_stream));
|
| - SetFrameFlags(&frame, flags, spdy_version_);
|
| -
|
| - if (flags & ~(CONTROL_FLAG_FIN | CONTROL_FLAG_UNIDIRECTIONAL)) {
|
| - EXPECT_CALL(visitor, OnError(_));
|
| - } else {
|
| - EXPECT_CALL(debug_visitor, OnReceiveCompressedFrame(8, SYN_STREAM, _));
|
| - EXPECT_CALL(visitor, OnSynStream(8, 3, 1, flags & CONTROL_FLAG_FIN,
|
| - flags & CONTROL_FLAG_UNIDIRECTIONAL));
|
| - EXPECT_CALL(visitor, OnControlFrameHeaderData(8, _, _))
|
| - .WillRepeatedly(testing::Return(true));
|
| - if (flags & DATA_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
|
| - } else {
|
| - // Do not close the stream if we are expecting a CONTINUATION frame.
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true)).Times(0);
|
| - }
|
| - }
|
| -
|
| - framer.ProcessInput(frame.data(), frame.size());
|
| - if (flags & ~(CONTROL_FLAG_FIN | CONTROL_FLAG_UNIDIRECTIONAL)) {
|
| - EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME_FLAGS,
|
| - framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } else {
|
| - EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - }
|
| - } while (++flags != 0);
|
| -}
|
| -
|
| TEST_P(SpdyFramerTest, SynReplyFrameFlags) {
|
| - FLAGS_spdy_on_stream_end = true;
|
| -
|
| if (!IsSpdy3()) {
|
| return;
|
| }
|
| @@ -4949,51 +4781,6 @@ TEST_P(SpdyFramerTest, SynReplyFrameFlags) {
|
| } while (++flags != 0);
|
| }
|
|
|
| -TEST_P(SpdyFramerTest, SynReplyFrameFlagsDisabled) {
|
| - FLAGS_spdy_on_stream_end = false;
|
| -
|
| - if (!IsSpdy3()) {
|
| - return;
|
| - }
|
| -
|
| - uint8_t flags = 0;
|
| - do {
|
| - SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| -
|
| - testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
|
| - SpdyFramer framer(spdy_version_);
|
| - framer.set_visitor(&visitor);
|
| -
|
| - SpdySynReplyIR syn_reply(37);
|
| - syn_reply.SetHeader("foo", "bar");
|
| - SpdySerializedFrame frame(framer.SerializeSynReply(syn_reply));
|
| - SetFrameFlags(&frame, flags, spdy_version_);
|
| -
|
| - if (flags & ~CONTROL_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnError(_));
|
| - } else {
|
| - EXPECT_CALL(visitor, OnSynReply(37, flags & CONTROL_FLAG_FIN));
|
| - EXPECT_CALL(visitor, OnControlFrameHeaderData(37, _, _))
|
| - .WillRepeatedly(testing::Return(true));
|
| - if (flags & DATA_FLAG_FIN) {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
|
| - }
|
| - }
|
| -
|
| - framer.ProcessInput(frame.data(), frame.size());
|
| - if (flags & ~CONTROL_FLAG_FIN) {
|
| - EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME_FLAGS,
|
| - framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } else {
|
| - EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - }
|
| - } while (++flags != 0);
|
| -}
|
| -
|
| TEST_P(SpdyFramerTest, RstStreamFrameFlags) {
|
| uint8_t flags = 0;
|
| do {
|
| @@ -5126,8 +4913,6 @@ TEST_P(SpdyFramerTest, GoawayFrameFlags) {
|
| }
|
|
|
| TEST_P(SpdyFramerTest, HeadersFrameFlags) {
|
| - FLAGS_spdy_on_stream_end = true;
|
| -
|
| uint8_t flags = 0;
|
| do {
|
| SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| @@ -5186,66 +4971,6 @@ TEST_P(SpdyFramerTest, HeadersFrameFlags) {
|
| } while (++flags != 0);
|
| }
|
|
|
| -TEST_P(SpdyFramerTest, HeadersFrameFlagsDisabled) {
|
| - FLAGS_spdy_on_stream_end = false;
|
| -
|
| - uint8_t flags = 0;
|
| - do {
|
| - SCOPED_TRACE(testing::Message() << "Flags " << flags);
|
| -
|
| - testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
|
| - SpdyFramer framer(spdy_version_);
|
| - framer.set_visitor(&visitor);
|
| -
|
| - SpdyHeadersIR headers_ir(57);
|
| - if (IsHttp2() && (flags & HEADERS_FLAG_PRIORITY)) {
|
| - headers_ir.set_priority(3);
|
| - headers_ir.set_has_priority(true);
|
| - headers_ir.set_parent_stream_id(5);
|
| - headers_ir.set_exclusive(true);
|
| - }
|
| - headers_ir.SetHeader("foo", "bar");
|
| - SpdySerializedFrame frame(framer.SerializeHeaders(headers_ir));
|
| - uint8_t set_flags = flags;
|
| - if (IsHttp2()) {
|
| - // TODO(jgraettinger): Add padding to SpdyHeadersIR,
|
| - // and implement framing.
|
| - set_flags &= ~HEADERS_FLAG_PADDED;
|
| - }
|
| - SetFrameFlags(&frame, set_flags, spdy_version_);
|
| -
|
| - // Expected callback values
|
| - SpdyStreamId stream_id = 57;
|
| - bool has_priority = false;
|
| - SpdyPriority priority = 0;
|
| - SpdyStreamId parent_stream_id = 0;
|
| - bool exclusive = false;
|
| - bool fin = flags & CONTROL_FLAG_FIN;
|
| - bool end = IsSpdy3() || (flags & HEADERS_FLAG_END_HEADERS);
|
| - if (IsHttp2() && flags & HEADERS_FLAG_PRIORITY) {
|
| - has_priority = true;
|
| - priority = 3;
|
| - parent_stream_id = 5;
|
| - exclusive = true;
|
| - }
|
| - EXPECT_CALL(visitor, OnHeaders(stream_id, has_priority, priority,
|
| - parent_stream_id, exclusive, fin, end));
|
| - EXPECT_CALL(visitor, OnControlFrameHeaderData(57, _, _))
|
| - .WillRepeatedly(testing::Return(true));
|
| - if (flags & DATA_FLAG_FIN &&
|
| - (IsSpdy3() || flags & HEADERS_FLAG_END_HEADERS)) {
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
|
| - } else {
|
| - // Do not close the stream if we are expecting a CONTINUATION frame.
|
| - EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true)).Times(0);
|
| - }
|
| - framer.ProcessInput(frame.data(), frame.size());
|
| - EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
|
| - EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
|
| - << SpdyFramer::ErrorCodeToString(framer.error_code());
|
| - } while (++flags != 0);
|
| -}
|
| -
|
| TEST_P(SpdyFramerTest, PingFrameFlags) {
|
| uint8_t flags = 0;
|
| do {
|
|
|