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

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

Issue 114933003: Minor cleanup of QUIC MockConnection and PacketSavingConnection (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/quic/quic_crypto_client_stream_test.cc ('k') | net/quic/quic_crypto_stream_test.cc » ('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) 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_crypto_server_stream.h" 5 #include "net/quic/quic_crypto_server_stream.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 return string(reinterpret_cast<const char*>(config.primary_config_->orbit), 45 return string(reinterpret_cast<const char*>(config.primary_config_->orbit),
46 kOrbitSize); 46 kOrbitSize);
47 } 47 }
48 }; 48 };
49 49
50 namespace { 50 namespace {
51 51
52 class QuicCryptoServerStreamTest : public testing::TestWithParam<bool> { 52 class QuicCryptoServerStreamTest : public testing::TestWithParam<bool> {
53 public: 53 public:
54 QuicCryptoServerStreamTest() 54 QuicCryptoServerStreamTest()
55 : guid_(1), 55 : connection_(new PacketSavingConnection(true)),
56 addr_(ParseIPLiteralToNumber("192.0.2.33", &ip_) ?
57 ip_ : IPAddressNumber(), 1),
58 connection_(new PacketSavingConnection(guid_, addr_, true)),
59 session_(connection_, DefaultQuicConfig(), true), 56 session_(connection_, DefaultQuicConfig(), true),
60 crypto_config_(QuicCryptoServerConfig::TESTING, 57 crypto_config_(QuicCryptoServerConfig::TESTING,
61 QuicRandom::GetInstance()), 58 QuicRandom::GetInstance()),
62 stream_(crypto_config_, &session_), 59 stream_(crypto_config_, &session_),
63 strike_register_client_(NULL) { 60 strike_register_client_(NULL) {
64 config_.SetDefaults(); 61 config_.SetDefaults();
65 session_.config()->SetDefaults(); 62 session_.config()->SetDefaults();
66 session_.SetCryptoStream(&stream_); 63 session_.SetCryptoStream(&stream_);
67 // We advance the clock initially because the default time is zero and the 64 // We advance the clock initially because the default time is zero and the
68 // strike register worries that we've just overflowed a uint32 time. 65 // strike register worries that we've just overflowed a uint32 time.
(...skipping 28 matching lines...) Expand all
97 CryptoFramer framer; 94 CryptoFramer framer;
98 message_data_.reset(framer.ConstructHandshakeMessage(message_)); 95 message_data_.reset(framer.ConstructHandshakeMessage(message_));
99 } 96 }
100 97
101 int CompleteCryptoHandshake() { 98 int CompleteCryptoHandshake() {
102 return CryptoTestUtils::HandshakeWithFakeClient(connection_, &stream_, 99 return CryptoTestUtils::HandshakeWithFakeClient(connection_, &stream_,
103 client_options_); 100 client_options_);
104 } 101 }
105 102
106 protected: 103 protected:
107 IPAddressNumber ip_;
108 QuicGuid guid_;
109 IPEndPoint addr_;
110 PacketSavingConnection* connection_; 104 PacketSavingConnection* connection_;
111 TestSession session_; 105 TestSession session_;
112 QuicConfig config_; 106 QuicConfig config_;
113 QuicCryptoServerConfig crypto_config_; 107 QuicCryptoServerConfig crypto_config_;
114 QuicCryptoServerStream stream_; 108 QuicCryptoServerStream stream_;
115 CryptoHandshakeMessage message_; 109 CryptoHandshakeMessage message_;
116 scoped_ptr<QuicData> message_data_; 110 scoped_ptr<QuicData> message_data_;
117 CryptoTestUtils::FakeClientOptions client_options_; 111 CryptoTestUtils::FakeClientOptions client_options_;
118 DelayedVerifyStrikeRegisterClient* strike_register_client_; 112 DelayedVerifyStrikeRegisterClient* strike_register_client_;
119 }; 113 };
120 114
121 INSTANTIATE_TEST_CASE_P(Tests, QuicCryptoServerStreamTest, testing::Bool()); 115 INSTANTIATE_TEST_CASE_P(Tests, QuicCryptoServerStreamTest, testing::Bool());
122 116
123 TEST_P(QuicCryptoServerStreamTest, NotInitiallyConected) { 117 TEST_P(QuicCryptoServerStreamTest, NotInitiallyConected) {
124 EXPECT_FALSE(stream_.encryption_established()); 118 EXPECT_FALSE(stream_.encryption_established());
125 EXPECT_FALSE(stream_.handshake_confirmed()); 119 EXPECT_FALSE(stream_.handshake_confirmed());
126 } 120 }
127 121
128 TEST_P(QuicCryptoServerStreamTest, ConnectedAfterCHLO) { 122 TEST_P(QuicCryptoServerStreamTest, ConnectedAfterCHLO) {
129 // CompleteCryptoHandshake returns the number of client hellos sent. This 123 // CompleteCryptoHandshake returns the number of client hellos sent. This
130 // test should send: 124 // test should send:
131 // * One to get a source-address token and certificates. 125 // * One to get a source-address token and certificates.
132 // * One to complete the handshake. 126 // * One to complete the handshake.
133 EXPECT_EQ(2, CompleteCryptoHandshake()); 127 EXPECT_EQ(2, CompleteCryptoHandshake());
134 EXPECT_TRUE(stream_.encryption_established()); 128 EXPECT_TRUE(stream_.encryption_established());
135 EXPECT_TRUE(stream_.handshake_confirmed()); 129 EXPECT_TRUE(stream_.handshake_confirmed());
136 } 130 }
137 131
138 TEST_P(QuicCryptoServerStreamTest, ZeroRTT) { 132 TEST_P(QuicCryptoServerStreamTest, ZeroRTT) {
139 QuicGuid guid(1); 133 PacketSavingConnection* client_conn = new PacketSavingConnection(false);
140 IPAddressNumber ip; 134 PacketSavingConnection* server_conn = new PacketSavingConnection(false);
141 ParseIPLiteralToNumber("127.0.0.1", &ip);
142 IPEndPoint addr(ip, 0);
143 PacketSavingConnection* client_conn =
144 new PacketSavingConnection(guid, addr, false);
145 PacketSavingConnection* server_conn =
146 new PacketSavingConnection(guid, addr, false);
147 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(100000)); 135 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(100000));
148 server_conn->AdvanceTime(QuicTime::Delta::FromSeconds(100000)); 136 server_conn->AdvanceTime(QuicTime::Delta::FromSeconds(100000));
149 137
150 QuicConfig client_config; 138 QuicConfig client_config;
151 client_config.SetDefaults(); 139 client_config.SetDefaults();
152 scoped_ptr<TestSession> client_session( 140 scoped_ptr<TestSession> client_session(
153 new TestSession(client_conn, client_config, false)); 141 new TestSession(client_conn, client_config, false));
154 QuicCryptoClientConfig client_crypto_config; 142 QuicCryptoClientConfig client_crypto_config;
155 client_crypto_config.SetDefaults(); 143 client_crypto_config.SetDefaults();
156 144
(...skipping 12 matching lines...) Expand all
169 new QuicCryptoServerStream(crypto_config_, server_session.get())); 157 new QuicCryptoServerStream(crypto_config_, server_session.get()));
170 server_session->SetCryptoStream(server.get()); 158 server_session->SetCryptoStream(server.get());
171 159
172 CryptoTestUtils::CommunicateHandshakeMessages( 160 CryptoTestUtils::CommunicateHandshakeMessages(
173 client_conn, client.get(), server_conn, server.get()); 161 client_conn, client.get(), server_conn, server.get());
174 EXPECT_EQ(2, client->num_sent_client_hellos()); 162 EXPECT_EQ(2, client->num_sent_client_hellos());
175 163
176 // Now do another handshake, hopefully in 0-RTT. 164 // Now do another handshake, hopefully in 0-RTT.
177 LOG(INFO) << "Resetting for 0-RTT handshake attempt"; 165 LOG(INFO) << "Resetting for 0-RTT handshake attempt";
178 166
179 client_conn = new PacketSavingConnection(guid, addr, false); 167 client_conn = new PacketSavingConnection(false);
180 server_conn = new PacketSavingConnection(guid, addr, false); 168 server_conn = new PacketSavingConnection(false);
181 // We need to advance time past the strike-server window so that it's 169 // We need to advance time past the strike-server window so that it's
182 // authoritative in this time span. 170 // authoritative in this time span.
183 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(102000)); 171 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(102000));
184 server_conn->AdvanceTime(QuicTime::Delta::FromSeconds(102000)); 172 server_conn->AdvanceTime(QuicTime::Delta::FromSeconds(102000));
185 173
186 // This causes the client's nonce to be different and thus stops the 174 // This causes the client's nonce to be different and thus stops the
187 // strike-register from rejecting the repeated nonce. 175 // strike-register from rejecting the repeated nonce.
188 reinterpret_cast<MockRandom*>(client_conn->random_generator())->ChangeValue(); 176 reinterpret_cast<MockRandom*>(client_conn->random_generator())->ChangeValue();
189 client_session.reset(new TestSession(client_conn, client_config, false)); 177 client_session.reset(new TestSession(client_conn, client_config, false));
190 server_session.reset(new TestSession(server_conn, config_, true)); 178 server_session.reset(new TestSession(server_conn, config_, true));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 // CompleteCryptoHandshake verifies 254 // CompleteCryptoHandshake verifies
267 // stream_.crypto_negotiated_params().channel_id is correct. 255 // stream_.crypto_negotiated_params().channel_id is correct.
268 EXPECT_EQ(2, CompleteCryptoHandshake()); 256 EXPECT_EQ(2, CompleteCryptoHandshake());
269 EXPECT_TRUE(stream_.encryption_established()); 257 EXPECT_TRUE(stream_.encryption_established());
270 EXPECT_TRUE(stream_.handshake_confirmed()); 258 EXPECT_TRUE(stream_.handshake_confirmed());
271 } 259 }
272 260
273 } // namespace 261 } // namespace
274 } // namespace test 262 } // namespace test
275 } // namespace net 263 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_crypto_client_stream_test.cc ('k') | net/quic/quic_crypto_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698