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

Side by Side Diff: net/tools/flip_server/spdy_interface_test.cc

Issue 141953004: SPDY cleanup: remove credential slot. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixups to get flip_in_mem_edsm_server_unittests building & passing. Created 6 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/tools/flip_server/spdy_interface.h" 5 #include "net/tools/flip_server/spdy_interface.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_piece.h" 10 #include "base/strings/string_piece.h"
(...skipping 26 matching lines...) Expand all
37 const char* data; 37 const char* data;
38 size_t size; 38 size_t size;
39 std::string string; 39 std::string string;
40 }; 40 };
41 41
42 class SpdyFramerVisitor : public BufferedSpdyFramerVisitorInterface { 42 class SpdyFramerVisitor : public BufferedSpdyFramerVisitorInterface {
43 public: 43 public:
44 virtual ~SpdyFramerVisitor() {} 44 virtual ~SpdyFramerVisitor() {}
45 MOCK_METHOD1(OnError, void(SpdyFramer::SpdyError)); 45 MOCK_METHOD1(OnError, void(SpdyFramer::SpdyError));
46 MOCK_METHOD2(OnStreamError, void(SpdyStreamId, const std::string&)); 46 MOCK_METHOD2(OnStreamError, void(SpdyStreamId, const std::string&));
47 MOCK_METHOD7(OnSynStream, 47 MOCK_METHOD6(OnSynStream,
48 void(SpdyStreamId, 48 void(SpdyStreamId,
49 SpdyStreamId, 49 SpdyStreamId,
50 SpdyPriority, 50 SpdyPriority,
51 uint8,
52 bool, 51 bool,
53 bool, 52 bool,
54 const SpdyHeaderBlock&)); 53 const SpdyHeaderBlock&));
55 MOCK_METHOD3(OnSynStream, void(SpdyStreamId, bool, const SpdyHeaderBlock&));
56 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); 54 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&));
57 MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); 55 MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&));
58 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool)); 56 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool));
59 MOCK_METHOD4(OnStreamFrameData, void(SpdyStreamId, 57 MOCK_METHOD4(OnStreamFrameData, void(SpdyStreamId,
60 const char*, 58 const char*,
61 size_t, 59 size_t,
62 bool)); 60 bool));
63 MOCK_METHOD1(OnSettings, void(bool clear_persisted)); 61 MOCK_METHOD1(OnSettings, void(bool clear_persisted));
64 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32)); 62 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32));
65 MOCK_METHOD1(OnPing, void(uint32 unique_id)); 63 MOCK_METHOD1(OnPing, void(uint32 unique_id));
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 InSequence s; 234 InSequence s;
237 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _)) 235 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _))
238 .WillOnce(Return(mock_interface.get())); 236 .WillOnce(Return(mock_interface.get()));
239 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 237 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
240 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)) 238 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _))
241 .WillOnce(DoAll(SaveArg<0>(&saver.data), 239 .WillOnce(DoAll(SaveArg<0>(&saver.data),
242 SaveArg<1>(&saver.size), 240 SaveArg<1>(&saver.size),
243 InvokeWithoutArgs(&saver, &StringSaver::Save), 241 InvokeWithoutArgs(&saver, &StringSaver::Save),
244 Return(0))); 242 Return(0)));
245 } 243 }
246 visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); 244 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
247 ASSERT_EQ(expected, saver.string); 245 ASSERT_EQ(expected, saver.string);
248 } 246 }
249 247
250 TEST_P(SpdySMProxyTest, OnSynStream) { 248 TEST_P(SpdySMProxyTest, OnSynStream) {
251 if (GetParam() == SPDY2) { 249 if (GetParam() == SPDY2) {
252 // This test case is not for SPDY2. 250 // This test case is not for SPDY2.
253 return; 251 return;
254 } 252 }
255 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 253 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
256 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface); 254 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface);
(...skipping 14 matching lines...) Expand all
271 EXPECT_CALL(*interface_, 269 EXPECT_CALL(*interface_,
272 FindOrMakeNewSMConnectionInterface(_, _)) 270 FindOrMakeNewSMConnectionInterface(_, _))
273 .WillOnce(Return(mock_interface.get())); 271 .WillOnce(Return(mock_interface.get()));
274 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 272 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
275 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)) 273 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _))
276 .WillOnce(DoAll(SaveArg<0>(&saver.data), 274 .WillOnce(DoAll(SaveArg<0>(&saver.data),
277 SaveArg<1>(&saver.size), 275 SaveArg<1>(&saver.size),
278 InvokeWithoutArgs(&saver, &StringSaver::Save), 276 InvokeWithoutArgs(&saver, &StringSaver::Save),
279 Return(0))); 277 Return(0)));
280 } 278 }
281 visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); 279 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
282 ASSERT_EQ(expected, saver.string); 280 ASSERT_EQ(expected, saver.string);
283 } 281 }
284 282
285 TEST_P(SpdySMProxyTest, OnStreamFrameData_SPDY2) { 283 TEST_P(SpdySMProxyTest, OnStreamFrameData_SPDY2) {
286 if (GetParam() != SPDY2) { 284 if (GetParam() != SPDY2) {
287 // This test case is for SPDY2. 285 // This test case is for SPDY2.
288 return; 286 return;
289 } 287 }
290 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 288 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
291 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface); 289 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface);
(...skipping 11 matching lines...) Expand all
303 InSequence s; 301 InSequence s;
304 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _)) 302 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _))
305 .WillOnce(Return(mock_interface.get())); 303 .WillOnce(Return(mock_interface.get()));
306 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 304 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
307 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1); 305 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1);
308 EXPECT_CALL(checkpoint, Call(0)); 306 EXPECT_CALL(checkpoint, Call(0));
309 EXPECT_CALL(*mock_interface, 307 EXPECT_CALL(*mock_interface,
310 ProcessWriteInput(frame->data(), frame->size())).Times(1); 308 ProcessWriteInput(frame->data(), frame->size())).Times(1);
311 } 309 }
312 310
313 visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); 311 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
314 checkpoint.Call(0); 312 checkpoint.Call(0);
315 visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true); 313 visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true);
316 } 314 }
317 315
318 TEST_P(SpdySMProxyTest, OnStreamFrameData) { 316 TEST_P(SpdySMProxyTest, OnStreamFrameData) {
319 if (GetParam() == SPDY2) { 317 if (GetParam() == SPDY2) {
320 // This test case is not for SPDY2. 318 // This test case is not for SPDY2.
321 return; 319 return;
322 } 320 }
323 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 321 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
(...skipping 14 matching lines...) Expand all
338 EXPECT_CALL(*interface_, 336 EXPECT_CALL(*interface_,
339 FindOrMakeNewSMConnectionInterface(_, _)) 337 FindOrMakeNewSMConnectionInterface(_, _))
340 .WillOnce(Return(mock_interface.get())); 338 .WillOnce(Return(mock_interface.get()));
341 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 339 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
342 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1); 340 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1);
343 EXPECT_CALL(checkpoint, Call(0)); 341 EXPECT_CALL(checkpoint, Call(0));
344 EXPECT_CALL(*mock_interface, 342 EXPECT_CALL(*mock_interface,
345 ProcessWriteInput(frame->data(), frame->size())).Times(1); 343 ProcessWriteInput(frame->data(), frame->size())).Times(1);
346 } 344 }
347 345
348 visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); 346 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
349 checkpoint.Call(0); 347 checkpoint.Call(0);
350 visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true); 348 visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true);
351 } 349 }
352 350
353 TEST_P(SpdySMProxyTest, OnRstStream) { 351 TEST_P(SpdySMProxyTest, OnRstStream) {
354 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 352 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
355 uint32 stream_id = 82; 353 uint32 stream_id = 82;
356 MemCacheIter mci; 354 MemCacheIter mci;
357 mci.stream_id = stream_id; 355 mci.stream_id = stream_id;
358 356
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 const char* actual_data; 446 const char* actual_data;
449 size_t actual_size; 447 size_t actual_size;
450 testing::MockFunction<void(int)> checkpoint; // NOLINT 448 testing::MockFunction<void(int)> checkpoint; // NOLINT
451 449
452 interface_->SendErrorNotFound(stream_id); 450 interface_->SendErrorNotFound(stream_id);
453 451
454 ASSERT_EQ(2u, connection_->output_list()->size()); 452 ASSERT_EQ(2u, connection_->output_list()->size());
455 453
456 { 454 {
457 InSequence s; 455 InSequence s;
458 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 456 if (GetParam() < SPDY4) {
459 .WillOnce(SaveArg<2>(&actual_header_block)); 457 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
458 .WillOnce(SaveArg<2>(&actual_header_block));
459 } else {
460 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
461 .WillOnce(SaveArg<2>(&actual_header_block));
462 }
460 EXPECT_CALL(checkpoint, Call(0)); 463 EXPECT_CALL(checkpoint, Call(0));
461 EXPECT_CALL(*spdy_framer_visitor_, 464 EXPECT_CALL(*spdy_framer_visitor_,
462 OnDataFrameHeader(stream_id, _, true)); 465 OnDataFrameHeader(stream_id, _, true));
463 EXPECT_CALL(*spdy_framer_visitor_, 466 EXPECT_CALL(*spdy_framer_visitor_,
464 OnStreamFrameData(stream_id, _, _, false)).Times(1) 467 OnStreamFrameData(stream_id, _, _, false)).Times(1)
465 .WillOnce(DoAll(SaveArg<1>(&actual_data), 468 .WillOnce(DoAll(SaveArg<1>(&actual_data),
466 SaveArg<2>(&actual_size))); 469 SaveArg<2>(&actual_size)));
467 EXPECT_CALL(*spdy_framer_visitor_, 470 EXPECT_CALL(*spdy_framer_visitor_,
468 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 471 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
469 } 472 }
(...skipping 22 matching lines...) Expand all
492 const char* actual_data; 495 const char* actual_data;
493 size_t actual_size; 496 size_t actual_size;
494 testing::MockFunction<void(int)> checkpoint; // NOLINT 497 testing::MockFunction<void(int)> checkpoint; // NOLINT
495 498
496 interface_->SendErrorNotFound(stream_id); 499 interface_->SendErrorNotFound(stream_id);
497 500
498 ASSERT_EQ(2u, connection_->output_list()->size()); 501 ASSERT_EQ(2u, connection_->output_list()->size());
499 502
500 { 503 {
501 InSequence s; 504 InSequence s;
502 EXPECT_CALL(*spdy_framer_visitor_, 505 if (GetParam() < SPDY4) {
503 OnSynReply(stream_id, false, _)) 506 EXPECT_CALL(*spdy_framer_visitor_,
504 .WillOnce(SaveArg<2>(&actual_header_block)); 507 OnSynReply(stream_id, false, _))
508 .WillOnce(SaveArg<2>(&actual_header_block));
509 } else {
510 EXPECT_CALL(*spdy_framer_visitor_,
511 OnHeaders(stream_id, false, _))
512 .WillOnce(SaveArg<2>(&actual_header_block));
513 }
505 EXPECT_CALL(checkpoint, Call(0)); 514 EXPECT_CALL(checkpoint, Call(0));
506 EXPECT_CALL(*spdy_framer_visitor_, 515 EXPECT_CALL(*spdy_framer_visitor_,
507 OnDataFrameHeader(stream_id, _, true)); 516 OnDataFrameHeader(stream_id, _, true));
508 EXPECT_CALL(*spdy_framer_visitor_, 517 EXPECT_CALL(*spdy_framer_visitor_,
509 OnStreamFrameData(stream_id, _, _, false)).Times(1) 518 OnStreamFrameData(stream_id, _, _, false)).Times(1)
510 .WillOnce(DoAll(SaveArg<1>(&actual_data), 519 .WillOnce(DoAll(SaveArg<1>(&actual_data),
511 SaveArg<2>(&actual_size))); 520 SaveArg<2>(&actual_size)));
512 EXPECT_CALL(*spdy_framer_visitor_, 521 EXPECT_CALL(*spdy_framer_visitor_,
513 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 522 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
514 } 523 }
(...skipping 25 matching lines...) Expand all
540 549
541 interface_->SendSynStream(stream_id, headers); 550 interface_->SendSynStream(stream_id, headers);
542 551
543 ASSERT_EQ(1u, connection_->output_list()->size()); 552 ASSERT_EQ(1u, connection_->output_list()->size());
544 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 553 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
545 DataFrame* df = *i++; 554 DataFrame* df = *i++;
546 555
547 { 556 {
548 InSequence s; 557 InSequence s;
549 EXPECT_CALL(*spdy_framer_visitor_, 558 EXPECT_CALL(*spdy_framer_visitor_,
550 OnSynStream(stream_id, 0, _, _, false, false, _)) 559 OnSynStream(stream_id, 0, _, false, false, _))
551 .WillOnce(SaveArg<6>(&actual_header_block)); 560 .WillOnce(SaveArg<5>(&actual_header_block));
552 } 561 }
553 562
554 spdy_framer_->ProcessInput(df->data, df->size); 563 spdy_framer_->ProcessInput(df->data, df->size);
555 ASSERT_EQ(1, spdy_framer_->frames_received()); 564 ASSERT_EQ(1, spdy_framer_->frames_received());
556 ASSERT_EQ(4u, actual_header_block.size()); 565 ASSERT_EQ(4u, actual_header_block.size());
557 ASSERT_EQ("GET", actual_header_block["method"]); 566 ASSERT_EQ("GET", actual_header_block["method"]);
558 ASSERT_EQ("HTTP/1.0", actual_header_block["version"]); 567 ASSERT_EQ("HTTP/1.0", actual_header_block["version"]);
559 ASSERT_EQ("/path", actual_header_block["url"]); 568 ASSERT_EQ("/path", actual_header_block["url"]);
560 ASSERT_EQ("value1", actual_header_block["key1"]); 569 ASSERT_EQ("value1", actual_header_block["key1"]);
561 } 570 }
(...skipping 12 matching lines...) Expand all
574 583
575 interface_->SendSynStream(stream_id, headers); 584 interface_->SendSynStream(stream_id, headers);
576 585
577 ASSERT_EQ(1u, connection_->output_list()->size()); 586 ASSERT_EQ(1u, connection_->output_list()->size());
578 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 587 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
579 DataFrame* df = *i++; 588 DataFrame* df = *i++;
580 589
581 { 590 {
582 InSequence s; 591 InSequence s;
583 EXPECT_CALL(*spdy_framer_visitor_, 592 EXPECT_CALL(*spdy_framer_visitor_,
584 OnSynStream(stream_id, 0, _, _, false, false, _)) 593 OnSynStream(stream_id, 0, _, false, false, _))
585 .WillOnce(SaveArg<6>(&actual_header_block)); 594 .WillOnce(SaveArg<5>(&actual_header_block));
586 } 595 }
587 596
588 spdy_framer_->ProcessInput(df->data, df->size); 597 spdy_framer_->ProcessInput(df->data, df->size);
589 ASSERT_EQ(1, spdy_framer_->frames_received()); 598 ASSERT_EQ(1, spdy_framer_->frames_received());
590 ASSERT_EQ(5u, actual_header_block.size()); 599 ASSERT_EQ(5u, actual_header_block.size());
591 ASSERT_EQ("GET", actual_header_block[":method"]); 600 ASSERT_EQ("GET", actual_header_block[":method"]);
592 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]); 601 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]);
593 ASSERT_EQ("/path", actual_header_block[":path"]); 602 ASSERT_EQ("/path", actual_header_block[":path"]);
594 ASSERT_EQ("www.example.com", actual_header_block[":host"]); 603 ASSERT_EQ("www.example.com", actual_header_block[":host"]);
595 ASSERT_EQ("value1", actual_header_block["key1"]); 604 ASSERT_EQ("value1", actual_header_block["key1"]);
(...skipping 11 matching lines...) Expand all
607 headers.SetResponseFirstlineFromStringPieces("HTTP/1.1", "200", "OK"); 616 headers.SetResponseFirstlineFromStringPieces("HTTP/1.1", "200", "OK");
608 617
609 interface_->SendSynReply(stream_id, headers); 618 interface_->SendSynReply(stream_id, headers);
610 619
611 ASSERT_EQ(1u, connection_->output_list()->size()); 620 ASSERT_EQ(1u, connection_->output_list()->size());
612 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 621 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
613 DataFrame* df = *i++; 622 DataFrame* df = *i++;
614 623
615 { 624 {
616 InSequence s; 625 InSequence s;
617 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 626 if (GetParam() < SPDY4) {
618 .WillOnce(SaveArg<2>(&actual_header_block)); 627 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
628 .WillOnce(SaveArg<2>(&actual_header_block));
629 } else {
630 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
631 .WillOnce(SaveArg<2>(&actual_header_block));
632 }
619 } 633 }
620 634
621 spdy_framer_->ProcessInput(df->data, df->size); 635 spdy_framer_->ProcessInput(df->data, df->size);
622 ASSERT_EQ(1, spdy_framer_->frames_received()); 636 ASSERT_EQ(1, spdy_framer_->frames_received());
623 ASSERT_EQ(3u, actual_header_block.size()); 637 ASSERT_EQ(3u, actual_header_block.size());
624 ASSERT_EQ("200 OK", actual_header_block["status"]); 638 ASSERT_EQ("200 OK", actual_header_block["status"]);
625 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); 639 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]);
626 ASSERT_EQ("value1", actual_header_block["key1"]); 640 ASSERT_EQ("value1", actual_header_block["key1"]);
627 } 641 }
628 642
629 TEST_P(SpdySMProxyTest, SendSynReply) { 643 TEST_P(SpdySMProxyTest, SendSynReply) {
630 if (GetParam() == SPDY2) { 644 if (GetParam() == SPDY2) {
631 // This test is not for SPDY2. 645 // This test is not for SPDY2.
632 return; 646 return;
633 } 647 }
634 uint32 stream_id = 82; 648 uint32 stream_id = 82;
635 BalsaHeaders headers; 649 BalsaHeaders headers;
636 SpdyHeaderBlock actual_header_block; 650 SpdyHeaderBlock actual_header_block;
637 headers.AppendHeader("key1", "value1"); 651 headers.AppendHeader("key1", "value1");
638 headers.SetResponseFirstlineFromStringPieces("HTTP/1.1", "200", "OK"); 652 headers.SetResponseFirstlineFromStringPieces("HTTP/1.1", "200", "OK");
639 653
640 interface_->SendSynReply(stream_id, headers); 654 interface_->SendSynReply(stream_id, headers);
641 655
642 ASSERT_EQ(1u, connection_->output_list()->size()); 656 ASSERT_EQ(1u, connection_->output_list()->size());
643 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 657 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
644 DataFrame* df = *i++; 658 DataFrame* df = *i++;
645 659
646 { 660 {
647 InSequence s; 661 InSequence s;
648 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 662 if (GetParam() < SPDY4) {
649 .WillOnce(SaveArg<2>(&actual_header_block)); 663 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
664 .WillOnce(SaveArg<2>(&actual_header_block));
665 } else {
666 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
667 .WillOnce(SaveArg<2>(&actual_header_block));
668 }
650 } 669 }
651 670
652 spdy_framer_->ProcessInput(df->data, df->size); 671 spdy_framer_->ProcessInput(df->data, df->size);
653 ASSERT_EQ(1, spdy_framer_->frames_received()); 672 ASSERT_EQ(1, spdy_framer_->frames_received());
654 ASSERT_EQ(3u, actual_header_block.size()); 673 ASSERT_EQ(3u, actual_header_block.size());
655 ASSERT_EQ("200 OK", actual_header_block[":status"]); 674 ASSERT_EQ("200 OK", actual_header_block[":status"]);
656 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]); 675 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]);
657 ASSERT_EQ("value1", actual_header_block["key1"]); 676 ASSERT_EQ("value1", actual_header_block["key1"]);
658 } 677 }
659 678
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 SpdyHeaderBlock spdy_headers; 799 SpdyHeaderBlock spdy_headers;
781 spdy_headers["url"] = "http://www.example.com/path"; 800 spdy_headers["url"] = "http://www.example.com/path";
782 spdy_headers["method"] = "GET"; 801 spdy_headers["method"] = "GET";
783 spdy_headers["scheme"] = "http"; 802 spdy_headers["scheme"] = "http";
784 spdy_headers["version"] = "HTTP/1.1"; 803 spdy_headers["version"] = "HTTP/1.1";
785 804
786 { 805 {
787 BalsaHeaders headers; 806 BalsaHeaders headers;
788 memory_cache_->InsertFile(&headers, "GET_/path", ""); 807 memory_cache_->InsertFile(&headers, "GET_/path", "");
789 } 808 }
790 visitor->OnSynStream(stream_id, 0, 0, 0, true, true, spdy_headers); 809 visitor->OnSynStream(stream_id, 0, 0, true, true, spdy_headers);
791 ASSERT_TRUE(HasStream(stream_id)); 810 ASSERT_TRUE(HasStream(stream_id));
792 } 811 }
793 812
794 TEST_P(SpdySMServerTest, NewStream) { 813 TEST_P(SpdySMServerTest, NewStream) {
795 uint32 stream_id = 13; 814 uint32 stream_id = 13;
796 std::string filename = "foobar"; 815 std::string filename = "foobar";
797 816
798 { 817 {
799 BalsaHeaders headers; 818 BalsaHeaders headers;
800 memory_cache_->InsertFile(&headers, filename, ""); 819 memory_cache_->InsertFile(&headers, filename, "");
801 } 820 }
802 821
803 interface_->NewStream(stream_id, 0, filename); 822 interface_->NewStream(stream_id, 0, filename);
804 ASSERT_TRUE(HasStream(stream_id)); 823 ASSERT_TRUE(HasStream(stream_id));
805 } 824 }
806 825
807 TEST_P(SpdySMServerTest, NewStreamError) { 826 TEST_P(SpdySMServerTest, NewStreamError) {
808 uint32 stream_id = 82; 827 uint32 stream_id = 82;
809 SpdyHeaderBlock actual_header_block; 828 SpdyHeaderBlock actual_header_block;
810 const char* actual_data; 829 const char* actual_data;
811 size_t actual_size; 830 size_t actual_size;
812 testing::MockFunction<void(int)> checkpoint; // NOLINT 831 testing::MockFunction<void(int)> checkpoint; // NOLINT
813 832
814 interface_->NewStream(stream_id, 0, "nonexistingfile"); 833 interface_->NewStream(stream_id, 0, "nonexistingfile");
815 834
816 ASSERT_EQ(2u, connection_->output_list()->size()); 835 ASSERT_EQ(2u, connection_->output_list()->size());
817 836
818 { 837 {
819 InSequence s; 838 InSequence s;
820 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 839 if (GetParam() < SPDY4) {
821 .WillOnce(SaveArg<2>(&actual_header_block)); 840 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
841 .WillOnce(SaveArg<2>(&actual_header_block));
842 } else {
843 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
844 .WillOnce(SaveArg<2>(&actual_header_block));
845 }
822 EXPECT_CALL(checkpoint, Call(0)); 846 EXPECT_CALL(checkpoint, Call(0));
823 EXPECT_CALL(*spdy_framer_visitor_, 847 EXPECT_CALL(*spdy_framer_visitor_,
824 OnDataFrameHeader(stream_id, _, true)); 848 OnDataFrameHeader(stream_id, _, true));
825 EXPECT_CALL(*spdy_framer_visitor_, 849 EXPECT_CALL(*spdy_framer_visitor_,
826 OnStreamFrameData(stream_id, _, _, false)).Times(1) 850 OnStreamFrameData(stream_id, _, _, false)).Times(1)
827 .WillOnce(DoAll(SaveArg<1>(&actual_data), 851 .WillOnce(DoAll(SaveArg<1>(&actual_data),
828 SaveArg<2>(&actual_size))); 852 SaveArg<2>(&actual_size)));
829 EXPECT_CALL(*spdy_framer_visitor_, 853 EXPECT_CALL(*spdy_framer_visitor_,
830 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 854 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
831 } 855 }
832 856
833 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 857 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
834 DataFrame* df = *i++; 858 DataFrame* df = *i++;
835 spdy_framer_->ProcessInput(df->data, df->size); 859 spdy_framer_->ProcessInput(df->data, df->size);
836 checkpoint.Call(0); 860 checkpoint.Call(0);
837 df = *i++; 861 df = *i++;
838 spdy_framer_->ProcessInput(df->data, df->size); 862 spdy_framer_->ProcessInput(df->data, df->size);
839 863
840 ASSERT_EQ(2, spdy_framer_->frames_received()); 864 ASSERT_EQ(2, spdy_framer_->frames_received());
841 ASSERT_EQ(2u, actual_header_block.size()); 865 ASSERT_EQ(2u, actual_header_block.size());
842 ASSERT_EQ("404 Not Found", actual_header_block["status"]); 866 ASSERT_EQ("404 Not Found", actual_header_block["status"]);
843 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); 867 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]);
844 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size)); 868 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size));
845 } 869 }
846 870
847 } // namespace 871 } // namespace
848 872
849 } // namespace net 873 } // namespace net
OLDNEW
« net/tools/flip_server/spdy_interface.cc ('K') | « net/tools/flip_server/spdy_interface.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698