OLD | NEW |
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/test_tools/quic_test_utils.h" | 5 #include "net/quic/test_tools/quic_test_utils.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "net/quic/core/crypto/crypto_framer.h" | 10 #include "net/quic/core/crypto/crypto_framer.h" |
11 #include "net/quic/core/crypto/crypto_handshake.h" | 11 #include "net/quic/core/crypto/crypto_handshake.h" |
12 #include "net/quic/core/crypto/crypto_utils.h" | 12 #include "net/quic/core/crypto/crypto_utils.h" |
13 #include "net/quic/core/crypto/null_encrypter.h" | 13 #include "net/quic/core/crypto/null_encrypter.h" |
14 #include "net/quic/core/crypto/quic_decrypter.h" | 14 #include "net/quic/core/crypto/quic_decrypter.h" |
15 #include "net/quic/core/crypto/quic_encrypter.h" | 15 #include "net/quic/core/crypto/quic_encrypter.h" |
16 #include "net/quic/core/quic_data_writer.h" | 16 #include "net/quic/core/quic_data_writer.h" |
17 #include "net/quic/core/quic_flags.h" | |
18 #include "net/quic/core/quic_framer.h" | 17 #include "net/quic/core/quic_framer.h" |
19 #include "net/quic/core/quic_packet_creator.h" | 18 #include "net/quic/core/quic_packet_creator.h" |
20 #include "net/quic/core/quic_utils.h" | 19 #include "net/quic/core/quic_utils.h" |
21 #include "net/quic/platform/api/quic_endian.h" | 20 #include "net/quic/platform/api/quic_endian.h" |
| 21 #include "net/quic/platform/api/quic_flags.h" |
22 #include "net/quic/platform/api/quic_logging.h" | 22 #include "net/quic/platform/api/quic_logging.h" |
23 #include "net/quic/platform/api/quic_ptr_util.h" | 23 #include "net/quic/platform/api/quic_ptr_util.h" |
24 #include "net/quic/test_tools/crypto_test_utils.h" | 24 #include "net/quic/test_tools/crypto_test_utils.h" |
25 #include "net/quic/test_tools/quic_connection_peer.h" | 25 #include "net/quic/test_tools/quic_connection_peer.h" |
26 #include "net/spdy/spdy_frame_builder.h" | 26 #include "net/spdy/spdy_frame_builder.h" |
27 #include "third_party/boringssl/src/include/openssl/sha.h" | 27 #include "third_party/boringssl/src/include/openssl/sha.h" |
28 | 28 |
29 using std::string; | 29 using std::string; |
30 using testing::_; | 30 using testing::_; |
31 using testing::Invoke; | 31 using testing::Invoke; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 // Re-construct the data packet with data ownership. | 77 // Re-construct the data packet with data ownership. |
78 return new QuicPacket(buffer, length, /* owns_buffer */ true, | 78 return new QuicPacket(buffer, length, /* owns_buffer */ true, |
79 header.public_header.connection_id_length, | 79 header.public_header.connection_id_length, |
80 header.public_header.version_flag, | 80 header.public_header.version_flag, |
81 header.public_header.nonce != nullptr, | 81 header.public_header.nonce != nullptr, |
82 header.public_header.packet_number_length); | 82 header.public_header.packet_number_length); |
83 } | 83 } |
84 | 84 |
85 QuicFlagSaver::QuicFlagSaver() { | 85 QuicFlagSaver::QuicFlagSaver() { |
86 #define QUIC_FLAG(type, flag, value) \ | 86 #define QUIC_FLAG(type, flag, value) \ |
87 CHECK_EQ(value, base::GetFlag(flag)) \ | 87 CHECK_EQ(value, GetQuicFlag(flag)) \ |
88 << "Flag set to an unexpected value. A prior test is likely " \ | 88 << "Flag set to an unexpected value. A prior test is likely " \ |
89 << "setting a flag without using a QuicFlagSaver"; | 89 << "setting a flag without using a QuicFlagSaver"; |
90 #include "net/quic/core/quic_flags_list.h" | 90 #include "net/quic/core/quic_flags_list.h" |
91 #undef QUIC_FLAG | 91 #undef QUIC_FLAG |
92 } | 92 } |
93 | 93 |
94 QuicFlagSaver::~QuicFlagSaver() { | 94 QuicFlagSaver::~QuicFlagSaver() { |
95 #define QUIC_FLAG(type, flag, value) base::SetFlag(&flag, value); | 95 #define QUIC_FLAG(type, flag, value) SetQuicFlag(&flag, value); |
96 #include "net/quic/core/quic_flags_list.h" | 96 #include "net/quic/core/quic_flags_list.h" |
97 #undef QUIC_FLAG | 97 #undef QUIC_FLAG |
98 } | 98 } |
99 | 99 |
100 string Sha1Hash(QuicStringPiece data) { | 100 string Sha1Hash(QuicStringPiece data) { |
101 char buffer[SHA_DIGEST_LENGTH]; | 101 char buffer[SHA_DIGEST_LENGTH]; |
102 SHA1(reinterpret_cast<const uint8_t*>(data.data()), data.size(), | 102 SHA1(reinterpret_cast<const uint8_t*>(data.data()), data.size(), |
103 reinterpret_cast<uint8_t*>(buffer)); | 103 reinterpret_cast<uint8_t*>(buffer)); |
104 return string(buffer, arraysize(buffer)); | 104 return string(buffer, arraysize(buffer)); |
105 } | 105 } |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 MockQuicSession::~MockQuicSession() { | 387 MockQuicSession::~MockQuicSession() { |
388 delete connection(); | 388 delete connection(); |
389 } | 389 } |
390 | 390 |
391 // static | 391 // static |
392 QuicConsumedData MockQuicSession::ConsumeAllData( | 392 QuicConsumedData MockQuicSession::ConsumeAllData( |
393 QuicStream* /*stream*/, | 393 QuicStream* /*stream*/, |
394 QuicStreamId /*id*/, | 394 QuicStreamId /*id*/, |
395 const QuicIOVector& data, | 395 const QuicIOVector& data, |
396 QuicStreamOffset /*offset*/, | 396 QuicStreamOffset /*offset*/, |
397 bool fin, | 397 StreamSendingState state, |
398 const QuicReferenceCountedPointer< | 398 const QuicReferenceCountedPointer< |
399 QuicAckListenerInterface>& /*ack_listener*/) { | 399 QuicAckListenerInterface>& /*ack_listener*/) { |
400 return QuicConsumedData(data.total_length, fin); | 400 return QuicConsumedData(data.total_length, state != NO_FIN); |
401 } | 401 } |
402 | 402 |
403 MockQuicSpdySession::MockQuicSpdySession(QuicConnection* connection) | 403 MockQuicSpdySession::MockQuicSpdySession(QuicConnection* connection) |
404 : QuicSpdySession(connection, nullptr, DefaultQuicConfig()) { | 404 : QuicSpdySession(connection, nullptr, DefaultQuicConfig()) { |
405 crypto_stream_.reset(new QuicCryptoStream(this)); | 405 crypto_stream_.reset(new QuicCryptoStream(this)); |
406 Initialize(); | 406 Initialize(); |
407 ON_CALL(*this, WritevData(_, _, _, _, _, _)) | 407 ON_CALL(*this, WritevData(_, _, _, _, _, _)) |
408 .WillByDefault(testing::Return(QuicConsumedData(0, false))); | 408 .WillByDefault(testing::Return(QuicConsumedData(0, false))); |
409 } | 409 } |
410 | 410 |
(...skipping 27 matching lines...) Expand all Loading... |
438 QuicCryptoServerStreamBase* | 438 QuicCryptoServerStreamBase* |
439 TestQuicSpdyServerSession::CreateQuicCryptoServerStream( | 439 TestQuicSpdyServerSession::CreateQuicCryptoServerStream( |
440 const QuicCryptoServerConfig* crypto_config, | 440 const QuicCryptoServerConfig* crypto_config, |
441 QuicCompressedCertsCache* compressed_certs_cache) { | 441 QuicCompressedCertsCache* compressed_certs_cache) { |
442 return new QuicCryptoServerStream( | 442 return new QuicCryptoServerStream( |
443 crypto_config, compressed_certs_cache, | 443 crypto_config, compressed_certs_cache, |
444 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support, this, | 444 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support, this, |
445 &helper_); | 445 &helper_); |
446 } | 446 } |
447 | 447 |
448 QuicCryptoServerStream* TestQuicSpdyServerSession::GetCryptoStream() { | 448 QuicCryptoServerStream* TestQuicSpdyServerSession::GetMutableCryptoStream() { |
449 return static_cast<QuicCryptoServerStream*>( | 449 return static_cast<QuicCryptoServerStream*>( |
| 450 QuicServerSessionBase::GetMutableCryptoStream()); |
| 451 } |
| 452 |
| 453 const QuicCryptoServerStream* TestQuicSpdyServerSession::GetCryptoStream() |
| 454 const { |
| 455 return static_cast<const QuicCryptoServerStream*>( |
450 QuicServerSessionBase::GetCryptoStream()); | 456 QuicServerSessionBase::GetCryptoStream()); |
451 } | 457 } |
452 | 458 |
453 TestQuicSpdyClientSession::TestQuicSpdyClientSession( | 459 TestQuicSpdyClientSession::TestQuicSpdyClientSession( |
454 QuicConnection* connection, | 460 QuicConnection* connection, |
455 const QuicConfig& config, | 461 const QuicConfig& config, |
456 const QuicServerId& server_id, | 462 const QuicServerId& server_id, |
457 QuicCryptoClientConfig* crypto_config) | 463 QuicCryptoClientConfig* crypto_config) |
458 : QuicClientSessionBase(connection, &push_promise_index_, config) { | 464 : QuicClientSessionBase(connection, &push_promise_index_, config) { |
459 crypto_stream_.reset(new QuicCryptoClientStream( | 465 crypto_stream_.reset(new QuicCryptoClientStream( |
460 server_id, this, crypto_test_utils::ProofVerifyContextForTesting(), | 466 server_id, this, crypto_test_utils::ProofVerifyContextForTesting(), |
461 crypto_config, this)); | 467 crypto_config, this)); |
462 Initialize(); | 468 Initialize(); |
463 } | 469 } |
464 | 470 |
465 TestQuicSpdyClientSession::~TestQuicSpdyClientSession() {} | 471 TestQuicSpdyClientSession::~TestQuicSpdyClientSession() {} |
466 | 472 |
467 bool TestQuicSpdyClientSession::IsAuthorized(const string& authority) { | 473 bool TestQuicSpdyClientSession::IsAuthorized(const string& authority) { |
468 return true; | 474 return true; |
469 } | 475 } |
470 | 476 |
471 QuicCryptoClientStream* TestQuicSpdyClientSession::GetCryptoStream() { | 477 QuicCryptoClientStream* TestQuicSpdyClientSession::GetMutableCryptoStream() { |
472 return crypto_stream_.get(); | 478 return crypto_stream_.get(); |
473 } | 479 } |
474 | 480 |
| 481 const QuicCryptoClientStream* TestQuicSpdyClientSession::GetCryptoStream() |
| 482 const { |
| 483 return crypto_stream_.get(); |
| 484 } |
| 485 |
475 TestPushPromiseDelegate::TestPushPromiseDelegate(bool match) | 486 TestPushPromiseDelegate::TestPushPromiseDelegate(bool match) |
476 : match_(match), rendezvous_fired_(false), rendezvous_stream_(nullptr) {} | 487 : match_(match), rendezvous_fired_(false), rendezvous_stream_(nullptr) {} |
477 | 488 |
478 bool TestPushPromiseDelegate::CheckVary( | 489 bool TestPushPromiseDelegate::CheckVary( |
479 const SpdyHeaderBlock& client_request, | 490 const SpdyHeaderBlock& client_request, |
480 const SpdyHeaderBlock& promise_request, | 491 const SpdyHeaderBlock& promise_request, |
481 const SpdyHeaderBlock& promise_response) { | 492 const SpdyHeaderBlock& promise_response) { |
482 QUIC_DVLOG(1) << "match " << match_; | 493 QUIC_DVLOG(1) << "match " << match_; |
483 return match_; | 494 return match_; |
484 } | 495 } |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
839 // strike register worries that we've just overflowed a uint32_t time. | 850 // strike register worries that we've just overflowed a uint32_t time. |
840 (*server_connection)->AdvanceTime(connection_start_time); | 851 (*server_connection)->AdvanceTime(connection_start_time); |
841 } | 852 } |
842 | 853 |
843 QuicStreamId QuicClientDataStreamId(int i) { | 854 QuicStreamId QuicClientDataStreamId(int i) { |
844 return kClientDataStreamId1 + 2 * i; | 855 return kClientDataStreamId1 + 2 * i; |
845 } | 856 } |
846 | 857 |
847 } // namespace test | 858 } // namespace test |
848 } // namespace net | 859 } // namespace net |
OLD | NEW |