Index: net/spdy/spdy_framer_test.cc |
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc |
index 490cc4cf84bf37e57fa2077e058fe4401d8648ce..e45056ddab5bec27e47186d8cd09a602f72fede3 100644 |
--- a/net/spdy/spdy_framer_test.cc |
+++ b/net/spdy/spdy_framer_test.cc |
@@ -3424,17 +3424,13 @@ TEST_P(SpdyFramerTest, CreateAltSvc) { |
SpdyFramer framer(spdy_version_); |
const char kDescription[] = "ALTSVC frame"; |
- const unsigned char kType = static_cast<unsigned char>( |
+ const char kType = static_cast<unsigned char>( |
SpdyConstants::SerializeFrameType(spdy_version_, ALTSVC)); |
const unsigned char kFrameData[] = { |
- 0x00, 0x00, 0x17, kType, 0x00, |
- 0x00, 0x00, 0x00, 0x03, |
- 0x00, 0x00, 0x00, 0x05, |
- 0x01, 0xbb, 0x00, 0x04, // Port = 443 |
- 'p', 'i', 'd', '1', // Protocol-ID |
- 0x04, 'h', 'o', 's', |
- 't', 'o', 'r', 'i', |
- 'g', 'i', 'n', |
+ 0x00, 0x00, 0x1d, kType, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, |
+ 0x06, 'o', 'r', 'i', 'g', 'i', 'n', 'p', 'i', 'd', |
+ '1', '=', '"', 'h', 'o', 's', 't', ':', '4', '4', |
+ '3', '"', ';', ' ', 'm', 'a', '=', '5', |
}; |
SpdyAltSvcIR altsvc_ir(3); |
altsvc_ir.set_max_age(5); |
@@ -4708,7 +4704,7 @@ TEST_P(SpdyFramerTest, SizesTest) { |
EXPECT_EQ(13u, framer.GetWindowUpdateSize()); |
EXPECT_EQ(9u, framer.GetBlockedSize()); |
EXPECT_EQ(13u, framer.GetPushPromiseMinimumSize()); |
- EXPECT_EQ(18u, framer.GetAltSvcMinimumSize()); |
+ EXPECT_EQ(11u, framer.GetAltSvcMinimumSize()); |
EXPECT_EQ(9u, framer.GetFrameMinimumSize()); |
EXPECT_EQ(16393u, framer.GetFrameMaximumSize()); |
EXPECT_EQ(16384u, framer.GetDataFrameMaximumPayload()); |
@@ -5712,10 +5708,7 @@ TEST_P(SpdyFramerTest, OnAltSvc) { |
altsvc_ir.set_host("h1"); |
altsvc_ir.set_origin("o1"); |
scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(altsvc_ir)); |
- framer.ProcessInput(frame->data(), framer.GetAltSvcMinimumSize() + |
- altsvc_ir.protocol_id().length() + |
- altsvc_ir.host().length() + |
- altsvc_ir.origin().length()); |
+ framer.ProcessInput(frame->data(), frame->size()); |
EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); |
EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) |
@@ -5733,22 +5726,18 @@ TEST_P(SpdyFramerTest, OnAltSvcNoOrigin) { |
SpdyFramer framer(spdy_version_); |
framer.set_visitor(&visitor); |
- EXPECT_CALL(visitor, OnAltSvc(kStreamId, |
- 10, |
- 443, |
- StringPiece("pid"), |
- StringPiece("h1"), |
- StringPiece(""))); |
+ EXPECT_CALL(visitor, |
+ OnAltSvc(kStreamId, 10, 443, StringPiece("p\"=i:d"), |
+ StringPiece("h_\\o\"st"), StringPiece("o_r|g!n"))); |
SpdyAltSvcIR altsvc_ir(1); |
altsvc_ir.set_max_age(10); |
altsvc_ir.set_port(443); |
- altsvc_ir.set_protocol_id("pid"); |
- altsvc_ir.set_host("h1"); |
+ altsvc_ir.set_protocol_id("p\"=i:d"); |
+ altsvc_ir.set_host("h_\\o\"st"); |
+ altsvc_ir.set_origin("o_r|g!n"); |
scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(altsvc_ir)); |
- framer.ProcessInput(frame->data(), framer.GetAltSvcMinimumSize() + |
- altsvc_ir.protocol_id().length() + |
- altsvc_ir.host().length()); |
+ framer.ProcessInput(frame->data(), frame->size()); |
EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); |
EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) |
@@ -5772,9 +5761,7 @@ TEST_P(SpdyFramerTest, OnAltSvcEmptyProtocolId) { |
altsvc_ir.set_host("h1"); |
altsvc_ir.set_origin("o1"); |
scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(altsvc_ir)); |
- framer.ProcessInput(frame->data(), framer.GetAltSvcMinimumSize() + |
- altsvc_ir.protocol_id().length() + |
- altsvc_ir.host().length()); |
+ framer.ProcessInput(frame->data(), frame->size()); |
EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state()); |
EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, framer.error_code()) |
@@ -5786,97 +5773,26 @@ TEST_P(SpdyFramerTest, OnAltSvcBadLengths) { |
return; |
} |
- const unsigned char kType = static_cast<unsigned char>( |
- SpdyConstants::SerializeFrameType(spdy_version_, ALTSVC)); |
- { |
- TestSpdyVisitor visitor(spdy_version_); |
- SpdyFramer framer(spdy_version_); |
- framer.set_visitor(&visitor); |
- |
- const unsigned char kFrameDataLargePIDLen[] = { |
- 0x00, 0x00, 0x17, kType, 0x00, |
- 0x00, 0x00, 0x00, 0x03, |
- 0x00, 0x00, 0x00, 0x05, |
- 0x01, 0xbb, 0x00, 0x05, // Port = 443 |
- 'p', 'i', 'd', '1', // Protocol-ID |
- 0x04, 'h', 'o', 's', |
- 't', 'o', 'r', 'i', |
- 'g', 'i', 'n', |
- }; |
- |
- visitor.SimulateInFramer(kFrameDataLargePIDLen, |
- sizeof(kFrameDataLargePIDLen)); |
- EXPECT_EQ(1, visitor.error_count_); |
- EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, |
- visitor.framer_.error_code()); |
- } |
- |
- { |
- TestSpdyVisitor visitor(spdy_version_); |
- SpdyFramer framer(spdy_version_); |
- framer.set_visitor(&visitor); |
- const unsigned char kFrameDataPIDLenLargerThanFrame[] = { |
- 0x00, 0x00, 0x17, kType, 0x00, |
- 0x00, 0x00, 0x00, 0x03, |
- 0x00, 0x00, 0x00, 0x05, |
- 0x01, 0xbb, 0x00, 0x99, // Port = 443 |
- 'p', 'i', 'd', '1', // Protocol-ID |
- 0x04, 'h', 'o', 's', |
- 't', 'o', 'r', 'i', |
- 'g', 'i', 'n', |
- }; |
- |
- visitor.SimulateInFramer(kFrameDataPIDLenLargerThanFrame, |
- sizeof(kFrameDataPIDLenLargerThanFrame)); |
- EXPECT_EQ(1, visitor.error_count_); |
- EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, |
- visitor.framer_.error_code()); |
- } |
- |
- { |
- TestSpdyVisitor visitor(spdy_version_); |
- SpdyFramer framer(spdy_version_); |
- framer.set_visitor(&visitor); |
+ const SpdyStreamId kStreamId = 1; |
- const unsigned char kFrameDataLargeHostLen[] = { |
- 0x00, 0x00, 0x17, kType, 0x00, |
- 0x00, 0x00, 0x00, 0x03, |
- 0x00, 0x00, 0x00, 0x05, |
- 0x01, 0xbb, 0x00, 0x04, // Port = 443 |
- 'p', 'i', 'd', '1', // Protocol-ID |
- 0x0f, 'h', 'o', 's', |
- 't', 'o', 'r', 'i', |
- 'g', 'i', 'n', |
- }; |
+ testing::StrictMock<test::MockSpdyFramerVisitor> visitor; |
+ SpdyFramer framer(spdy_version_); |
+ framer.set_visitor(&visitor); |
- visitor.SimulateInFramer(kFrameDataLargeHostLen, |
- sizeof(kFrameDataLargeHostLen)); |
- EXPECT_EQ(1, visitor.error_count_); |
- EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, |
- visitor.framer_.error_code()); |
- } |
+ EXPECT_CALL(visitor, OnAltSvc(kStreamId, 10, 443, StringPiece("pid"), |
+ StringPiece("h1"), StringPiece(""))); |
- { |
- TestSpdyVisitor visitor(spdy_version_); |
- SpdyFramer framer(spdy_version_); |
- framer.set_visitor(&visitor); |
- const unsigned char kFrameDataSmallPIDLen[] = { |
- 0x00, 0x00, 0x17, kType, 0x00, |
- 0x00, 0x00, 0x00, 0x03, |
- 0x00, 0x00, 0x00, 0x05, |
- 0x01, 0xbb, 0x00, 0x01, // Port = 443 |
- 'p', 'i', 'd', '1', // Protocol-ID |
- 0x04, 'h', 'o', 's', |
- 't', 'o', 'r', 'i', |
- 'g', 'i', 'n', |
- }; |
+ SpdyAltSvcIR altsvc_ir(1); |
+ altsvc_ir.set_max_age(10); |
+ altsvc_ir.set_port(443); |
+ altsvc_ir.set_protocol_id("pid"); |
+ altsvc_ir.set_host("h1"); |
+ scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(altsvc_ir)); |
+ framer.ProcessInput(frame->data(), frame->size()); |
- visitor.SimulateInFramer(kFrameDataSmallPIDLen, |
- sizeof(kFrameDataSmallPIDLen)); |
- EXPECT_EQ(1, visitor.error_count_); |
- EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, |
- visitor.framer_.error_code()); |
- } |
+ EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); |
+ EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) |
+ << SpdyFramer::ErrorCodeToString(framer.error_code()); |
} |
// Tests handling of ALTSVC frames delivered in small chunks. |
@@ -5884,6 +5800,7 @@ TEST_P(SpdyFramerTest, ReadChunkedAltSvcFrame) { |
if (spdy_version_ <= SPDY3) { |
return; |
} |
+ |
SpdyFramer framer(spdy_version_); |
SpdyAltSvcIR altsvc_ir(1); |
altsvc_ir.set_max_age(20); |