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

Side by Side Diff: net/quic/core/quic_crypto_client_stream_test.cc

Issue 2671333004: Convert class-full-of-statics CryptoTestUtils into a namespace (Closed)
Patch Set: Created 3 years, 10 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/quic/core/quic_crypto_client_stream.h ('k') | net/quic/core/quic_crypto_server_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) 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/core/quic_crypto_client_stream.h" 5 #include "net/quic/core/quic_crypto_client_stream.h"
6 6
7 #include <memory> 7 #include <memory>
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/crypto/quic_decrypter.h" 10 #include "net/quic/core/crypto/quic_decrypter.h"
(...skipping 18 matching lines...) Expand all
29 namespace test { 29 namespace test {
30 namespace { 30 namespace {
31 31
32 const char kServerHostname[] = "test.example.com"; 32 const char kServerHostname[] = "test.example.com";
33 const uint16_t kServerPort = 443; 33 const uint16_t kServerPort = 443;
34 34
35 class QuicCryptoClientStreamTest : public ::testing::Test { 35 class QuicCryptoClientStreamTest : public ::testing::Test {
36 public: 36 public:
37 QuicCryptoClientStreamTest() 37 QuicCryptoClientStreamTest()
38 : server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED), 38 : server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED),
39 crypto_config_(CryptoTestUtils::ProofVerifierForTesting()) { 39 crypto_config_(crypto_test_utils::ProofVerifierForTesting()) {
40 CreateConnection(); 40 CreateConnection();
41 } 41 }
42 42
43 void CreateConnection() { 43 void CreateConnection() {
44 connection_ = new PacketSavingConnection(&client_helper_, &alarm_factory_, 44 connection_ = new PacketSavingConnection(&client_helper_, &alarm_factory_,
45 Perspective::IS_CLIENT); 45 Perspective::IS_CLIENT);
46 // Advance the time, because timers do not like uninitialized times. 46 // Advance the time, because timers do not like uninitialized times.
47 connection_->AdvanceTime(QuicTime::Delta::FromSeconds(1)); 47 connection_->AdvanceTime(QuicTime::Delta::FromSeconds(1));
48 48
49 session_.reset(new TestQuicSpdyClientSession( 49 session_.reset(new TestQuicSpdyClientSession(
50 connection_, DefaultQuicConfig(), server_id_, &crypto_config_)); 50 connection_, DefaultQuicConfig(), server_id_, &crypto_config_));
51 } 51 }
52 52
53 void CompleteCryptoHandshake() { 53 void CompleteCryptoHandshake() {
54 stream()->CryptoConnect(); 54 stream()->CryptoConnect();
55 QuicConfig config; 55 QuicConfig config;
56 CryptoTestUtils::HandshakeWithFakeServer(&config, &server_helper_, 56 crypto_test_utils::HandshakeWithFakeServer(&config, &server_helper_,
57 &alarm_factory_, connection_, 57 &alarm_factory_, connection_,
58 stream(), server_options_); 58 stream(), server_options_);
59 } 59 }
60 60
61 void ConstructHandshakeMessage() { 61 void ConstructHandshakeMessage() {
62 CryptoFramer framer; 62 CryptoFramer framer;
63 message_data_.reset(framer.ConstructHandshakeMessage(message_)); 63 message_data_.reset(framer.ConstructHandshakeMessage(message_));
64 } 64 }
65 65
66 QuicCryptoClientStream* stream() { return session_->GetCryptoStream(); } 66 QuicCryptoClientStream* stream() { return session_->GetCryptoStream(); }
67 67
68 MockQuicConnectionHelper server_helper_; 68 MockQuicConnectionHelper server_helper_;
69 MockQuicConnectionHelper client_helper_; 69 MockQuicConnectionHelper client_helper_;
70 MockAlarmFactory alarm_factory_; 70 MockAlarmFactory alarm_factory_;
71 PacketSavingConnection* connection_; 71 PacketSavingConnection* connection_;
72 std::unique_ptr<TestQuicSpdyClientSession> session_; 72 std::unique_ptr<TestQuicSpdyClientSession> session_;
73 QuicServerId server_id_; 73 QuicServerId server_id_;
74 CryptoHandshakeMessage message_; 74 CryptoHandshakeMessage message_;
75 std::unique_ptr<QuicData> message_data_; 75 std::unique_ptr<QuicData> message_data_;
76 QuicCryptoClientConfig crypto_config_; 76 QuicCryptoClientConfig crypto_config_;
77 CryptoTestUtils::FakeServerOptions server_options_; 77 crypto_test_utils::FakeServerOptions server_options_;
78 }; 78 };
79 79
80 TEST_F(QuicCryptoClientStreamTest, NotInitiallyConected) { 80 TEST_F(QuicCryptoClientStreamTest, NotInitiallyConected) {
81 EXPECT_FALSE(stream()->encryption_established()); 81 EXPECT_FALSE(stream()->encryption_established());
82 EXPECT_FALSE(stream()->handshake_confirmed()); 82 EXPECT_FALSE(stream()->handshake_confirmed());
83 } 83 }
84 84
85 TEST_F(QuicCryptoClientStreamTest, ConnectedAfterSHLO) { 85 TEST_F(QuicCryptoClientStreamTest, ConnectedAfterSHLO) {
86 CompleteCryptoHandshake(); 86 CompleteCryptoHandshake();
87 EXPECT_TRUE(stream()->encryption_established()); 87 EXPECT_TRUE(stream()->encryption_established());
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 } 237 }
238 238
239 TEST_F(QuicCryptoClientStreamTest, ServerConfigUpdateWithCert) { 239 TEST_F(QuicCryptoClientStreamTest, ServerConfigUpdateWithCert) {
240 // Test that the crypto client stream can receive and use server config 240 // Test that the crypto client stream can receive and use server config
241 // updates with certificates after the connection has been established. 241 // updates with certificates after the connection has been established.
242 CompleteCryptoHandshake(); 242 CompleteCryptoHandshake();
243 243
244 // Build a server config update message with certificates 244 // Build a server config update message with certificates
245 QuicCryptoServerConfig crypto_config( 245 QuicCryptoServerConfig crypto_config(
246 QuicCryptoServerConfig::TESTING, QuicRandom::GetInstance(), 246 QuicCryptoServerConfig::TESTING, QuicRandom::GetInstance(),
247 CryptoTestUtils::ProofSourceForTesting()); 247 crypto_test_utils::ProofSourceForTesting());
248 CryptoTestUtils::FakeServerOptions options; 248 crypto_test_utils::FakeServerOptions options;
249 CryptoTestUtils::SetupCryptoServerConfigForTest( 249 crypto_test_utils::SetupCryptoServerConfigForTest(
250 connection_->clock(), QuicRandom::GetInstance(), &crypto_config, options); 250 connection_->clock(), QuicRandom::GetInstance(), &crypto_config, options);
251 SourceAddressTokens tokens; 251 SourceAddressTokens tokens;
252 QuicCompressedCertsCache cache(1); 252 QuicCompressedCertsCache cache(1);
253 CachedNetworkParameters network_params; 253 CachedNetworkParameters network_params;
254 CryptoHandshakeMessage server_config_update; 254 CryptoHandshakeMessage server_config_update;
255 EXPECT_TRUE(crypto_config.BuildServerConfigUpdateMessage( 255 EXPECT_TRUE(crypto_config.BuildServerConfigUpdateMessage(
256 session_->connection()->version(), stream()->chlo_hash(), tokens, 256 session_->connection()->version(), stream()->chlo_hash(), tokens,
257 QuicSocketAddress(QuicIpAddress::Loopback6(), 1234), 257 QuicSocketAddress(QuicIpAddress::Loopback6(), 1234),
258 QuicIpAddress::Loopback6(), connection_->clock(), 258 QuicIpAddress::Loopback6(), connection_->clock(),
259 QuicRandom::GetInstance(), &cache, stream()->crypto_negotiated_params(), 259 QuicRandom::GetInstance(), &cache, stream()->crypto_negotiated_params(),
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 327
328 CompleteCryptoHandshake(); 328 CompleteCryptoHandshake();
329 EXPECT_TRUE(stream()->encryption_established()); 329 EXPECT_TRUE(stream()->encryption_established());
330 EXPECT_TRUE(stream()->handshake_confirmed()); 330 EXPECT_TRUE(stream()->handshake_confirmed());
331 EXPECT_EQ(0u, stream()->crypto_negotiated_params().token_binding_key_param); 331 EXPECT_EQ(0u, stream()->crypto_negotiated_params().token_binding_key_param);
332 } 332 }
333 333
334 class QuicCryptoClientStreamStatelessTest : public ::testing::Test { 334 class QuicCryptoClientStreamStatelessTest : public ::testing::Test {
335 public: 335 public:
336 QuicCryptoClientStreamStatelessTest() 336 QuicCryptoClientStreamStatelessTest()
337 : client_crypto_config_(CryptoTestUtils::ProofVerifierForTesting()), 337 : client_crypto_config_(crypto_test_utils::ProofVerifierForTesting()),
338 server_crypto_config_(QuicCryptoServerConfig::TESTING, 338 server_crypto_config_(QuicCryptoServerConfig::TESTING,
339 QuicRandom::GetInstance(), 339 QuicRandom::GetInstance(),
340 CryptoTestUtils::ProofSourceForTesting()), 340 crypto_test_utils::ProofSourceForTesting()),
341 server_compressed_certs_cache_( 341 server_compressed_certs_cache_(
342 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize), 342 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize),
343 server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED) { 343 server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED) {
344 TestQuicSpdyClientSession* client_session = nullptr; 344 TestQuicSpdyClientSession* client_session = nullptr;
345 CreateClientSessionForTest(server_id_, 345 CreateClientSessionForTest(server_id_,
346 /* supports_stateless_rejects= */ true, 346 /* supports_stateless_rejects= */ true,
347 QuicTime::Delta::FromSeconds(100000), 347 QuicTime::Delta::FromSeconds(100000),
348 AllSupportedVersions(), &helper_, 348 AllSupportedVersions(), &helper_,
349 &alarm_factory_, &client_crypto_config_, 349 &alarm_factory_, &client_crypto_config_,
350 &client_connection_, &client_session); 350 &client_connection_, &client_session);
351 CHECK(client_session); 351 CHECK(client_session);
352 client_session_.reset(client_session); 352 client_session_.reset(client_session);
353 } 353 }
354 354
355 QuicCryptoServerStream* server_stream() { 355 QuicCryptoServerStream* server_stream() {
356 return server_session_->GetCryptoStream(); 356 return server_session_->GetCryptoStream();
357 } 357 }
358 358
359 void AdvanceHandshakeWithFakeServer() { 359 void AdvanceHandshakeWithFakeServer() {
360 client_session_->GetCryptoStream()->CryptoConnect(); 360 client_session_->GetCryptoStream()->CryptoConnect();
361 CryptoTestUtils::AdvanceHandshake(client_connection_, 361 crypto_test_utils::AdvanceHandshake(client_connection_,
362 client_session_->GetCryptoStream(), 0, 362 client_session_->GetCryptoStream(), 0,
363 server_connection_, server_stream(), 0); 363 server_connection_, server_stream(), 0);
364 } 364 }
365 365
366 // Initializes the server_stream_ for stateless rejects. 366 // Initializes the server_stream_ for stateless rejects.
367 void InitializeFakeStatelessRejectServer() { 367 void InitializeFakeStatelessRejectServer() {
368 TestQuicSpdyServerSession* server_session = nullptr; 368 TestQuicSpdyServerSession* server_session = nullptr;
369 CreateServerSessionForTest(server_id_, QuicTime::Delta::FromSeconds(100000), 369 CreateServerSessionForTest(server_id_, QuicTime::Delta::FromSeconds(100000),
370 AllSupportedVersions(), &helper_, 370 AllSupportedVersions(), &helper_,
371 &alarm_factory_, &server_crypto_config_, 371 &alarm_factory_, &server_crypto_config_,
372 &server_compressed_certs_cache_, 372 &server_compressed_certs_cache_,
373 &server_connection_, &server_session); 373 &server_connection_, &server_session);
374 CHECK(server_session); 374 CHECK(server_session);
375 server_session_.reset(server_session); 375 server_session_.reset(server_session);
376 CryptoTestUtils::FakeServerOptions options; 376 crypto_test_utils::FakeServerOptions options;
377 CryptoTestUtils::SetupCryptoServerConfigForTest( 377 crypto_test_utils::SetupCryptoServerConfigForTest(
378 server_connection_->clock(), server_connection_->random_generator(), 378 server_connection_->clock(), server_connection_->random_generator(),
379 &server_crypto_config_, options); 379 &server_crypto_config_, options);
380 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support = true; 380 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support = true;
381 } 381 }
382 382
383 QuicFlagSaver flags_; // Save/restore all QUIC flag values. 383 QuicFlagSaver flags_; // Save/restore all QUIC flag values.
384 384
385 MockQuicConnectionHelper helper_; 385 MockQuicConnectionHelper helper_;
386 MockAlarmFactory alarm_factory_; 386 MockAlarmFactory alarm_factory_;
387 387
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 client_state->GetNextServerDesignatedConnectionId(); 426 client_state->GetNextServerDesignatedConnectionId();
427 QuicConnectionId expected_id = 427 QuicConnectionId expected_id =
428 server_session_->connection()->random_generator()->RandUint64(); 428 server_session_->connection()->random_generator()->RandUint64();
429 EXPECT_EQ(expected_id, server_designated_id); 429 EXPECT_EQ(expected_id, server_designated_id);
430 EXPECT_FALSE(client_state->has_server_designated_connection_id()); 430 EXPECT_FALSE(client_state->has_server_designated_connection_id());
431 } 431 }
432 432
433 } // namespace 433 } // namespace
434 } // namespace test 434 } // namespace test
435 } // namespace net 435 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_crypto_client_stream.h ('k') | net/quic/core/quic_crypto_server_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698