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

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

Issue 2808273006: Landing Recent QUIC changes until Sun Apr 9 16:12:55 (Closed)
Patch Set: increment enabled_options in e2e test Created 3 years, 8 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/end_to_end_test.cc ('k') | net/tools/quic/quic_dispatcher.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) 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/tools/quic/quic_client_session.h" 5 #include "net/tools/quic/quic_client_session.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "net/quic/core/crypto/aes_128_gcm_12_encrypter.h" 9 #include "net/quic/core/crypto/aes_128_gcm_12_encrypter.h"
10 #include "net/quic/core/quic_flags.h" 10 #include "net/quic/core/quic_flags.h"
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 // Verifiy that small, invalid packets don't close the connection. 260 // Verifiy that small, invalid packets don't close the connection.
261 char buf[2] = {0x00, 0x01}; 261 char buf[2] = {0x00, 0x01};
262 QuicReceivedPacket valid_packet(buf, 2, QuicTime::Zero(), false); 262 QuicReceivedPacket valid_packet(buf, 2, QuicTime::Zero(), false);
263 // Close connection shouldn't be called. 263 // Close connection shouldn't be called.
264 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); 264 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
265 session_->ProcessUdpPacket(client_address, server_address, valid_packet); 265 session_->ProcessUdpPacket(client_address, server_address, valid_packet);
266 266
267 // Verify that a non-decryptable packet doesn't close the connection. 267 // Verify that a non-decryptable packet doesn't close the connection.
268 QuicConnectionId connection_id = session_->connection()->connection_id(); 268 QuicConnectionId connection_id = session_->connection()->connection_id();
269 std::unique_ptr<QuicEncryptedPacket> packet(ConstructEncryptedPacket( 269 std::unique_ptr<QuicEncryptedPacket> packet(ConstructEncryptedPacket(
270 connection_id, false, false, 100, "data", PACKET_8BYTE_CONNECTION_ID, 270 GetPeerInMemoryConnectionId(connection_id), false, false, 100, "data",
271 PACKET_6BYTE_PACKET_NUMBER, nullptr, Perspective::IS_SERVER)); 271 PACKET_8BYTE_CONNECTION_ID, PACKET_6BYTE_PACKET_NUMBER, nullptr,
272 Perspective::IS_SERVER));
272 std::unique_ptr<QuicReceivedPacket> received( 273 std::unique_ptr<QuicReceivedPacket> received(
273 ConstructReceivedPacket(*packet, QuicTime::Zero())); 274 ConstructReceivedPacket(*packet, QuicTime::Zero()));
274 // Change the last byte of the encrypted data. 275 // Change the last byte of the encrypted data.
275 *(const_cast<char*>(received->data() + received->length() - 1)) += 1; 276 *(const_cast<char*>(received->data() + received->length() - 1)) += 1;
276 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); 277 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
277 EXPECT_CALL(*connection_, OnError(Truly(CheckForDecryptionError))).Times(1); 278 EXPECT_CALL(*connection_, OnError(Truly(CheckForDecryptionError))).Times(1);
278 session_->ProcessUdpPacket(client_address, server_address, *received); 279 session_->ProcessUdpPacket(client_address, server_address, *received);
279 } 280 }
280 281
281 // A packet with invalid framing should cause a connection to be closed. 282 // A packet with invalid framing should cause a connection to be closed.
282 TEST_P(QuicClientSessionTest, InvalidFramedPacketReceived) { 283 TEST_P(QuicClientSessionTest, InvalidFramedPacketReceived) {
283 QuicSocketAddress server_address(TestPeerIPAddress(), kTestPort); 284 QuicSocketAddress server_address(TestPeerIPAddress(), kTestPort);
284 QuicSocketAddress client_address(TestPeerIPAddress(), kTestPort); 285 QuicSocketAddress client_address(TestPeerIPAddress(), kTestPort);
285 286
286 EXPECT_CALL(*connection_, ProcessUdpPacket(server_address, client_address, _)) 287 EXPECT_CALL(*connection_, ProcessUdpPacket(server_address, client_address, _))
287 .WillRepeatedly(Invoke(implicit_cast<MockQuicConnection*>(connection_), 288 .WillRepeatedly(Invoke(implicit_cast<MockQuicConnection*>(connection_),
288 &MockQuicConnection::ReallyProcessUdpPacket)); 289 &MockQuicConnection::ReallyProcessUdpPacket));
289 EXPECT_CALL(*connection_, OnError(_)).Times(1); 290 EXPECT_CALL(*connection_, OnError(_)).Times(1);
290 291
291 // Verify that a decryptable packet with bad frames does close the connection. 292 // Verify that a decryptable packet with bad frames does close the connection.
292 QuicConnectionId connection_id = session_->connection()->connection_id(); 293 QuicConnectionId connection_id = session_->connection()->connection_id();
293 QuicVersionVector versions = {GetParam()}; 294 QuicVersionVector versions = {GetParam()};
294 std::unique_ptr<QuicEncryptedPacket> packet(ConstructMisFramedEncryptedPacket( 295 std::unique_ptr<QuicEncryptedPacket> packet(ConstructMisFramedEncryptedPacket(
295 connection_id, false, false, 100, "data", PACKET_8BYTE_CONNECTION_ID, 296 GetPeerInMemoryConnectionId(connection_id), false, false, 100, "data",
296 PACKET_6BYTE_PACKET_NUMBER, &versions, Perspective::IS_SERVER)); 297 PACKET_8BYTE_CONNECTION_ID, PACKET_6BYTE_PACKET_NUMBER, &versions,
298 Perspective::IS_SERVER));
297 std::unique_ptr<QuicReceivedPacket> received( 299 std::unique_ptr<QuicReceivedPacket> received(
298 ConstructReceivedPacket(*packet, QuicTime::Zero())); 300 ConstructReceivedPacket(*packet, QuicTime::Zero()));
299 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(1); 301 EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(1);
300 session_->ProcessUdpPacket(client_address, server_address, *received); 302 session_->ProcessUdpPacket(client_address, server_address, *received);
301 } 303 }
302 304
303 TEST_P(QuicClientSessionTest, PushPromiseOnPromiseHeaders) { 305 TEST_P(QuicClientSessionTest, PushPromiseOnPromiseHeaders) {
304 // Initialize crypto before the client session will create a stream. 306 // Initialize crypto before the client session will create a stream.
305 CompleteCryptoHandshake(); 307 CompleteCryptoHandshake();
306 308
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 QuicClientPromisedInfo* promised = 498 QuicClientPromisedInfo* promised =
497 session_->GetPromisedById(promised_stream_id_); 499 session_->GetPromisedById(promised_stream_id_);
498 EXPECT_NE(promised, nullptr); 500 EXPECT_NE(promised, nullptr);
499 EXPECT_NE(session_->GetPromisedByUrl(promise_url_), nullptr); 501 EXPECT_NE(session_->GetPromisedByUrl(promise_url_), nullptr);
500 EXPECT_EQ(session_->GetPromisedStream(promised_stream_id_), nullptr); 502 EXPECT_EQ(session_->GetPromisedStream(promised_stream_id_), nullptr);
501 } 503 }
502 504
503 } // namespace 505 } // namespace
504 } // namespace test 506 } // namespace test
505 } // namespace net 507 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/end_to_end_test.cc ('k') | net/tools/quic/quic_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698