OLD | NEW |
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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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_METHOD6(OnSynStream, | 47 MOCK_METHOD6(OnSynStream, |
48 void(SpdyStreamId, | 48 void(SpdyStreamId, |
49 SpdyStreamId, | 49 SpdyStreamId, |
50 SpdyPriority, | 50 SpdyPriority, |
51 bool, | 51 bool, |
52 bool, | 52 bool, |
53 const SpdyHeaderBlock&)); | 53 const SpdyHeaderBlock&)); |
54 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); | 54 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); |
55 MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); | 55 MOCK_METHOD5(OnHeaders, |
| 56 void(SpdyStreamId, |
| 57 bool, |
| 58 SpdyPriority, |
| 59 bool, |
| 60 const SpdyHeaderBlock&)); |
56 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool)); | 61 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool)); |
57 MOCK_METHOD4(OnStreamFrameData, void(SpdyStreamId, | 62 MOCK_METHOD4(OnStreamFrameData, void(SpdyStreamId, |
58 const char*, | 63 const char*, |
59 size_t, | 64 size_t, |
60 bool)); | 65 bool)); |
61 MOCK_METHOD1(OnSettings, void(bool clear_persisted)); | 66 MOCK_METHOD1(OnSettings, void(bool clear_persisted)); |
62 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32)); | 67 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32)); |
63 MOCK_METHOD2(OnPing, void(SpdyPingId unique_id, bool is_ack)); | 68 MOCK_METHOD2(OnPing, void(SpdyPingId unique_id, bool is_ack)); |
64 MOCK_METHOD2(OnRstStream, void(SpdyStreamId, SpdyRstStreamStatus)); | 69 MOCK_METHOD2(OnRstStream, void(SpdyStreamId, SpdyRstStreamStatus)); |
65 MOCK_METHOD2(OnGoAway, void(SpdyStreamId, SpdyGoAwayStatus)); | 70 MOCK_METHOD2(OnGoAway, void(SpdyStreamId, SpdyGoAwayStatus)); |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 interface_->SendErrorNotFound(stream_id); | 469 interface_->SendErrorNotFound(stream_id); |
465 | 470 |
466 ASSERT_EQ(2u, connection_->output_list()->size()); | 471 ASSERT_EQ(2u, connection_->output_list()->size()); |
467 | 472 |
468 { | 473 { |
469 InSequence s; | 474 InSequence s; |
470 if (GetParam() < SPDY4) { | 475 if (GetParam() < SPDY4) { |
471 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) | 476 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) |
472 .WillOnce(SaveArg<2>(&actual_header_block)); | 477 .WillOnce(SaveArg<2>(&actual_header_block)); |
473 } else { | 478 } else { |
474 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) | 479 EXPECT_CALL(*spdy_framer_visitor_, |
475 .WillOnce(SaveArg<2>(&actual_header_block)); | 480 OnHeaders(stream_id, false, 0, false, _)) |
| 481 .WillOnce(SaveArg<4>(&actual_header_block)); |
476 } | 482 } |
477 EXPECT_CALL(checkpoint, Call(0)); | 483 EXPECT_CALL(checkpoint, Call(0)); |
478 EXPECT_CALL(*spdy_framer_visitor_, | 484 EXPECT_CALL(*spdy_framer_visitor_, |
479 OnDataFrameHeader(stream_id, _, true)); | 485 OnDataFrameHeader(stream_id, _, true)); |
480 EXPECT_CALL(*spdy_framer_visitor_, | 486 EXPECT_CALL(*spdy_framer_visitor_, |
481 OnStreamFrameData(stream_id, _, _, false)).Times(1) | 487 OnStreamFrameData(stream_id, _, _, false)).Times(1) |
482 .WillOnce(DoAll(SaveArg<1>(&actual_data), | 488 .WillOnce(DoAll(SaveArg<1>(&actual_data), |
483 SaveArg<2>(&actual_size))); | 489 SaveArg<2>(&actual_size))); |
484 EXPECT_CALL(*spdy_framer_visitor_, | 490 EXPECT_CALL(*spdy_framer_visitor_, |
485 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); | 491 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); |
(...skipping 29 matching lines...) Expand all Loading... |
515 ASSERT_EQ(2u, connection_->output_list()->size()); | 521 ASSERT_EQ(2u, connection_->output_list()->size()); |
516 | 522 |
517 { | 523 { |
518 InSequence s; | 524 InSequence s; |
519 if (GetParam() < SPDY4) { | 525 if (GetParam() < SPDY4) { |
520 EXPECT_CALL(*spdy_framer_visitor_, | 526 EXPECT_CALL(*spdy_framer_visitor_, |
521 OnSynReply(stream_id, false, _)) | 527 OnSynReply(stream_id, false, _)) |
522 .WillOnce(SaveArg<2>(&actual_header_block)); | 528 .WillOnce(SaveArg<2>(&actual_header_block)); |
523 } else { | 529 } else { |
524 EXPECT_CALL(*spdy_framer_visitor_, | 530 EXPECT_CALL(*spdy_framer_visitor_, |
525 OnHeaders(stream_id, false, _)) | 531 OnHeaders(stream_id, false, 0, false, _)) |
526 .WillOnce(SaveArg<2>(&actual_header_block)); | 532 .WillOnce(SaveArg<4>(&actual_header_block)); |
527 } | 533 } |
528 EXPECT_CALL(checkpoint, Call(0)); | 534 EXPECT_CALL(checkpoint, Call(0)); |
529 EXPECT_CALL(*spdy_framer_visitor_, | 535 EXPECT_CALL(*spdy_framer_visitor_, |
530 OnDataFrameHeader(stream_id, _, true)); | 536 OnDataFrameHeader(stream_id, _, true)); |
531 EXPECT_CALL(*spdy_framer_visitor_, | 537 EXPECT_CALL(*spdy_framer_visitor_, |
532 OnStreamFrameData(stream_id, _, _, false)).Times(1) | 538 OnStreamFrameData(stream_id, _, _, false)).Times(1) |
533 .WillOnce(DoAll(SaveArg<1>(&actual_data), | 539 .WillOnce(DoAll(SaveArg<1>(&actual_data), |
534 SaveArg<2>(&actual_size))); | 540 SaveArg<2>(&actual_size))); |
535 EXPECT_CALL(*spdy_framer_visitor_, | 541 EXPECT_CALL(*spdy_framer_visitor_, |
536 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); | 542 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 ASSERT_EQ(1u, connection_->output_list()->size()); | 640 ASSERT_EQ(1u, connection_->output_list()->size()); |
635 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); | 641 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); |
636 DataFrame* df = *i++; | 642 DataFrame* df = *i++; |
637 | 643 |
638 { | 644 { |
639 InSequence s; | 645 InSequence s; |
640 if (GetParam() < SPDY4) { | 646 if (GetParam() < SPDY4) { |
641 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) | 647 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) |
642 .WillOnce(SaveArg<2>(&actual_header_block)); | 648 .WillOnce(SaveArg<2>(&actual_header_block)); |
643 } else { | 649 } else { |
644 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) | 650 EXPECT_CALL(*spdy_framer_visitor_, |
645 .WillOnce(SaveArg<2>(&actual_header_block)); | 651 OnHeaders(stream_id, false, 0, false, _)) |
| 652 .WillOnce(SaveArg<4>(&actual_header_block)); |
646 } | 653 } |
647 } | 654 } |
648 | 655 |
649 spdy_framer_->ProcessInput(df->data, df->size); | 656 spdy_framer_->ProcessInput(df->data, df->size); |
650 ASSERT_EQ(1, spdy_framer_->frames_received()); | 657 ASSERT_EQ(1, spdy_framer_->frames_received()); |
651 ASSERT_EQ(3u, actual_header_block.size()); | 658 ASSERT_EQ(3u, actual_header_block.size()); |
652 ASSERT_EQ("200 OK", actual_header_block["status"]); | 659 ASSERT_EQ("200 OK", actual_header_block["status"]); |
653 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); | 660 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); |
654 ASSERT_EQ("value1", actual_header_block["key1"]); | 661 ASSERT_EQ("value1", actual_header_block["key1"]); |
655 } | 662 } |
(...skipping 14 matching lines...) Expand all Loading... |
670 ASSERT_EQ(1u, connection_->output_list()->size()); | 677 ASSERT_EQ(1u, connection_->output_list()->size()); |
671 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); | 678 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); |
672 DataFrame* df = *i++; | 679 DataFrame* df = *i++; |
673 | 680 |
674 { | 681 { |
675 InSequence s; | 682 InSequence s; |
676 if (GetParam() < SPDY4) { | 683 if (GetParam() < SPDY4) { |
677 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) | 684 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) |
678 .WillOnce(SaveArg<2>(&actual_header_block)); | 685 .WillOnce(SaveArg<2>(&actual_header_block)); |
679 } else { | 686 } else { |
680 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) | 687 EXPECT_CALL(*spdy_framer_visitor_, |
681 .WillOnce(SaveArg<2>(&actual_header_block)); | 688 OnHeaders(stream_id, false, 0, false, _)) |
| 689 .WillOnce(SaveArg<4>(&actual_header_block)); |
682 } | 690 } |
683 } | 691 } |
684 | 692 |
685 spdy_framer_->ProcessInput(df->data, df->size); | 693 spdy_framer_->ProcessInput(df->data, df->size); |
686 ASSERT_EQ(1, spdy_framer_->frames_received()); | 694 ASSERT_EQ(1, spdy_framer_->frames_received()); |
687 ASSERT_EQ(3u, actual_header_block.size()); | 695 ASSERT_EQ(3u, actual_header_block.size()); |
688 ASSERT_EQ("200 OK", actual_header_block[":status"]); | 696 ASSERT_EQ("200 OK", actual_header_block[":status"]); |
689 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]); | 697 ASSERT_EQ("HTTP/1.1", actual_header_block[":version"]); |
690 ASSERT_EQ("value1", actual_header_block["key1"]); | 698 ASSERT_EQ("value1", actual_header_block["key1"]); |
691 } | 699 } |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
847 interface_->NewStream(stream_id, 0, "nonexistingfile"); | 855 interface_->NewStream(stream_id, 0, "nonexistingfile"); |
848 | 856 |
849 ASSERT_EQ(2u, connection_->output_list()->size()); | 857 ASSERT_EQ(2u, connection_->output_list()->size()); |
850 | 858 |
851 { | 859 { |
852 InSequence s; | 860 InSequence s; |
853 if (GetParam() < SPDY4) { | 861 if (GetParam() < SPDY4) { |
854 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) | 862 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) |
855 .WillOnce(SaveArg<2>(&actual_header_block)); | 863 .WillOnce(SaveArg<2>(&actual_header_block)); |
856 } else { | 864 } else { |
857 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) | 865 EXPECT_CALL(*spdy_framer_visitor_, |
858 .WillOnce(SaveArg<2>(&actual_header_block)); | 866 OnHeaders(stream_id, false, 0, false, _)) |
| 867 .WillOnce(SaveArg<4>(&actual_header_block)); |
859 } | 868 } |
860 EXPECT_CALL(checkpoint, Call(0)); | 869 EXPECT_CALL(checkpoint, Call(0)); |
861 EXPECT_CALL(*spdy_framer_visitor_, | 870 EXPECT_CALL(*spdy_framer_visitor_, |
862 OnDataFrameHeader(stream_id, _, true)); | 871 OnDataFrameHeader(stream_id, _, true)); |
863 EXPECT_CALL(*spdy_framer_visitor_, | 872 EXPECT_CALL(*spdy_framer_visitor_, |
864 OnStreamFrameData(stream_id, _, _, false)).Times(1) | 873 OnStreamFrameData(stream_id, _, _, false)).Times(1) |
865 .WillOnce(DoAll(SaveArg<1>(&actual_data), | 874 .WillOnce(DoAll(SaveArg<1>(&actual_data), |
866 SaveArg<2>(&actual_size))); | 875 SaveArg<2>(&actual_size))); |
867 EXPECT_CALL(*spdy_framer_visitor_, | 876 EXPECT_CALL(*spdy_framer_visitor_, |
868 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); | 877 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); |
869 } | 878 } |
870 | 879 |
871 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); | 880 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); |
872 DataFrame* df = *i++; | 881 DataFrame* df = *i++; |
873 spdy_framer_->ProcessInput(df->data, df->size); | 882 spdy_framer_->ProcessInput(df->data, df->size); |
874 checkpoint.Call(0); | 883 checkpoint.Call(0); |
875 df = *i++; | 884 df = *i++; |
876 spdy_framer_->ProcessInput(df->data, df->size); | 885 spdy_framer_->ProcessInput(df->data, df->size); |
877 | 886 |
878 ASSERT_EQ(2, spdy_framer_->frames_received()); | 887 ASSERT_EQ(2, spdy_framer_->frames_received()); |
879 ASSERT_EQ(2u, actual_header_block.size()); | 888 ASSERT_EQ(2u, actual_header_block.size()); |
880 ASSERT_EQ("404 Not Found", actual_header_block["status"]); | 889 ASSERT_EQ("404 Not Found", actual_header_block["status"]); |
881 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); | 890 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); |
882 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size)); | 891 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size)); |
883 } | 892 } |
884 | 893 |
885 } // namespace | 894 } // namespace |
886 | 895 |
887 } // namespace net | 896 } // namespace net |
OLD | NEW |