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

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

Issue 100173005: Break out the basic reliable QUIC stream functionality from the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « net/tools/quic/quic_server_session.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 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/quic/quic_server_session.h" 5 #include "net/tools/quic/quic_server_session.h"
6 6
7
8 #include "net/quic/crypto/quic_crypto_server_config.h" 7 #include "net/quic/crypto/quic_crypto_server_config.h"
9 #include "net/quic/crypto/quic_random.h" 8 #include "net/quic/crypto/quic_random.h"
10 #include "net/quic/quic_connection.h" 9 #include "net/quic/quic_connection.h"
11 #include "net/quic/test_tools/quic_connection_peer.h" 10 #include "net/quic/test_tools/quic_connection_peer.h"
11 #include "net/quic/test_tools/quic_data_stream_peer.h"
12 #include "net/quic/test_tools/quic_test_utils.h" 12 #include "net/quic/test_tools/quic_test_utils.h"
13 #include "net/quic/test_tools/reliable_quic_stream_peer.h"
14 #include "net/tools/epoll_server/epoll_server.h" 13 #include "net/tools/epoll_server/epoll_server.h"
15 #include "net/tools/quic/quic_spdy_server_stream.h" 14 #include "net/tools/quic/quic_spdy_server_stream.h"
16 #include "net/tools/quic/test_tools/quic_test_utils.h" 15 #include "net/tools/quic/test_tools/quic_test_utils.h"
17 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
19 18
20 using __gnu_cxx::vector; 19 using __gnu_cxx::vector;
21 using net::test::MockConnection; 20 using net::test::MockConnection;
22 using net::test::QuicConnectionPeer; 21 using net::test::QuicConnectionPeer;
23 using net::test::ReliableQuicStreamPeer; 22 using net::test::QuicDataStreamPeer;
24 using testing::_; 23 using testing::_;
25 using testing::StrictMock; 24 using testing::StrictMock;
26 25
27 namespace net { 26 namespace net {
28 namespace tools { 27 namespace tools {
29 namespace test { 28 namespace test {
30 29
31 class QuicServerSessionPeer { 30 class QuicServerSessionPeer {
32 public: 31 public:
33 static ReliableQuicStream* GetIncomingReliableStream( 32 static QuicDataStream* GetIncomingReliableStream(
34 QuicServerSession* s, QuicStreamId id) { 33 QuicServerSession* s, QuicStreamId id) {
35 return s->GetIncomingReliableStream(id); 34 return s->GetIncomingReliableStream(id);
36 } 35 }
37 static ReliableQuicStream* GetStream(QuicServerSession* s, QuicStreamId id) { 36 static QuicDataStream* GetDataStream(QuicServerSession* s, QuicStreamId id) {
38 return s->GetStream(id); 37 return s->GetDataStream(id);
39 } 38 }
40 }; 39 };
41 40
42 class CloseOnDataStream : public ReliableQuicStream { 41 class CloseOnDataStream : public QuicDataStream {
43 public: 42 public:
44 CloseOnDataStream(QuicStreamId id, QuicSession* session) 43 CloseOnDataStream(QuicStreamId id, QuicSession* session)
45 : ReliableQuicStream(id, session) { 44 : QuicDataStream(id, session) {
46 } 45 }
47 46
48 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE { 47 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {
49 session()->MarkDecompressionBlocked(1, id()); 48 session()->MarkDecompressionBlocked(1, id());
50 session()->CloseStream(id()); 49 session()->CloseStream(id());
51 return true; 50 return true;
52 } 51 }
53 52
54 virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE { 53 virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE {
55 return 0; 54 return 0;
56 } 55 }
57 }; 56 };
58 57
59 class TestQuicQuicServerSession : public QuicServerSession { 58 class TestQuicQuicServerSession : public QuicServerSession {
60 public: 59 public:
61 TestQuicQuicServerSession(const QuicConfig& config, 60 TestQuicQuicServerSession(const QuicConfig& config,
62 QuicConnection* connection, 61 QuicConnection* connection,
63 QuicSessionOwner* owner) 62 QuicSessionOwner* owner)
64 : QuicServerSession(config, connection, owner), 63 : QuicServerSession(config, connection, owner),
65 close_stream_on_data_(false) { 64 close_stream_on_data_(false) {
66 } 65 }
67 66
68 virtual ReliableQuicStream* CreateIncomingReliableStream( 67 virtual QuicDataStream* CreateIncomingDataStream(
69 QuicStreamId id) OVERRIDE { 68 QuicStreamId id) OVERRIDE {
70 if (!ShouldCreateIncomingReliableStream(id)) { 69 if (!ShouldCreateIncomingDataStream(id)) {
71 return NULL; 70 return NULL;
72 } 71 }
73 if (close_stream_on_data_) { 72 if (close_stream_on_data_) {
74 return new CloseOnDataStream(id, this); 73 return new CloseOnDataStream(id, this);
75 } else { 74 } else {
76 return new QuicSpdyServerStream(id, this); 75 return new QuicSpdyServerStream(id, this);
77 } 76 }
78 } 77 }
79 78
80 void CloseStreamOnData() { 79 void CloseStreamOnData() {
(...skipping 16 matching lines...) Expand all
97 config_.set_max_streams_per_connection(3, 3); 96 config_.set_max_streams_per_connection(3, 3);
98 97
99 connection_ = new MockConnection(guid_, IPEndPoint(), 0, &eps_, true); 98 connection_ = new MockConnection(guid_, IPEndPoint(), 0, &eps_, true);
100 session_.reset(new TestQuicQuicServerSession( 99 session_.reset(new TestQuicQuicServerSession(
101 config_, connection_, &owner_)); 100 config_, connection_, &owner_));
102 session_->InitializeSession(crypto_config_); 101 session_->InitializeSession(crypto_config_);
103 visitor_ = QuicConnectionPeer::GetVisitor(connection_); 102 visitor_ = QuicConnectionPeer::GetVisitor(connection_);
104 } 103 }
105 104
106 void MarkHeadersReadForStream(QuicStreamId id) { 105 void MarkHeadersReadForStream(QuicStreamId id) {
107 ReliableQuicStream* stream = QuicServerSessionPeer::GetStream( 106 QuicDataStream* stream = QuicServerSessionPeer::GetDataStream(
108 session_.get(), id); 107 session_.get(), id);
109 ASSERT_TRUE(stream != NULL); 108 ASSERT_TRUE(stream != NULL);
110 ReliableQuicStreamPeer::SetHeadersDecompressed(stream, true); 109 QuicDataStreamPeer::SetHeadersDecompressed(stream, true);
111 } 110 }
112 111
113 QuicGuid guid_; 112 QuicGuid guid_;
114 EpollServer eps_; 113 EpollServer eps_;
115 StrictMock<MockQuicSessionOwner> owner_; 114 StrictMock<MockQuicSessionOwner> owner_;
116 MockConnection* connection_; 115 MockConnection* connection_;
117 QuicConfig config_; 116 QuicConfig config_;
118 QuicCryptoServerConfig crypto_config_; 117 QuicCryptoServerConfig crypto_config_;
119 scoped_ptr<TestQuicQuicServerSession> session_; 118 scoped_ptr<TestQuicQuicServerSession> session_;
120 QuicConnectionVisitorInterface* visitor_; 119 QuicConnectionVisitorInterface* visitor_;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // Incoming streams on the server session must be odd. 231 // Incoming streams on the server session must be odd.
233 EXPECT_EQ(NULL, 232 EXPECT_EQ(NULL,
234 QuicServerSessionPeer::GetIncomingReliableStream( 233 QuicServerSessionPeer::GetIncomingReliableStream(
235 session_.get(), 2)); 234 session_.get(), 2));
236 } 235 }
237 236
238 } // namespace 237 } // namespace
239 } // namespace test 238 } // namespace test
240 } // namespace tools 239 } // namespace tools
241 } // namespace net 240 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_server_session.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