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

Side by Side Diff: net/quic/quic_client_session_test.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 (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/quic/quic_client_session.h" 5 #include "net/quic/quic_client_session.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/rand_util.h" 9 #include "base/rand_util.h"
10 #include "net/base/capturing_net_log.h" 10 #include "net/base/capturing_net_log.h"
(...skipping 15 matching lines...) Expand all
26 26
27 namespace net { 27 namespace net {
28 namespace test { 28 namespace test {
29 namespace { 29 namespace {
30 30
31 const char kServerHostname[] = "www.example.com"; 31 const char kServerHostname[] = "www.example.com";
32 const uint16 kServerPort = 80; 32 const uint16 kServerPort = 80;
33 33
34 class TestPacketWriter : public QuicDefaultPacketWriter { 34 class TestPacketWriter : public QuicDefaultPacketWriter {
35 public: 35 public:
36 TestPacketWriter(QuicVersion version) : version_(version) { 36 TestPacketWriter(QuicVersion version) : version_(version) {}
37 }
38 37
39 // QuicPacketWriter 38 // QuicPacketWriter
40 virtual WriteResult WritePacket( 39 virtual WriteResult WritePacket(const char* buffer,
41 const char* buffer, size_t buf_len, 40 size_t buf_len,
42 const IPAddressNumber& self_address, 41 const IPAddressNumber& self_address,
43 const IPEndPoint& peer_address) OVERRIDE { 42 const IPEndPoint& peer_address) OVERRIDE {
44 SimpleQuicFramer framer(SupportedVersions(version_)); 43 SimpleQuicFramer framer(SupportedVersions(version_));
45 QuicEncryptedPacket packet(buffer, buf_len); 44 QuicEncryptedPacket packet(buffer, buf_len);
46 EXPECT_TRUE(framer.ProcessPacket(packet)); 45 EXPECT_TRUE(framer.ProcessPacket(packet));
47 header_ = framer.header(); 46 header_ = framer.header();
48 return WriteResult(WRITE_STATUS_OK, packet.length()); 47 return WriteResult(WRITE_STATUS_OK, packet.length());
49 } 48 }
50 49
51 virtual bool IsWriteBlockedDataBuffered() const OVERRIDE { 50 virtual bool IsWriteBlockedDataBuffered() const OVERRIDE {
52 // Chrome sockets' Write() methods buffer the data until the Write is 51 // Chrome sockets' Write() methods buffer the data until the Write is
53 // permitted. 52 // permitted.
54 return true; 53 return true;
55 } 54 }
56 55
57 // Returns the header from the last packet written. 56 // Returns the header from the last packet written.
58 const QuicPacketHeader& header() { return header_; } 57 const QuicPacketHeader& header() { return header_; }
59 58
60 private: 59 private:
61 QuicVersion version_; 60 QuicVersion version_;
62 QuicPacketHeader header_; 61 QuicPacketHeader header_;
63 }; 62 };
64 63
65 class QuicClientSessionTest : public ::testing::TestWithParam<QuicVersion> { 64 class QuicClientSessionTest : public ::testing::TestWithParam<QuicVersion> {
66 protected: 65 protected:
67 QuicClientSessionTest() 66 QuicClientSessionTest()
68 : writer_(new TestPacketWriter(GetParam())), 67 : writer_(new TestPacketWriter(GetParam())),
69 connection_( 68 connection_(
70 new PacketSavingConnection(false, SupportedVersions(GetParam()))), 69 new PacketSavingConnection(false, SupportedVersions(GetParam()))),
71 session_(connection_, GetSocket().Pass(), writer_.Pass(), NULL, NULL, 70 session_(connection_,
71 GetSocket().Pass(),
72 writer_.Pass(),
73 NULL,
74 NULL,
72 make_scoped_ptr((QuicServerInfo*)NULL), 75 make_scoped_ptr((QuicServerInfo*)NULL),
73 QuicServerId(kServerHostname, kServerPort, false, 76 QuicServerId(kServerHostname,
77 kServerPort,
78 false,
74 PRIVACY_MODE_DISABLED), 79 PRIVACY_MODE_DISABLED),
75 DefaultQuicConfig(), &crypto_config_, &net_log_) { 80 DefaultQuicConfig(),
81 &crypto_config_,
82 &net_log_) {
76 session_.config()->SetDefaults(); 83 session_.config()->SetDefaults();
77 crypto_config_.SetDefaults(); 84 crypto_config_.SetDefaults();
78 } 85 }
79 86
80 virtual void TearDown() OVERRIDE { 87 virtual void TearDown() OVERRIDE {
81 session_.CloseSessionOnError(ERR_ABORTED); 88 session_.CloseSessionOnError(ERR_ABORTED);
82 } 89 }
83 90
84 scoped_ptr<DatagramClientSocket> GetSocket() { 91 scoped_ptr<DatagramClientSocket> GetSocket() {
85 socket_factory_.AddSocketDataProvider(&socket_data_); 92 socket_factory_.AddSocketDataProvider(&socket_data_);
86 return socket_factory_.CreateDatagramClientSocket( 93 return socket_factory_.CreateDatagramClientSocket(
87 DatagramSocket::DEFAULT_BIND, base::Bind(&base::RandInt), 94 DatagramSocket::DEFAULT_BIND,
88 &net_log_, NetLog::Source()); 95 base::Bind(&base::RandInt),
96 &net_log_,
97 NetLog::Source());
89 } 98 }
90 99
91 void CompleteCryptoHandshake() { 100 void CompleteCryptoHandshake() {
92 ASSERT_EQ(ERR_IO_PENDING, 101 ASSERT_EQ(ERR_IO_PENDING,
93 session_.CryptoConnect(false, callback_.callback())); 102 session_.CryptoConnect(false, callback_.callback()));
94 CryptoTestUtils::HandshakeWithFakeServer( 103 CryptoTestUtils::HandshakeWithFakeServer(connection_,
95 connection_, session_.GetCryptoStream()); 104 session_.GetCryptoStream());
96 ASSERT_EQ(OK, callback_.WaitForResult()); 105 ASSERT_EQ(OK, callback_.WaitForResult());
97 } 106 }
98 107
99 scoped_ptr<QuicDefaultPacketWriter> writer_; 108 scoped_ptr<QuicDefaultPacketWriter> writer_;
100 PacketSavingConnection* connection_; 109 PacketSavingConnection* connection_;
101 CapturingNetLog net_log_; 110 CapturingNetLog net_log_;
102 MockClientSocketFactory socket_factory_; 111 MockClientSocketFactory socket_factory_;
103 StaticSocketDataProvider socket_data_; 112 StaticSocketDataProvider socket_data_;
104 QuicClientSession session_; 113 QuicClientSession session_;
105 MockClock clock_; 114 MockClock clock_;
106 MockRandom random_; 115 MockRandom random_;
107 QuicConnectionVisitorInterface* visitor_; 116 QuicConnectionVisitorInterface* visitor_;
108 TestCompletionCallback callback_; 117 TestCompletionCallback callback_;
109 QuicCryptoClientConfig crypto_config_; 118 QuicCryptoClientConfig crypto_config_;
110 }; 119 };
111 120
112 INSTANTIATE_TEST_CASE_P(Tests, QuicClientSessionTest, 121 INSTANTIATE_TEST_CASE_P(Tests,
122 QuicClientSessionTest,
113 ::testing::ValuesIn(QuicSupportedVersions())); 123 ::testing::ValuesIn(QuicSupportedVersions()));
114 124
115 TEST_P(QuicClientSessionTest, CryptoConnect) { 125 TEST_P(QuicClientSessionTest, CryptoConnect) {
116 CompleteCryptoHandshake(); 126 CompleteCryptoHandshake();
117 } 127 }
118 128
119 TEST_P(QuicClientSessionTest, MaxNumStreams) { 129 TEST_P(QuicClientSessionTest, MaxNumStreams) {
120 CompleteCryptoHandshake(); 130 CompleteCryptoHandshake();
121 131
122 std::vector<QuicReliableClientStream*> streams; 132 std::vector<QuicReliableClientStream*> streams;
(...skipping 16 matching lines...) Expand all
139 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection; i++) { 149 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection; i++) {
140 QuicReliableClientStream* stream = session_.CreateOutgoingDataStream(); 150 QuicReliableClientStream* stream = session_.CreateOutgoingDataStream();
141 EXPECT_TRUE(stream); 151 EXPECT_TRUE(stream);
142 streams.push_back(stream); 152 streams.push_back(stream);
143 } 153 }
144 154
145 QuicReliableClientStream* stream; 155 QuicReliableClientStream* stream;
146 QuicClientSession::StreamRequest stream_request; 156 QuicClientSession::StreamRequest stream_request;
147 TestCompletionCallback callback; 157 TestCompletionCallback callback;
148 ASSERT_EQ(ERR_IO_PENDING, 158 ASSERT_EQ(ERR_IO_PENDING,
149 stream_request.StartRequest(session_.GetWeakPtr(), &stream, 159 stream_request.StartRequest(
150 callback.callback())); 160 session_.GetWeakPtr(), &stream, callback.callback()));
151 161
152 // Close a stream and ensure I can now open a new one. 162 // Close a stream and ensure I can now open a new one.
153 session_.CloseStream(streams[0]->id()); 163 session_.CloseStream(streams[0]->id());
154 ASSERT_TRUE(callback.have_result()); 164 ASSERT_TRUE(callback.have_result());
155 EXPECT_EQ(OK, callback.WaitForResult()); 165 EXPECT_EQ(OK, callback.WaitForResult());
156 EXPECT_TRUE(stream != NULL); 166 EXPECT_TRUE(stream != NULL);
157 } 167 }
158 168
159 TEST_P(QuicClientSessionTest, GoAwayReceived) { 169 TEST_P(QuicClientSessionTest, GoAwayReceived) {
160 CompleteCryptoHandshake(); 170 CompleteCryptoHandshake();
161 171
162 // After receiving a GoAway, I should no longer be able to create outgoing 172 // After receiving a GoAway, I should no longer be able to create outgoing
163 // streams. 173 // streams.
164 session_.OnGoAway(QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away.")); 174 session_.OnGoAway(QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away."));
165 EXPECT_EQ(NULL, session_.CreateOutgoingDataStream()); 175 EXPECT_EQ(NULL, session_.CreateOutgoingDataStream());
166 } 176 }
167 177
168 } // namespace 178 } // namespace
169 } // namespace test 179 } // namespace test
170 } // namespace net 180 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698