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

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

Issue 12207148: Getting rid of SpdyFramer::GetControlFrameStreamId(), which cleans up the code and also makes it ea… (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 1630 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 0, // associated stream id 1641 0, // associated stream id
1642 framer.GetLowestPriority(), 1642 framer.GetLowestPriority(),
1643 kCre, // credential slot 1643 kCre, // credential slot
1644 CONTROL_FLAG_NONE, 1644 CONTROL_FLAG_NONE,
1645 false, // compress 1645 false, // compress
1646 &headers)); 1646 &headers));
1647 CompareFrame(kDescription, 1647 CompareFrame(kDescription,
1648 *frame, 1648 *frame,
1649 IsSpdy2() ? kV2FrameData : kV3FrameData, 1649 IsSpdy2() ? kV2FrameData : kV3FrameData,
1650 IsSpdy2() ? arraysize(kV2FrameData) : arraysize(kV3FrameData)); 1650 IsSpdy2() ? arraysize(kV2FrameData) : arraysize(kV3FrameData));
1651 EXPECT_EQ(1u, SpdyFramer::GetControlFrameStreamId(frame.get()));
1652 } 1651 }
1653 1652
1654 { 1653 {
1655 const char kDescription[] = 1654 const char kDescription[] =
1656 "SYN_STREAM frame with a 0-length header name, highest pri, FIN, " 1655 "SYN_STREAM frame with a 0-length header name, highest pri, FIN, "
1657 "max stream ID"; 1656 "max stream ID";
1658 1657
1659 SpdyHeaderBlock headers; 1658 SpdyHeaderBlock headers;
1660 headers[""] = "foo"; 1659 headers[""] = "foo";
1661 headers["foo"] = "bar"; 1660 headers["foo"] = "bar";
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
2008 const char kDescription[] = "RST_STREAM frame"; 2007 const char kDescription[] = "RST_STREAM frame";
2009 const unsigned char kFrameData[] = { 2008 const unsigned char kFrameData[] = {
2010 0x80, spdy_version_, 0x00, 0x03, 2009 0x80, spdy_version_, 0x00, 0x03,
2011 0x00, 0x00, 0x00, 0x08, 2010 0x00, 0x00, 0x00, 0x08,
2012 0x00, 0x00, 0x00, 0x01, 2011 0x00, 0x00, 0x00, 0x01,
2013 0x00, 0x00, 0x00, 0x01, 2012 0x00, 0x00, 0x00, 0x01,
2014 }; 2013 };
2015 scoped_ptr<SpdyRstStreamControlFrame> frame( 2014 scoped_ptr<SpdyRstStreamControlFrame> frame(
2016 framer.CreateRstStream(1, RST_STREAM_PROTOCOL_ERROR)); 2015 framer.CreateRstStream(1, RST_STREAM_PROTOCOL_ERROR));
2017 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); 2016 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData));
2018 EXPECT_EQ(1u, SpdyFramer::GetControlFrameStreamId(frame.get()));
2019 } 2017 }
2020 2018
2021 { 2019 {
2022 const char kDescription[] = "RST_STREAM frame with max stream ID"; 2020 const char kDescription[] = "RST_STREAM frame with max stream ID";
2023 const unsigned char kFrameData[] = { 2021 const unsigned char kFrameData[] = {
2024 0x80, spdy_version_, 0x00, 0x03, 2022 0x80, spdy_version_, 0x00, 0x03,
2025 0x00, 0x00, 0x00, 0x08, 2023 0x00, 0x00, 0x00, 0x08,
2026 0x7f, 0xff, 0xff, 0xff, 2024 0x7f, 0xff, 0xff, 0xff,
2027 0x00, 0x00, 0x00, 0x01, 2025 0x00, 0x00, 0x00, 0x01,
2028 }; 2026 };
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2075 0x00, 0x00, 0x00, 0x01, 2073 0x00, 0x00, 0x00, 0x01,
2076 0x01, 0x02, 0x03, 0x04, 2074 0x01, 0x02, 0x03, 0x04,
2077 0x0a, 0x0b, 0x0c, 0x0d, 2075 0x0a, 0x0b, 0x0c, 0x0d,
2078 }; 2076 };
2079 2077
2080 scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings)); 2078 scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings));
2081 CompareFrame(kDescription, 2079 CompareFrame(kDescription,
2082 *frame, 2080 *frame,
2083 IsSpdy2() ? kFrameDatav2 : kFrameDatav3, 2081 IsSpdy2() ? kFrameDatav2 : kFrameDatav3,
2084 arraysize(kFrameDatav3)); // Size is unchanged among versions. 2082 arraysize(kFrameDatav3)); // Size is unchanged among versions.
2085 EXPECT_EQ(SpdyFramer::kInvalidStream,
2086 SpdyFramer::GetControlFrameStreamId(frame.get()));
2087 2083
2088 // Make sure that ParseSettings also works as advertised. 2084 // Make sure that ParseSettings also works as advertised.
2089 SettingsMap parsed_settings; 2085 SettingsMap parsed_settings;
2090 EXPECT_TRUE(framer.ParseSettings(frame.get(), &parsed_settings)); 2086 EXPECT_TRUE(framer.ParseSettings(frame.get(), &parsed_settings));
2091 EXPECT_EQ(settings.size(), parsed_settings.size()); 2087 EXPECT_EQ(settings.size(), parsed_settings.size());
2092 EXPECT_EQ(kFlags, parsed_settings[kId].first); 2088 EXPECT_EQ(kFlags, parsed_settings[kId].first);
2093 EXPECT_EQ(kValue, parsed_settings[kId].second); 2089 EXPECT_EQ(kValue, parsed_settings[kId].second);
2094 } 2090 }
2095 2091
2096 { 2092 {
(...skipping 20 matching lines...) Expand all
2117 0x02, 0x00, 0x00, 0x02, // 3rd Setting 2113 0x02, 0x00, 0x00, 0x02, // 3rd Setting
2118 0x00, 0x00, 0x00, 0x03, 2114 0x00, 0x00, 0x00, 0x03,
2119 0x03, 0x00, 0x00, 0x03, // 4th Setting 2115 0x03, 0x00, 0x00, 0x03, // 4th Setting
2120 0xff, 0x00, 0x00, 0x04, 2116 0xff, 0x00, 0x00, 0x04,
2121 }; 2117 };
2122 scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings)); 2118 scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings));
2123 CompareFrame(kDescription, 2119 CompareFrame(kDescription,
2124 *frame, 2120 *frame,
2125 kFrameData, 2121 kFrameData,
2126 arraysize(kFrameData)); 2122 arraysize(kFrameData));
2127 EXPECT_EQ(SpdyFramer::kInvalidStream,
2128 SpdyFramer::GetControlFrameStreamId(frame.get()));
2129 } 2123 }
2130 2124
2131 { 2125 {
2132 const char kDescription[] = "Empty SETTINGS frame"; 2126 const char kDescription[] = "Empty SETTINGS frame";
2133 2127
2134 SettingsMap settings; 2128 SettingsMap settings;
2135 2129
2136 const unsigned char kFrameData[] = { 2130 const unsigned char kFrameData[] = {
2137 0x80, spdy_version_, 0x00, 0x04, 2131 0x80, spdy_version_, 0x00, 0x04,
2138 0x00, 0x00, 0x00, 0x04, 2132 0x00, 0x00, 0x00, 0x04,
2139 0x00, 0x00, 0x00, 0x00, 2133 0x00, 0x00, 0x00, 0x00,
2140 }; 2134 };
2141 scoped_ptr<SpdyFrame> frame(framer.CreateSettings(settings)); 2135 scoped_ptr<SpdyFrame> frame(framer.CreateSettings(settings));
2142 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); 2136 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData));
2143 } 2137 }
2144 } 2138 }
2145 2139
2146 TEST_P(SpdyFramerTest, CreatePingFrame) { 2140 TEST_P(SpdyFramerTest, CreatePingFrame) {
2147 SpdyFramer framer(spdy_version_); 2141 SpdyFramer framer(spdy_version_);
2148 2142
2149 { 2143 {
2150 const char kDescription[] = "PING frame"; 2144 const char kDescription[] = "PING frame";
2151 const unsigned char kFrameData[] = { 2145 const unsigned char kFrameData[] = {
2152 0x80, spdy_version_, 0x00, 0x06, 2146 0x80, spdy_version_, 0x00, 0x06,
2153 0x00, 0x00, 0x00, 0x04, 2147 0x00, 0x00, 0x00, 0x04,
2154 0x12, 0x34, 0x56, 0x78, 2148 0x12, 0x34, 0x56, 0x78,
2155 }; 2149 };
2156 scoped_ptr<SpdyPingControlFrame> frame(framer.CreatePingFrame(0x12345678u)); 2150 scoped_ptr<SpdyPingControlFrame> frame(framer.CreatePingFrame(0x12345678u));
2157 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); 2151 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData));
2158 EXPECT_EQ(SpdyFramer::kInvalidStream,
2159 SpdyFramer::GetControlFrameStreamId(frame.get()));
2160 } 2152 }
2161 } 2153 }
2162 2154
2163 TEST_P(SpdyFramerTest, CreateGoAway) { 2155 TEST_P(SpdyFramerTest, CreateGoAway) {
2164 SpdyFramer framer(spdy_version_); 2156 SpdyFramer framer(spdy_version_);
2165 2157
2166 { 2158 {
2167 const char kDescription[] = "GOAWAY frame"; 2159 const char kDescription[] = "GOAWAY frame";
2168 const unsigned char kV2FrameData[] = { 2160 const unsigned char kV2FrameData[] = {
2169 0x80, spdy_version_, 0x00, 0x07, 2161 0x80, spdy_version_, 0x00, 0x07,
2170 0x00, 0x00, 0x00, 0x04, 2162 0x00, 0x00, 0x00, 0x04,
2171 0x00, 0x00, 0x00, 0x00, 2163 0x00, 0x00, 0x00, 0x00,
2172 }; 2164 };
2173 const unsigned char kV3FrameData[] = { 2165 const unsigned char kV3FrameData[] = {
2174 0x80, spdy_version_, 0x00, 0x07, 2166 0x80, spdy_version_, 0x00, 0x07,
2175 0x00, 0x00, 0x00, 0x08, 2167 0x00, 0x00, 0x00, 0x08,
2176 0x00, 0x00, 0x00, 0x00, 2168 0x00, 0x00, 0x00, 0x00,
2177 0x00, 0x00, 0x00, 0x00, 2169 0x00, 0x00, 0x00, 0x00,
2178 }; 2170 };
2179 scoped_ptr<SpdyGoAwayControlFrame> frame(framer.CreateGoAway(0, GOAWAY_OK)); 2171 scoped_ptr<SpdyGoAwayControlFrame> frame(framer.CreateGoAway(0, GOAWAY_OK));
2180 CompareFrame(kDescription, 2172 CompareFrame(kDescription,
2181 *frame, 2173 *frame,
2182 IsSpdy2() ? kV2FrameData : kV3FrameData, 2174 IsSpdy2() ? kV2FrameData : kV3FrameData,
2183 IsSpdy2() ? arraysize(kV2FrameData) : arraysize(kV3FrameData)); 2175 IsSpdy2() ? arraysize(kV2FrameData) : arraysize(kV3FrameData));
2184 EXPECT_EQ(SpdyFramer::kInvalidStream,
2185 SpdyFramer::GetControlFrameStreamId(frame.get()));
2186 } 2176 }
2187 2177
2188 { 2178 {
2189 const char kDescription[] = "GOAWAY frame with max stream ID, status"; 2179 const char kDescription[] = "GOAWAY frame with max stream ID, status";
2190 const unsigned char kV2FrameData[] = { 2180 const unsigned char kV2FrameData[] = {
2191 0x80, spdy_version_, 0x00, 0x07, 2181 0x80, spdy_version_, 0x00, 0x07,
2192 0x00, 0x00, 0x00, 0x04, 2182 0x00, 0x00, 0x00, 0x04,
2193 0x7f, 0xff, 0xff, 0xff, 2183 0x7f, 0xff, 0xff, 0xff,
2194 }; 2184 };
2195 const unsigned char kV3FrameData[] = { 2185 const unsigned char kV3FrameData[] = {
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
2396 const char kDescription[] = "WINDOW_UPDATE frame"; 2386 const char kDescription[] = "WINDOW_UPDATE frame";
2397 const unsigned char kFrameData[] = { 2387 const unsigned char kFrameData[] = {
2398 0x80, spdy_version_, 0x00, 0x09, 2388 0x80, spdy_version_, 0x00, 0x09,
2399 0x00, 0x00, 0x00, 0x08, 2389 0x00, 0x00, 0x00, 0x08,
2400 0x00, 0x00, 0x00, 0x01, 2390 0x00, 0x00, 0x00, 0x01,
2401 0x00, 0x00, 0x00, 0x01, 2391 0x00, 0x00, 0x00, 0x01,
2402 }; 2392 };
2403 scoped_ptr<SpdyWindowUpdateControlFrame> frame( 2393 scoped_ptr<SpdyWindowUpdateControlFrame> frame(
2404 framer.CreateWindowUpdate(1, 1)); 2394 framer.CreateWindowUpdate(1, 1));
2405 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); 2395 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData));
2406 EXPECT_EQ(1u, SpdyFramer::GetControlFrameStreamId(frame.get()));
2407 } 2396 }
2408 2397
2409 { 2398 {
2410 const char kDescription[] = "WINDOW_UPDATE frame with max stream ID"; 2399 const char kDescription[] = "WINDOW_UPDATE frame with max stream ID";
2411 const unsigned char kFrameData[] = { 2400 const unsigned char kFrameData[] = {
2412 0x80, spdy_version_, 0x00, 0x09, 2401 0x80, spdy_version_, 0x00, 0x09,
2413 0x00, 0x00, 0x00, 0x08, 2402 0x00, 0x00, 0x00, 0x08,
2414 0x7f, 0xff, 0xff, 0xff, 2403 0x7f, 0xff, 0xff, 0xff,
2415 0x00, 0x00, 0x00, 0x01, 2404 0x00, 0x00, 0x00, 0x01,
2416 }; 2405 };
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
3546 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304); 3535 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304);
3547 3536
3548 SettingsFlagsAndId id_and_flags = 3537 SettingsFlagsAndId id_and_flags =
3549 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); 3538 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat);
3550 EXPECT_EQ(kId, id_and_flags.id()); 3539 EXPECT_EQ(kId, id_and_flags.id());
3551 EXPECT_EQ(kFlags, id_and_flags.flags()); 3540 EXPECT_EQ(kFlags, id_and_flags.flags());
3552 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); 3541 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_));
3553 } 3542 }
3554 3543
3555 } // namespace net 3544 } // 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