OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <algorithm> | 5 #include <algorithm> |
6 #include <iostream> | 6 #include <iostream> |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 3915 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3926 SpdyFramer::StatusCodeToString(RST_STREAM_REFUSED_STREAM)); | 3926 SpdyFramer::StatusCodeToString(RST_STREAM_REFUSED_STREAM)); |
3927 EXPECT_STREQ("UNSUPPORTED_VERSION", | 3927 EXPECT_STREQ("UNSUPPORTED_VERSION", |
3928 SpdyFramer::StatusCodeToString(RST_STREAM_UNSUPPORTED_VERSION)); | 3928 SpdyFramer::StatusCodeToString(RST_STREAM_UNSUPPORTED_VERSION)); |
3929 EXPECT_STREQ("CANCEL", | 3929 EXPECT_STREQ("CANCEL", |
3930 SpdyFramer::StatusCodeToString(RST_STREAM_CANCEL)); | 3930 SpdyFramer::StatusCodeToString(RST_STREAM_CANCEL)); |
3931 EXPECT_STREQ("INTERNAL_ERROR", | 3931 EXPECT_STREQ("INTERNAL_ERROR", |
3932 SpdyFramer::StatusCodeToString(RST_STREAM_INTERNAL_ERROR)); | 3932 SpdyFramer::StatusCodeToString(RST_STREAM_INTERNAL_ERROR)); |
3933 EXPECT_STREQ("FLOW_CONTROL_ERROR", | 3933 EXPECT_STREQ("FLOW_CONTROL_ERROR", |
3934 SpdyFramer::StatusCodeToString(RST_STREAM_FLOW_CONTROL_ERROR)); | 3934 SpdyFramer::StatusCodeToString(RST_STREAM_FLOW_CONTROL_ERROR)); |
3935 EXPECT_STREQ("UNKNOWN_STATUS", | 3935 EXPECT_STREQ("UNKNOWN_STATUS", |
3936 SpdyFramer::StatusCodeToString(RST_STREAM_NUM_STATUS_CODES)); | 3936 SpdyFramer::StatusCodeToString(-1)); |
3937 } | 3937 } |
3938 | 3938 |
3939 TEST_P(SpdyFramerTest, FrameTypeToStringTest) { | 3939 TEST_P(SpdyFramerTest, FrameTypeToStringTest) { |
3940 EXPECT_STREQ("DATA", | 3940 EXPECT_STREQ("DATA", |
3941 SpdyFramer::FrameTypeToString(DATA)); | 3941 SpdyFramer::FrameTypeToString(DATA)); |
3942 EXPECT_STREQ("SYN_STREAM", | 3942 EXPECT_STREQ("SYN_STREAM", |
3943 SpdyFramer::FrameTypeToString(SYN_STREAM)); | 3943 SpdyFramer::FrameTypeToString(SYN_STREAM)); |
3944 EXPECT_STREQ("SYN_REPLY", | 3944 EXPECT_STREQ("SYN_REPLY", |
3945 SpdyFramer::FrameTypeToString(SYN_REPLY)); | 3945 SpdyFramer::FrameTypeToString(SYN_REPLY)); |
3946 EXPECT_STREQ("RST_STREAM", | 3946 EXPECT_STREQ("RST_STREAM", |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4616 | 4616 |
4617 SettingsFlagsAndId id_and_flags = | 4617 SettingsFlagsAndId id_and_flags = |
4618 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); | 4618 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); |
4619 EXPECT_EQ(kId, id_and_flags.id()); | 4619 EXPECT_EQ(kId, id_and_flags.id()); |
4620 EXPECT_EQ(kFlags, id_and_flags.flags()); | 4620 EXPECT_EQ(kFlags, id_and_flags.flags()); |
4621 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); | 4621 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); |
4622 } | 4622 } |
4623 | 4623 |
4624 // Test handling of a RST_STREAM with out-of-bounds status codes. | 4624 // Test handling of a RST_STREAM with out-of-bounds status codes. |
4625 TEST_P(SpdyFramerTest, RstStreamStatusBounds) { | 4625 TEST_P(SpdyFramerTest, RstStreamStatusBounds) { |
4626 DCHECK_GE(0xff, RST_STREAM_NUM_STATUS_CODES); | 4626 const unsigned char kRstStreamStatusTooLow = 0x00; |
4627 | 4627 const unsigned char kRstStreamStatusTooHigh = 0xff; |
4628 const unsigned char kV3RstStreamInvalid[] = { | 4628 const unsigned char kV3RstStreamInvalid[] = { |
4629 0x80, spdy_version_ch_, 0x00, 0x03, | 4629 0x80, spdy_version_ch_, 0x00, 0x03, |
4630 0x00, 0x00, 0x00, 0x08, | 4630 0x00, 0x00, 0x00, 0x08, |
4631 0x00, 0x00, 0x00, 0x01, | 4631 0x00, 0x00, 0x00, 0x01, |
4632 0x00, 0x00, 0x00, RST_STREAM_INVALID | 4632 0x00, 0x00, 0x00, kRstStreamStatusTooLow |
4633 }; | 4633 }; |
4634 const unsigned char kV4RstStreamInvalid[] = { | 4634 const unsigned char kV4RstStreamInvalid[] = { |
4635 0x00, 0x04, 0x03, 0x00, | 4635 0x00, 0x04, 0x03, 0x00, |
4636 0x00, 0x00, 0x00, 0x01, | 4636 0x00, 0x00, 0x00, 0x01, |
4637 0x00, 0x00, 0x00, RST_STREAM_INVALID | 4637 0x00, 0x00, 0x00, kRstStreamStatusTooLow |
4638 }; | 4638 }; |
4639 | 4639 |
4640 const unsigned char kV3RstStreamNumStatusCodes[] = { | 4640 const unsigned char kV3RstStreamNumStatusCodes[] = { |
4641 0x80, spdy_version_ch_, 0x00, 0x03, | 4641 0x80, spdy_version_ch_, 0x00, 0x03, |
4642 0x00, 0x00, 0x00, 0x08, | 4642 0x00, 0x00, 0x00, 0x08, |
4643 0x00, 0x00, 0x00, 0x01, | 4643 0x00, 0x00, 0x00, 0x01, |
4644 0x00, 0x00, 0x00, RST_STREAM_NUM_STATUS_CODES | 4644 0x00, 0x00, 0x00, kRstStreamStatusTooHigh |
4645 }; | 4645 }; |
4646 const unsigned char kV4RstStreamNumStatusCodes[] = { | 4646 const unsigned char kV4RstStreamNumStatusCodes[] = { |
4647 0x00, 0x04, 0x03, 0x00, | 4647 0x00, 0x04, 0x03, 0x00, |
4648 0x00, 0x00, 0x00, 0x01, | 4648 0x00, 0x00, 0x00, 0x01, |
4649 0x00, 0x00, 0x00, RST_STREAM_NUM_STATUS_CODES | 4649 0x00, 0x00, 0x00, kRstStreamStatusTooHigh |
4650 }; | 4650 }; |
4651 | 4651 |
4652 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; | 4652 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; |
4653 SpdyFramer framer(spdy_version_); | 4653 SpdyFramer framer(spdy_version_); |
4654 framer.set_visitor(&visitor); | 4654 framer.set_visitor(&visitor); |
4655 | 4655 |
4656 EXPECT_CALL(visitor, OnRstStream(1, RST_STREAM_INVALID)); | 4656 EXPECT_CALL(visitor, OnRstStream(1, RST_STREAM_INVALID)); |
4657 if (IsSpdy4()) { | 4657 if (IsSpdy4()) { |
4658 framer.ProcessInput(reinterpret_cast<const char*>(kV4RstStreamInvalid), | 4658 framer.ProcessInput(reinterpret_cast<const char*>(kV4RstStreamInvalid), |
4659 arraysize(kV4RstStreamInvalid)); | 4659 arraysize(kV4RstStreamInvalid)); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4736 SpdyBlockedIR blocked_ir(0); | 4736 SpdyBlockedIR blocked_ir(0); |
4737 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(blocked_ir)); | 4737 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(blocked_ir)); |
4738 framer.ProcessInput(frame->data(), framer.GetBlockedSize()); | 4738 framer.ProcessInput(frame->data(), framer.GetBlockedSize()); |
4739 | 4739 |
4740 EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); | 4740 EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); |
4741 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) | 4741 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) |
4742 << SpdyFramer::ErrorCodeToString(framer.error_code()); | 4742 << SpdyFramer::ErrorCodeToString(framer.error_code()); |
4743 } | 4743 } |
4744 | 4744 |
4745 } // namespace net | 4745 } // namespace net |
OLD | NEW |