| 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 |