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

Side by Side Diff: net/tools/quic/quic_simple_server_stream_test.cc

Issue 2740453006: Add QuicStringPiece which is actually StringPiece. (Closed)
Patch Set: fix compile error and rebase Created 3 years, 9 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
« no previous file with comments | « net/tools/quic/quic_simple_server_stream.cc ('k') | net/tools/quic/quic_spdy_client_stream.h » ('j') | 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/quic/quic_simple_server_stream.h" 5 #include "net/tools/quic/quic_simple_server_stream.h"
6 6
7 #include <list> 7 #include <list>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/strings/string_piece.h"
12 #include "net/quic/core/quic_utils.h" 11 #include "net/quic/core/quic_utils.h"
13 #include "net/quic/core/spdy_utils.h" 12 #include "net/quic/core/spdy_utils.h"
14 #include "net/quic/platform/api/quic_ptr_util.h" 13 #include "net/quic/platform/api/quic_ptr_util.h"
15 #include "net/quic/platform/api/quic_socket_address.h" 14 #include "net/quic/platform/api/quic_socket_address.h"
16 #include "net/quic/test_tools/crypto_test_utils.h" 15 #include "net/quic/test_tools/crypto_test_utils.h"
17 #include "net/quic/test_tools/quic_stream_peer.h" 16 #include "net/quic/test_tools/quic_stream_peer.h"
18 #include "net/quic/test_tools/quic_test_utils.h" 17 #include "net/quic/test_tools/quic_test_utils.h"
19 #include "net/test/gtest_util.h" 18 #include "net/test/gtest_util.h"
20 #include "net/tools/quic/quic_http_response_cache.h" 19 #include "net/tools/quic/quic_http_response_cache.h"
21 #include "net/tools/quic/quic_simple_server_session.h" 20 #include "net/tools/quic/quic_simple_server_session.h"
22 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
23 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
24 23
25 using base::StringPiece;
26 using std::string; 24 using std::string;
27 using testing::_; 25 using testing::_;
28 using testing::AnyNumber; 26 using testing::AnyNumber;
29 using testing::Invoke; 27 using testing::Invoke;
30 using testing::InSequence; 28 using testing::InSequence;
31 using testing::Return; 29 using testing::Return;
32 using testing::StrictMock; 30 using testing::StrictMock;
33 31
34 namespace net { 32 namespace net {
35 namespace test { 33 namespace test {
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 EXPECT_TRUE(stream_->reading_stopped()); 525 EXPECT_TRUE(stream_->reading_stopped());
528 } 526 }
529 EXPECT_TRUE(stream_->write_side_closed()); 527 EXPECT_TRUE(stream_->write_side_closed());
530 } 528 }
531 529
532 TEST_P(QuicSimpleServerStreamTest, InvalidMultipleContentLength) { 530 TEST_P(QuicSimpleServerStreamTest, InvalidMultipleContentLength) {
533 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0); 531 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0);
534 532
535 SpdyHeaderBlock request_headers; 533 SpdyHeaderBlock request_headers;
536 // \000 is a way to write the null byte when followed by a literal digit. 534 // \000 is a way to write the null byte when followed by a literal digit.
537 header_list_.OnHeader("content-length", StringPiece("11\00012", 5)); 535 header_list_.OnHeader("content-length", QuicStringPiece("11\00012", 5));
538 536
539 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers); 537 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers);
540 538
541 EXPECT_CALL(session_, WriteHeadersMock(_, _, _, _, _)); 539 EXPECT_CALL(session_, WriteHeadersMock(_, _, _, _, _));
542 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _)) 540 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _))
543 .Times(AnyNumber()) 541 .Times(AnyNumber())
544 .WillRepeatedly(Invoke(MockQuicSession::ConsumeAllData)); 542 .WillRepeatedly(Invoke(MockQuicSession::ConsumeAllData));
545 stream_->OnStreamHeaderList(true, kFakeFrameLen, header_list_); 543 stream_->OnStreamHeaderList(true, kFakeFrameLen, header_list_);
546 544
547 EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream_)); 545 EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream_));
548 EXPECT_TRUE(stream_->reading_stopped()); 546 EXPECT_TRUE(stream_->reading_stopped());
549 EXPECT_TRUE(stream_->write_side_closed()); 547 EXPECT_TRUE(stream_->write_side_closed());
550 } 548 }
551 549
552 TEST_P(QuicSimpleServerStreamTest, InvalidLeadingNullContentLength) { 550 TEST_P(QuicSimpleServerStreamTest, InvalidLeadingNullContentLength) {
553 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0); 551 EXPECT_CALL(session_, SendRstStream(_, QUIC_STREAM_NO_ERROR, _)).Times(0);
554 552
555 SpdyHeaderBlock request_headers; 553 SpdyHeaderBlock request_headers;
556 // \000 is a way to write the null byte when followed by a literal digit. 554 // \000 is a way to write the null byte when followed by a literal digit.
557 header_list_.OnHeader("content-length", StringPiece("\00012", 3)); 555 header_list_.OnHeader("content-length", QuicStringPiece("\00012", 3));
558 556
559 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers); 557 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers);
560 558
561 EXPECT_CALL(session_, WriteHeadersMock(_, _, _, _, _)); 559 EXPECT_CALL(session_, WriteHeadersMock(_, _, _, _, _));
562 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _)) 560 EXPECT_CALL(session_, WritevData(_, _, _, _, _, _))
563 .Times(AnyNumber()) 561 .Times(AnyNumber())
564 .WillRepeatedly(Invoke(MockQuicSession::ConsumeAllData)); 562 .WillRepeatedly(Invoke(MockQuicSession::ConsumeAllData));
565 stream_->OnStreamHeaderList(true, kFakeFrameLen, header_list_); 563 stream_->OnStreamHeaderList(true, kFakeFrameLen, header_list_);
566 564
567 EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream_)); 565 EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream_));
568 EXPECT_TRUE(stream_->reading_stopped()); 566 EXPECT_TRUE(stream_->reading_stopped());
569 EXPECT_TRUE(stream_->write_side_closed()); 567 EXPECT_TRUE(stream_->write_side_closed());
570 } 568 }
571 569
572 TEST_P(QuicSimpleServerStreamTest, ValidMultipleContentLength) { 570 TEST_P(QuicSimpleServerStreamTest, ValidMultipleContentLength) {
573 SpdyHeaderBlock request_headers; 571 SpdyHeaderBlock request_headers;
574 // \000 is a way to write the null byte when followed by a literal digit. 572 // \000 is a way to write the null byte when followed by a literal digit.
575 header_list_.OnHeader("content-length", StringPiece("11\00011", 5)); 573 header_list_.OnHeader("content-length", QuicStringPiece("11\00011", 5));
576 574
577 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers); 575 headers_string_ = SpdyUtils::SerializeUncompressedHeaders(request_headers);
578 576
579 stream_->OnStreamHeaderList(false, kFakeFrameLen, header_list_); 577 stream_->OnStreamHeaderList(false, kFakeFrameLen, header_list_);
580 578
581 EXPECT_EQ(11, QuicSimpleServerStreamPeer::content_length(stream_)); 579 EXPECT_EQ(11, QuicSimpleServerStreamPeer::content_length(stream_));
582 EXPECT_FALSE(QuicStreamPeer::read_side_closed(stream_)); 580 EXPECT_FALSE(QuicStreamPeer::read_side_closed(stream_));
583 EXPECT_FALSE(stream_->reading_stopped()); 581 EXPECT_FALSE(stream_->reading_stopped());
584 EXPECT_FALSE(stream_->write_side_closed()); 582 EXPECT_FALSE(stream_->write_side_closed());
585 } 583 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 0x3a, 0x73, 0x63, 0x68, // :sch 629 0x3a, 0x73, 0x63, 0x68, // :sch
632 0x65, 0x6d, 0x65, 0x00, // eme. 630 0x65, 0x6d, 0x65, 0x00, // eme.
633 0x00, 0x00, 0x00, 0x00, // .... 631 0x00, 0x00, 0x00, 0x00, // ....
634 0x00, 0x00, 0x08, 0x3a, // ...: 632 0x00, 0x00, 0x08, 0x3a, // ...:
635 0x76, 0x65, 0x72, 0x73, // vers 633 0x76, 0x65, 0x72, 0x73, // vers
636 0x96, 0x6f, 0x6e, 0x00, // <i(69)>on. 634 0x96, 0x6f, 0x6e, 0x00, // <i(69)>on.
637 0x00, 0x00, 0x08, 0x48, // ...H 635 0x00, 0x00, 0x08, 0x48, // ...H
638 0x54, 0x54, 0x50, 0x2f, // TTP/ 636 0x54, 0x54, 0x50, 0x2f, // TTP/
639 0x31, 0x2e, 0x31, // 1.1 637 0x31, 0x2e, 0x31, // 1.1
640 }; 638 };
641 StringPiece data(arr, arraysize(arr)); 639 QuicStringPiece data(arr, arraysize(arr));
642 QuicStreamFrame frame(stream_->id(), true, 0, data); 640 QuicStreamFrame frame(stream_->id(), true, 0, data);
643 // Verify that we don't crash when we get a invalid headers in stream frame. 641 // Verify that we don't crash when we get a invalid headers in stream frame.
644 stream_->OnStreamFrame(frame); 642 stream_->OnStreamFrame(frame);
645 } 643 }
646 644
647 } // namespace 645 } // namespace
648 } // namespace test 646 } // namespace test
649 } // namespace net 647 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_simple_server_stream.cc ('k') | net/tools/quic/quic_spdy_client_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698