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 3002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3013 SpdyControlFrame control_frame(&garbage_frame[0], false); | 3013 SpdyControlFrame control_frame(&garbage_frame[0], false); |
3014 control_frame.set_version(spdy_version_); | 3014 control_frame.set_version(spdy_version_); |
3015 TestSpdyVisitor visitor(spdy_version_); | 3015 TestSpdyVisitor visitor(spdy_version_); |
3016 visitor.use_compression_ = false; | 3016 visitor.use_compression_ = false; |
3017 visitor.SimulateInFramer( | 3017 visitor.SimulateInFramer( |
3018 reinterpret_cast<unsigned char*>(control_frame.data()), | 3018 reinterpret_cast<unsigned char*>(control_frame.data()), |
3019 sizeof(garbage_frame)); | 3019 sizeof(garbage_frame)); |
3020 EXPECT_EQ(1, visitor.error_count_); | 3020 EXPECT_EQ(1, visitor.error_count_); |
3021 } | 3021 } |
3022 | 3022 |
| 3023 TEST_P(SpdyFramerTest, SizesTest) { |
| 3024 SpdyFramer framer(spdy_version_); |
| 3025 EXPECT_EQ(8u, framer.GetControlFrameMinimumSize()); |
| 3026 EXPECT_EQ(18u, framer.GetSynStreamMinimumSize()); |
| 3027 EXPECT_EQ(IsSpdy2() ? 14u : 12u, framer.GetSynReplyMinimumSize()); |
| 3028 EXPECT_EQ(16u, framer.GetRstStreamSize()); |
| 3029 EXPECT_EQ(12u, framer.GetSettingsMinimumSize()); |
| 3030 EXPECT_EQ(12u, framer.GetPingSize()); |
| 3031 EXPECT_EQ(IsSpdy2() ? 12u : 16u, framer.GetGoAwaySize()); |
| 3032 EXPECT_EQ(IsSpdy2() ? 14u : 12u, framer.GetHeadersMinimumSize()); |
| 3033 EXPECT_EQ(16u, framer.GetWindowUpdateSize()); |
| 3034 EXPECT_EQ(10u, framer.GetCredentialMinimumSize()); |
| 3035 } |
| 3036 |
3023 TEST_P(SpdyFramerTest, StateToStringTest) { | 3037 TEST_P(SpdyFramerTest, StateToStringTest) { |
3024 EXPECT_STREQ("ERROR", | 3038 EXPECT_STREQ("ERROR", |
3025 SpdyFramer::StateToString(SpdyFramer::SPDY_ERROR)); | 3039 SpdyFramer::StateToString(SpdyFramer::SPDY_ERROR)); |
3026 EXPECT_STREQ("DONE", | 3040 EXPECT_STREQ("DONE", |
3027 SpdyFramer::StateToString(SpdyFramer::SPDY_DONE)); | 3041 SpdyFramer::StateToString(SpdyFramer::SPDY_DONE)); |
3028 EXPECT_STREQ("AUTO_RESET", | 3042 EXPECT_STREQ("AUTO_RESET", |
3029 SpdyFramer::StateToString(SpdyFramer::SPDY_AUTO_RESET)); | 3043 SpdyFramer::StateToString(SpdyFramer::SPDY_AUTO_RESET)); |
3030 EXPECT_STREQ("RESET", | 3044 EXPECT_STREQ("RESET", |
3031 SpdyFramer::StateToString(SpdyFramer::SPDY_RESET)); | 3045 SpdyFramer::StateToString(SpdyFramer::SPDY_RESET)); |
3032 EXPECT_STREQ("READING_COMMON_HEADER", | 3046 EXPECT_STREQ("READING_COMMON_HEADER", |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3128 EXPECT_STREQ("HEADERS", | 3142 EXPECT_STREQ("HEADERS", |
3129 SpdyFramer::ControlTypeToString(HEADERS)); | 3143 SpdyFramer::ControlTypeToString(HEADERS)); |
3130 EXPECT_STREQ("WINDOW_UPDATE", | 3144 EXPECT_STREQ("WINDOW_UPDATE", |
3131 SpdyFramer::ControlTypeToString(WINDOW_UPDATE)); | 3145 SpdyFramer::ControlTypeToString(WINDOW_UPDATE)); |
3132 EXPECT_STREQ("CREDENTIAL", | 3146 EXPECT_STREQ("CREDENTIAL", |
3133 SpdyFramer::ControlTypeToString(CREDENTIAL)); | 3147 SpdyFramer::ControlTypeToString(CREDENTIAL)); |
3134 EXPECT_STREQ("UNKNOWN_CONTROL_TYPE", | 3148 EXPECT_STREQ("UNKNOWN_CONTROL_TYPE", |
3135 SpdyFramer::ControlTypeToString(NUM_CONTROL_FRAME_TYPES)); | 3149 SpdyFramer::ControlTypeToString(NUM_CONTROL_FRAME_TYPES)); |
3136 } | 3150 } |
3137 | 3151 |
3138 TEST_P(SpdyFramerTest, GetMinimumControlFrameSizeTest) { | |
3139 EXPECT_EQ(SpdySynStreamControlFrame::size(), | |
3140 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3141 SYN_STREAM)); | |
3142 EXPECT_EQ(SpdySynReplyControlFrame::size(), | |
3143 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3144 SYN_REPLY)); | |
3145 EXPECT_EQ(SpdyRstStreamControlFrame::size(), | |
3146 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3147 RST_STREAM)); | |
3148 EXPECT_EQ(SpdySettingsControlFrame::size(), | |
3149 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3150 SETTINGS)); | |
3151 EXPECT_EQ(SpdyFrame::kHeaderSize, | |
3152 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3153 NOOP)); | |
3154 EXPECT_EQ(SpdyPingControlFrame::size(), | |
3155 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3156 PING)); | |
3157 size_t goaway_size = SpdyGoAwayControlFrame::size(); | |
3158 if (IsSpdy2()) { | |
3159 // SPDY 2 GOAWAY is smaller by 32 bits. | |
3160 goaway_size -= 4; | |
3161 } | |
3162 EXPECT_EQ(goaway_size, | |
3163 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3164 GOAWAY)); | |
3165 EXPECT_EQ(SpdyHeadersControlFrame::size(), | |
3166 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3167 HEADERS)); | |
3168 EXPECT_EQ(SpdyWindowUpdateControlFrame::size(), | |
3169 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3170 WINDOW_UPDATE)); | |
3171 EXPECT_EQ(SpdyCredentialControlFrame::size(), | |
3172 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3173 CREDENTIAL)); | |
3174 EXPECT_EQ(numeric_limits<size_t>::max(), | |
3175 SpdyFramer::GetMinimumControlFrameSize(spdy_version_, | |
3176 NUM_CONTROL_FRAME_TYPES)); | |
3177 } | |
3178 | |
3179 TEST_P(SpdyFramerTest, CatchProbableHttpResponse) { | 3152 TEST_P(SpdyFramerTest, CatchProbableHttpResponse) { |
3180 { | 3153 { |
3181 testing::StrictMock<test::MockVisitor> visitor; | 3154 testing::StrictMock<test::MockVisitor> visitor; |
3182 SpdyFramer framer(spdy_version_); | 3155 SpdyFramer framer(spdy_version_); |
3183 framer.set_visitor(&visitor); | 3156 framer.set_visitor(&visitor); |
3184 | 3157 |
3185 EXPECT_CALL(visitor, OnError(_)); | 3158 EXPECT_CALL(visitor, OnError(_)); |
3186 framer.ProcessInput("HTTP/1.1", 8); | 3159 framer.ProcessInput("HTTP/1.1", 8); |
3187 EXPECT_TRUE(framer.probable_http_response()); | 3160 EXPECT_TRUE(framer.probable_http_response()); |
3188 EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state()); | 3161 EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state()); |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3573 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304); | 3546 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304); |
3574 | 3547 |
3575 SettingsFlagsAndId id_and_flags = | 3548 SettingsFlagsAndId id_and_flags = |
3576 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); | 3549 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); |
3577 EXPECT_EQ(kId, id_and_flags.id()); | 3550 EXPECT_EQ(kId, id_and_flags.id()); |
3578 EXPECT_EQ(kFlags, id_and_flags.flags()); | 3551 EXPECT_EQ(kFlags, id_and_flags.flags()); |
3579 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); | 3552 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); |
3580 } | 3553 } |
3581 | 3554 |
3582 } // namespace net | 3555 } // namespace net |
OLD | NEW |