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

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

Issue 2102253003: Make SpdyHeaderBlock non-copyable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: iOS fix. Created 4 years, 5 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
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 <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "net/spdy/spdy_test_util_common.h" 10 #include "net/spdy/spdy_test_util_common.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 void OnSynStream(SpdyStreamId stream_id, 44 void OnSynStream(SpdyStreamId stream_id,
45 SpdyStreamId associated_stream_id, 45 SpdyStreamId associated_stream_id,
46 SpdyPriority priority, 46 SpdyPriority priority,
47 bool fin, 47 bool fin,
48 bool unidirectional, 48 bool unidirectional,
49 const SpdyHeaderBlock& headers) override { 49 const SpdyHeaderBlock& headers) override {
50 header_stream_id_ = stream_id; 50 header_stream_id_ = stream_id;
51 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); 51 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
52 syn_frame_count_++; 52 syn_frame_count_++;
53 headers_ = headers; 53 headers_ = headers.Clone();
54 } 54 }
55 55
56 void OnSynReply(SpdyStreamId stream_id, 56 void OnSynReply(SpdyStreamId stream_id,
57 bool fin, 57 bool fin,
58 const SpdyHeaderBlock& headers) override { 58 const SpdyHeaderBlock& headers) override {
59 header_stream_id_ = stream_id; 59 header_stream_id_ = stream_id;
60 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); 60 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
61 syn_reply_frame_count_++; 61 syn_reply_frame_count_++;
62 headers_ = headers; 62 headers_ = headers.Clone();
63 } 63 }
64 64
65 void OnHeaders(SpdyStreamId stream_id, 65 void OnHeaders(SpdyStreamId stream_id,
66 bool has_priority, 66 bool has_priority,
67 int weight, 67 int weight,
68 SpdyStreamId parent_stream_id, 68 SpdyStreamId parent_stream_id,
69 bool exclusive, 69 bool exclusive,
70 bool fin, 70 bool fin,
71 const SpdyHeaderBlock& headers) override { 71 const SpdyHeaderBlock& headers) override {
72 header_stream_id_ = stream_id; 72 header_stream_id_ = stream_id;
73 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); 73 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
74 headers_frame_count_++; 74 headers_frame_count_++;
75 headers_ = headers; 75 headers_ = headers.Clone();
76 } 76 }
77 77
78 void OnDataFrameHeader(SpdyStreamId stream_id, 78 void OnDataFrameHeader(SpdyStreamId stream_id,
79 size_t length, 79 size_t length,
80 bool fin) override { 80 bool fin) override {
81 ADD_FAILURE() << "Unexpected OnDataFrameHeader call."; 81 ADD_FAILURE() << "Unexpected OnDataFrameHeader call.";
82 } 82 }
83 83
84 void OnStreamFrameData(SpdyStreamId stream_id, 84 void OnStreamFrameData(SpdyStreamId stream_id,
85 const char* data, 85 const char* data,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override {} 125 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override {}
126 126
127 void OnPushPromise(SpdyStreamId stream_id, 127 void OnPushPromise(SpdyStreamId stream_id,
128 SpdyStreamId promised_stream_id, 128 SpdyStreamId promised_stream_id,
129 const SpdyHeaderBlock& headers) override { 129 const SpdyHeaderBlock& headers) override {
130 header_stream_id_ = stream_id; 130 header_stream_id_ = stream_id;
131 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); 131 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
132 push_promise_frame_count_++; 132 push_promise_frame_count_++;
133 promised_stream_id_ = promised_stream_id; 133 promised_stream_id_ = promised_stream_id;
134 EXPECT_NE(promised_stream_id_, SpdyFramer::kInvalidStream); 134 EXPECT_NE(promised_stream_id_, SpdyFramer::kInvalidStream);
135 headers_ = headers; 135 headers_ = headers.Clone();
136 } 136 }
137 137
138 void OnAltSvc(SpdyStreamId stream_id, 138 void OnAltSvc(SpdyStreamId stream_id,
139 base::StringPiece origin, 139 base::StringPiece origin,
140 const SpdyAltSvcWireFormat::AlternativeServiceVector& 140 const SpdyAltSvcWireFormat::AlternativeServiceVector&
141 altsvc_vector) override { 141 altsvc_vector) override {
142 altsvc_count_++; 142 altsvc_count_++;
143 altsvc_stream_id_ = stream_id; 143 altsvc_stream_id_ = stream_id;
144 origin.CopyToString(&altsvc_origin_); 144 origin.CopyToString(&altsvc_origin_);
145 altsvc_vector_ = altsvc_vector; 145 altsvc_vector_ = altsvc_vector;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 return; 237 return;
238 } 238 }
239 SpdyHeaderBlock headers; 239 SpdyHeaderBlock headers;
240 headers["aa"] = "vv"; 240 headers["aa"] = "vv";
241 headers["bb"] = "ww"; 241 headers["bb"] = "ww";
242 BufferedSpdyFramer framer(spdy_version()); 242 BufferedSpdyFramer framer(spdy_version());
243 std::unique_ptr<SpdySerializedFrame> control_frame( 243 std::unique_ptr<SpdySerializedFrame> control_frame(
244 framer.CreateSynStream(1, // stream_id 244 framer.CreateSynStream(1, // stream_id
245 0, // associated_stream_id 245 0, // associated_stream_id
246 1, // priority 246 1, // priority
247 CONTROL_FLAG_NONE, headers)); 247 CONTROL_FLAG_NONE, headers.Clone()));
248 EXPECT_TRUE(control_frame.get() != NULL); 248 EXPECT_TRUE(control_frame.get() != NULL);
249 249
250 TestBufferedSpdyVisitor visitor(spdy_version()); 250 TestBufferedSpdyVisitor visitor(spdy_version());
251 visitor.SimulateInFramer( 251 visitor.SimulateInFramer(
252 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 252 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
253 control_frame.get()->size()); 253 control_frame.get()->size());
254 EXPECT_EQ(0, visitor.error_count_); 254 EXPECT_EQ(0, visitor.error_count_);
255 EXPECT_EQ(1, visitor.syn_frame_count_); 255 EXPECT_EQ(1, visitor.syn_frame_count_);
256 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 256 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
257 EXPECT_EQ(0, visitor.headers_frame_count_); 257 EXPECT_EQ(0, visitor.headers_frame_count_);
(...skipping 30 matching lines...) Expand all
288 if (spdy_version() > SPDY3) { 288 if (spdy_version() > SPDY3) {
289 // SYN_REPLY not supported in SPDY>3. 289 // SYN_REPLY not supported in SPDY>3.
290 return; 290 return;
291 } 291 }
292 SpdyHeaderBlock headers; 292 SpdyHeaderBlock headers;
293 headers["alpha"] = "beta"; 293 headers["alpha"] = "beta";
294 headers["gamma"] = "delta"; 294 headers["gamma"] = "delta";
295 BufferedSpdyFramer framer(spdy_version()); 295 BufferedSpdyFramer framer(spdy_version());
296 std::unique_ptr<SpdySerializedFrame> control_frame( 296 std::unique_ptr<SpdySerializedFrame> control_frame(
297 framer.CreateSynReply(1, // stream_id 297 framer.CreateSynReply(1, // stream_id
298 CONTROL_FLAG_NONE, headers)); 298 CONTROL_FLAG_NONE, headers.Clone()));
299 EXPECT_TRUE(control_frame.get() != NULL); 299 EXPECT_TRUE(control_frame.get() != NULL);
300 300
301 TestBufferedSpdyVisitor visitor(spdy_version()); 301 TestBufferedSpdyVisitor visitor(spdy_version());
302 visitor.SimulateInFramer( 302 visitor.SimulateInFramer(
303 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 303 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
304 control_frame.get()->size()); 304 control_frame.get()->size());
305 EXPECT_EQ(0, visitor.error_count_); 305 EXPECT_EQ(0, visitor.error_count_);
306 EXPECT_EQ(0, visitor.syn_frame_count_); 306 EXPECT_EQ(0, visitor.syn_frame_count_);
307 EXPECT_EQ(0, visitor.push_promise_frame_count_); 307 EXPECT_EQ(0, visitor.push_promise_frame_count_);
308 if (spdy_version() < HTTP2) { 308 if (spdy_version() < HTTP2) {
309 EXPECT_EQ(1, visitor.syn_reply_frame_count_); 309 EXPECT_EQ(1, visitor.syn_reply_frame_count_);
310 EXPECT_EQ(0, visitor.headers_frame_count_); 310 EXPECT_EQ(0, visitor.headers_frame_count_);
311 } else { 311 } else {
312 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 312 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
313 EXPECT_EQ(1, visitor.headers_frame_count_); 313 EXPECT_EQ(1, visitor.headers_frame_count_);
314 } 314 }
315 EXPECT_EQ(headers, visitor.headers_); 315 EXPECT_EQ(headers, visitor.headers_);
316 } 316 }
317 317
318 TEST_P(BufferedSpdyFramerTest, ReadHeadersHeaderBlock) { 318 TEST_P(BufferedSpdyFramerTest, ReadHeadersHeaderBlock) {
319 SpdyHeaderBlock headers; 319 SpdyHeaderBlock headers;
320 headers["alpha"] = "beta"; 320 headers["alpha"] = "beta";
321 headers["gamma"] = "delta"; 321 headers["gamma"] = "delta";
322 BufferedSpdyFramer framer(spdy_version()); 322 BufferedSpdyFramer framer(spdy_version());
323 std::unique_ptr<SpdySerializedFrame> control_frame( 323 std::unique_ptr<SpdySerializedFrame> control_frame(
324 framer.CreateHeaders(1, // stream_id 324 framer.CreateHeaders(1, // stream_id
325 CONTROL_FLAG_NONE, 325 CONTROL_FLAG_NONE,
326 255, // weight 326 255, // weight
327 headers)); 327 headers.Clone()));
328 EXPECT_TRUE(control_frame.get() != NULL); 328 EXPECT_TRUE(control_frame.get() != NULL);
329 329
330 TestBufferedSpdyVisitor visitor(spdy_version()); 330 TestBufferedSpdyVisitor visitor(spdy_version());
331 visitor.SimulateInFramer( 331 visitor.SimulateInFramer(
332 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 332 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
333 control_frame.get()->size()); 333 control_frame.get()->size());
334 EXPECT_EQ(0, visitor.error_count_); 334 EXPECT_EQ(0, visitor.error_count_);
335 EXPECT_EQ(0, visitor.syn_frame_count_); 335 EXPECT_EQ(0, visitor.syn_frame_count_);
336 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 336 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
337 EXPECT_EQ(1, visitor.headers_frame_count_); 337 EXPECT_EQ(1, visitor.headers_frame_count_);
338 EXPECT_EQ(0, visitor.push_promise_frame_count_); 338 EXPECT_EQ(0, visitor.push_promise_frame_count_);
339 EXPECT_EQ(headers, visitor.headers_); 339 EXPECT_EQ(headers, visitor.headers_);
340 } 340 }
341 341
342 TEST_P(BufferedSpdyFramerTest, ReadPushPromiseHeaderBlock) { 342 TEST_P(BufferedSpdyFramerTest, ReadPushPromiseHeaderBlock) {
343 if (spdy_version() < HTTP2) 343 if (spdy_version() < HTTP2)
344 return; 344 return;
345 SpdyHeaderBlock headers; 345 SpdyHeaderBlock headers;
346 headers["alpha"] = "beta"; 346 headers["alpha"] = "beta";
347 headers["gamma"] = "delta"; 347 headers["gamma"] = "delta";
348 BufferedSpdyFramer framer(spdy_version()); 348 BufferedSpdyFramer framer(spdy_version());
349 std::unique_ptr<SpdySerializedFrame> control_frame( 349 std::unique_ptr<SpdySerializedFrame> control_frame(
350 framer.CreatePushPromise(1, 2, headers)); 350 framer.CreatePushPromise(1, 2, headers.Clone()));
351 EXPECT_TRUE(control_frame.get() != NULL); 351 EXPECT_TRUE(control_frame.get() != NULL);
352 352
353 TestBufferedSpdyVisitor visitor(spdy_version()); 353 TestBufferedSpdyVisitor visitor(spdy_version());
354 visitor.SimulateInFramer( 354 visitor.SimulateInFramer(
355 reinterpret_cast<unsigned char*>(control_frame.get()->data()), 355 reinterpret_cast<unsigned char*>(control_frame.get()->data()),
356 control_frame.get()->size()); 356 control_frame.get()->size());
357 EXPECT_EQ(0, visitor.error_count_); 357 EXPECT_EQ(0, visitor.error_count_);
358 EXPECT_EQ(0, visitor.syn_frame_count_); 358 EXPECT_EQ(0, visitor.syn_frame_count_);
359 EXPECT_EQ(0, visitor.syn_reply_frame_count_); 359 EXPECT_EQ(0, visitor.syn_reply_frame_count_);
360 EXPECT_EQ(0, visitor.headers_frame_count_); 360 EXPECT_EQ(0, visitor.headers_frame_count_);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 altsvc_frame.size()); 403 altsvc_frame.size());
404 EXPECT_EQ(0, visitor.error_count_); 404 EXPECT_EQ(0, visitor.error_count_);
405 EXPECT_EQ(1, visitor.altsvc_count_); 405 EXPECT_EQ(1, visitor.altsvc_count_);
406 EXPECT_EQ(altsvc_stream_id, visitor.altsvc_stream_id_); 406 EXPECT_EQ(altsvc_stream_id, visitor.altsvc_stream_id_);
407 EXPECT_EQ(altsvc_origin, visitor.altsvc_origin_); 407 EXPECT_EQ(altsvc_origin, visitor.altsvc_origin_);
408 ASSERT_EQ(1u, visitor.altsvc_vector_.size()); 408 ASSERT_EQ(1u, visitor.altsvc_vector_.size());
409 EXPECT_EQ(alternative_service, visitor.altsvc_vector_[0]); 409 EXPECT_EQ(alternative_service, visitor.altsvc_vector_[0]);
410 } 410 }
411 411
412 } // namespace net 412 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/bidirectional_stream_spdy_impl_unittest.cc ('k') | net/spdy/hpack/hpack_decoder_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698