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

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

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
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 "net/spdy/buffered_spdy_framer.h" 5 #include "net/spdy/buffered_spdy_framer.h"
6 6
7 #include "net/spdy/spdy_test_util_common.h" 7 #include "net/spdy/spdy_test_util_common.h"
8 #include "testing/platform_test.h" 8 #include "testing/platform_test.h"
9 9
10 namespace net { 10 namespace net {
11 11
12 namespace { 12 namespace {
13 13
14 class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface { 14 class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
15 public: 15 public:
16 explicit TestBufferedSpdyVisitor(SpdyMajorVersion spdy_version) 16 explicit TestBufferedSpdyVisitor(SpdyMajorVersion spdy_version)
17 : buffered_spdy_framer_(spdy_version, true), 17 : buffered_spdy_framer_(spdy_version, true),
18 error_count_(0), 18 error_count_(0),
19 setting_count_(0), 19 setting_count_(0),
20 syn_frame_count_(0), 20 syn_frame_count_(0),
21 syn_reply_frame_count_(0), 21 syn_reply_frame_count_(0),
22 headers_frame_count_(0), 22 headers_frame_count_(0),
23 header_stream_id_(-1) { 23 header_stream_id_(-1) {}
24 }
25 24
26 virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE { 25 virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE {
27 LOG(INFO) << "SpdyFramer Error: " << error_code; 26 LOG(INFO) << "SpdyFramer Error: " << error_code;
28 error_count_++; 27 error_count_++;
29 } 28 }
30 29
31 virtual void OnStreamError( 30 virtual void OnStreamError(SpdyStreamId stream_id,
32 SpdyStreamId stream_id, 31 const std::string& description) OVERRIDE {
33 const std::string& description) OVERRIDE { 32 LOG(INFO) << "SpdyFramer Error on stream: " << stream_id << " "
34 LOG(INFO) << "SpdyFramer Error on stream: " << stream_id << " "
35 << description; 33 << description;
36 error_count_++; 34 error_count_++;
37 } 35 }
38 36
39 virtual void OnSynStream(SpdyStreamId stream_id, 37 virtual void OnSynStream(SpdyStreamId stream_id,
40 SpdyStreamId associated_stream_id, 38 SpdyStreamId associated_stream_id,
41 SpdyPriority priority, 39 SpdyPriority priority,
42 bool fin, 40 bool fin,
43 bool unidirectional, 41 bool unidirectional,
44 const SpdyHeaderBlock& headers) OVERRIDE { 42 const SpdyHeaderBlock& headers) OVERRIDE {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 81
84 virtual void OnSetting(SpdySettingsIds id, 82 virtual void OnSetting(SpdySettingsIds id,
85 uint8 flags, 83 uint8 flags,
86 uint32 value) OVERRIDE { 84 uint32 value) OVERRIDE {
87 setting_count_++; 85 setting_count_++;
88 } 86 }
89 87
90 virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {} 88 virtual void OnPing(SpdyPingId unique_id, bool is_ack) OVERRIDE {}
91 89
92 virtual void OnRstStream(SpdyStreamId stream_id, 90 virtual void OnRstStream(SpdyStreamId stream_id,
93 SpdyRstStreamStatus status) OVERRIDE { 91 SpdyRstStreamStatus status) OVERRIDE {}
94 }
95 92
96 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, 93 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
97 SpdyGoAwayStatus status) OVERRIDE { 94 SpdyGoAwayStatus status) OVERRIDE {}
98 }
99 95
100 bool OnCredentialFrameData(const char*, size_t) { 96 bool OnCredentialFrameData(const char*, size_t) {
101 LOG(FATAL) << "Unexpected OnCredentialFrameData call."; 97 LOG(FATAL) << "Unexpected OnCredentialFrameData call.";
102 return false; 98 return false;
103 } 99 }
104 100
105 void OnDataFrameHeader(const SpdyFrame* frame) { 101 void OnDataFrameHeader(const SpdyFrame* frame) {
106 LOG(FATAL) << "Unexpected OnDataFrameHeader call."; 102 LOG(FATAL) << "Unexpected OnDataFrameHeader call.";
107 } 103 }
108 104
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 142
147 // Header block streaming state: 143 // Header block streaming state:
148 SpdyStreamId header_stream_id_; 144 SpdyStreamId header_stream_id_;
149 145
150 // Headers from OnSyn, OnSynReply and OnHeaders for verification. 146 // Headers from OnSyn, OnSynReply and OnHeaders for verification.
151 SpdyHeaderBlock headers_; 147 SpdyHeaderBlock headers_;
152 }; 148 };
153 149
154 } // namespace 150 } // namespace
155 151
156 class BufferedSpdyFramerTest 152 class BufferedSpdyFramerTest : public PlatformTest,
157 : public PlatformTest, 153 public ::testing::WithParamInterface<NextProto> {
158 public ::testing::WithParamInterface<NextProto> {
159 protected: 154 protected:
160 // Returns true if the two header blocks have equivalent content. 155 // Returns true if the two header blocks have equivalent content.
161 bool CompareHeaderBlocks(const SpdyHeaderBlock* expected, 156 bool CompareHeaderBlocks(const SpdyHeaderBlock* expected,
162 const SpdyHeaderBlock* actual) { 157 const SpdyHeaderBlock* actual) {
163 if (expected->size() != actual->size()) { 158 if (expected->size() != actual->size()) {
164 LOG(ERROR) << "Expected " << expected->size() << " headers; actually got " 159 LOG(ERROR) << "Expected " << expected->size() << " headers; actually got "
165 << actual->size() << "."; 160 << actual->size() << ".";
166 return false; 161 return false;
167 } 162 }
168 for (SpdyHeaderBlock::const_iterator it = expected->begin(); 163 for (SpdyHeaderBlock::const_iterator it = expected->begin();
(...skipping 13 matching lines...) Expand all
182 } 177 }
183 } 178 }
184 return true; 179 return true;
185 } 180 }
186 181
187 SpdyMajorVersion spdy_version() { 182 SpdyMajorVersion spdy_version() {
188 return NextProtoToSpdyMajorVersion(GetParam()); 183 return NextProtoToSpdyMajorVersion(GetParam());
189 } 184 }
190 }; 185 };
191 186
192 INSTANTIATE_TEST_CASE_P( 187 INSTANTIATE_TEST_CASE_P(NextProto,
193 NextProto, 188 BufferedSpdyFramerTest,
194 BufferedSpdyFramerTest, 189 testing::Values(kProtoDeprecatedSPDY2,
195 testing::Values(kProtoDeprecatedSPDY2, 190 kProtoSPDY3,
196 kProtoSPDY3, kProtoSPDY31, kProtoSPDY4)); 191 kProtoSPDY31,
192 kProtoSPDY4));
197 193
198 TEST_P(BufferedSpdyFramerTest, OnSetting) { 194 TEST_P(BufferedSpdyFramerTest, OnSetting) {
199 SpdyFramer framer(spdy_version()); 195 SpdyFramer framer(spdy_version());
200 SpdySettingsIR settings_ir; 196 SpdySettingsIR settings_ir;
201 settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, false, false, 2); 197 settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, false, false, 2);
202 settings_ir.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, false, false, 3); 198 settings_ir.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, false, false, 3);
203 scoped_ptr<SpdyFrame> control_frame(framer.SerializeSettings(settings_ir)); 199 scoped_ptr<SpdyFrame> control_frame(framer.SerializeSettings(settings_ir));
204 TestBufferedSpdyVisitor visitor(spdy_version()); 200 TestBufferedSpdyVisitor visitor(spdy_version());
205 201
206 visitor.SimulateInFramer( 202 visitor.SimulateInFramer(
207 reinterpret_cast<unsigned char*>(control_frame->data()), 203 reinterpret_cast<unsigned char*>(control_frame->data()),
208 control_frame->size()); 204 control_frame->size());
209 EXPECT_EQ(0, visitor.error_count_); 205 EXPECT_EQ(0, visitor.error_count_);
210 EXPECT_EQ(2, visitor.setting_count_); 206 EXPECT_EQ(2, visitor.setting_count_);
211 } 207 }
212 208
213 TEST_P(BufferedSpdyFramerTest, ReadSynStreamHeaderBlock) { 209 TEST_P(BufferedSpdyFramerTest, ReadSynStreamHeaderBlock) {
214 SpdyHeaderBlock headers; 210 SpdyHeaderBlock headers;
215 headers["aa"] = "vv"; 211 headers["aa"] = "vv";
216 headers["bb"] = "ww"; 212 headers["bb"] = "ww";
217 BufferedSpdyFramer framer(spdy_version(), true); 213 BufferedSpdyFramer framer(spdy_version(), true);
218 scoped_ptr<SpdyFrame> control_frame( 214 scoped_ptr<SpdyFrame> control_frame(
219 framer.CreateSynStream(1, // stream_id 215 framer.CreateSynStream(1, // stream_id
220 0, // associated_stream_id 216 0, // associated_stream_id
221 1, // priority 217 1, // priority
222 CONTROL_FLAG_NONE, 218 CONTROL_FLAG_NONE,
223 &headers)); 219 &headers));
224 EXPECT_TRUE(control_frame.get() != NULL); 220 EXPECT_TRUE(control_frame.get() != NULL);
225 221
226 TestBufferedSpdyVisitor visitor(spdy_version()); 222 TestBufferedSpdyVisitor visitor(spdy_version());
227 visitor.SimulateInFramer( 223 visitor.SimulateInFramer(
228 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 224 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
229 control_frame.get()->size()); 225 control_frame.get()->size());
230 EXPECT_EQ(0, visitor.error_count_); 226 EXPECT_EQ(0, visitor.error_count_);
231 EXPECT_EQ(1, visitor.syn_frame_count_); 227 EXPECT_EQ(1, visitor.syn_frame_count_);
232 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 228 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
233 EXPECT_EQ(0, visitor.headers_frame_count_); 229 EXPECT_EQ(0, visitor.headers_frame_count_);
234 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_)); 230 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
235 } 231 }
236 232
237 TEST_P(BufferedSpdyFramerTest, ReadSynReplyHeaderBlock) { 233 TEST_P(BufferedSpdyFramerTest, ReadSynReplyHeaderBlock) {
238 SpdyHeaderBlock headers; 234 SpdyHeaderBlock headers;
239 headers["alpha"] = "beta"; 235 headers["alpha"] = "beta";
240 headers["gamma"] = "delta"; 236 headers["gamma"] = "delta";
241 BufferedSpdyFramer framer(spdy_version(), true); 237 BufferedSpdyFramer framer(spdy_version(), true);
242 scoped_ptr<SpdyFrame> control_frame( 238 scoped_ptr<SpdyFrame> control_frame(framer.CreateSynReply(1, // stream_id
243 framer.CreateSynReply(1, // stream_id 239 CONTROL_FLAG_NONE,
244 CONTROL_FLAG_NONE, 240 &headers));
245 &headers));
246 EXPECT_TRUE(control_frame.get() != NULL); 241 EXPECT_TRUE(control_frame.get() != NULL);
247 242
248 TestBufferedSpdyVisitor visitor(spdy_version()); 243 TestBufferedSpdyVisitor visitor(spdy_version());
249 visitor.SimulateInFramer( 244 visitor.SimulateInFramer(
250 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 245 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
251 control_frame.get()->size()); 246 control_frame.get()->size());
252 EXPECT_EQ(0, visitor.error_count_); 247 EXPECT_EQ(0, visitor.error_count_);
253 EXPECT_EQ(0, visitor.syn_frame_count_); 248 EXPECT_EQ(0, visitor.syn_frame_count_);
254 if(spdy_version() < SPDY4) { 249 if (spdy_version() < SPDY4) {
255 EXPECT_EQ(1, visitor.syn_reply_frame_count_); 250 EXPECT_EQ(1, visitor.syn_reply_frame_count_);
256 EXPECT_EQ(0, visitor.headers_frame_count_); 251 EXPECT_EQ(0, visitor.headers_frame_count_);
257 } else { 252 } else {
258 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 253 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
259 EXPECT_EQ(1, visitor.headers_frame_count_); 254 EXPECT_EQ(1, visitor.headers_frame_count_);
260 } 255 }
261 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_)); 256 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
262 } 257 }
263 258
264 TEST_P(BufferedSpdyFramerTest, ReadHeadersHeaderBlock) { 259 TEST_P(BufferedSpdyFramerTest, ReadHeadersHeaderBlock) {
265 SpdyHeaderBlock headers; 260 SpdyHeaderBlock headers;
266 headers["alpha"] = "beta"; 261 headers["alpha"] = "beta";
267 headers["gamma"] = "delta"; 262 headers["gamma"] = "delta";
268 BufferedSpdyFramer framer(spdy_version(), true); 263 BufferedSpdyFramer framer(spdy_version(), true);
269 scoped_ptr<SpdyFrame> control_frame( 264 scoped_ptr<SpdyFrame> control_frame(framer.CreateHeaders(1, // stream_id
270 framer.CreateHeaders(1, // stream_id 265 CONTROL_FLAG_NONE,
271 CONTROL_FLAG_NONE, 266 &headers));
272 &headers));
273 EXPECT_TRUE(control_frame.get() != NULL); 267 EXPECT_TRUE(control_frame.get() != NULL);
274 268
275 TestBufferedSpdyVisitor visitor(spdy_version()); 269 TestBufferedSpdyVisitor visitor(spdy_version());
276 visitor.SimulateInFramer( 270 visitor.SimulateInFramer(
277 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 271 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
278 control_frame.get()->size()); 272 control_frame.get()->size());
279 EXPECT_EQ(0, visitor.error_count_); 273 EXPECT_EQ(0, visitor.error_count_);
280 EXPECT_EQ(0, visitor.syn_frame_count_); 274 EXPECT_EQ(0, visitor.syn_frame_count_);
281 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 275 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
282 EXPECT_EQ(1, visitor.headers_frame_count_); 276 EXPECT_EQ(1, visitor.headers_frame_count_);
283 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_)); 277 EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
284 } 278 }
285 279
286 } // namespace net 280 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698