Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Side by Side Diff: net/spdy/spdy_framer_test.cc

Issue 12224137: Centralize logic for calculating (minimum) size of SPDY frames, by type, in SpdyFramer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698