Index: net/tools/quic/quic_client_session_test.cc |
diff --git a/net/tools/quic/quic_client_session_test.cc b/net/tools/quic/quic_client_session_test.cc |
deleted file mode 100644 |
index 1e8006b35307189df17bac64f7504edcd31711e9..0000000000000000000000000000000000000000 |
--- a/net/tools/quic/quic_client_session_test.cc |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/tools/quic/quic_client_session.h" |
- |
-#include <vector> |
- |
-#include "net/base/ip_endpoint.h" |
-#include "net/quic/crypto/aes_128_gcm_12_encrypter.h" |
-#include "net/quic/quic_flags.h" |
-#include "net/quic/test_tools/crypto_test_utils.h" |
-#include "net/quic/test_tools/quic_session_peer.h" |
-#include "net/quic/test_tools/quic_test_utils.h" |
-#include "net/tools/quic/quic_spdy_client_stream.h" |
-#include "net/tools/quic/test_tools/quic_test_utils.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using net::test::CryptoTestUtils; |
-using net::test::DefaultQuicConfig; |
-using net::test::PacketSavingConnection; |
-using net::test::QuicSessionPeer; |
-using net::test::SupportedVersions; |
-using net::test::TestPeerIPAddress; |
-using net::test::ValueRestore; |
-using net::test::kTestPort; |
-using net::tools::test::MockConnection; |
-using testing::Invoke; |
-using testing::_; |
- |
-namespace net { |
-namespace tools { |
-namespace test { |
-namespace { |
- |
-const char kServerHostname[] = "www.example.org"; |
-const uint16 kPort = 80; |
- |
-class ToolsQuicClientSessionTest |
- : public ::testing::TestWithParam<QuicVersion> { |
- protected: |
- ToolsQuicClientSessionTest() |
- : connection_( |
- new PacketSavingConnection(false, SupportedVersions(GetParam()))) { |
- session_.reset(new QuicClientSession(DefaultQuicConfig(), connection_)); |
- session_->InitializeSession( |
- QuicServerId(kServerHostname, kPort, false, PRIVACY_MODE_DISABLED), |
- &crypto_config_); |
- // Advance the time, because timers do not like uninitialized times. |
- connection_->AdvanceTime(QuicTime::Delta::FromSeconds(1)); |
- } |
- |
- void CompleteCryptoHandshake() { |
- session_->CryptoConnect(); |
- CryptoTestUtils::HandshakeWithFakeServer( |
- connection_, session_->GetCryptoStream()); |
- } |
- |
- PacketSavingConnection* connection_; |
- scoped_ptr<QuicClientSession> session_; |
- QuicCryptoClientConfig crypto_config_; |
-}; |
- |
-INSTANTIATE_TEST_CASE_P(Tests, ToolsQuicClientSessionTest, |
- ::testing::ValuesIn(QuicSupportedVersions())); |
- |
-TEST_P(ToolsQuicClientSessionTest, CryptoConnect) { |
- CompleteCryptoHandshake(); |
-} |
- |
-TEST_P(ToolsQuicClientSessionTest, MaxNumStreams) { |
- session_->config()->SetMaxStreamsPerConnection(1, 1); |
- // FLAGS_max_streams_per_connection = 1; |
- // Initialize crypto before the client session will create a stream. |
- CompleteCryptoHandshake(); |
- |
- QuicSpdyClientStream* stream = session_->CreateOutgoingDataStream(); |
- ASSERT_TRUE(stream); |
- EXPECT_FALSE(session_->CreateOutgoingDataStream()); |
- |
- // Close a stream and ensure I can now open a new one. |
- session_->CloseStream(stream->id()); |
- stream = session_->CreateOutgoingDataStream(); |
- EXPECT_TRUE(stream); |
-} |
- |
-TEST_P(ToolsQuicClientSessionTest, GoAwayReceived) { |
- CompleteCryptoHandshake(); |
- |
- // After receiving a GoAway, I should no longer be able to create outgoing |
- // streams. |
- session_->OnGoAway(QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away.")); |
- EXPECT_EQ(nullptr, session_->CreateOutgoingDataStream()); |
-} |
- |
-TEST_P(ToolsQuicClientSessionTest, SetFecProtectionFromConfig) { |
- ValueRestore<bool> old_flag(&FLAGS_enable_quic_fec, true); |
- |
- // Set FEC config in client's connection options. |
- QuicTagVector copt; |
- copt.push_back(kFHDR); |
- session_->config()->SetConnectionOptionsToSend(copt); |
- |
- // Doing the handshake should set up FEC config correctly. |
- CompleteCryptoHandshake(); |
- |
- // Verify that headers stream is always protected and data streams are |
- // optionally protected. |
- EXPECT_EQ(FEC_PROTECT_ALWAYS, |
- QuicSessionPeer::GetHeadersStream(session_.get())->fec_policy()); |
- QuicSpdyClientStream* stream = session_->CreateOutgoingDataStream(); |
- ASSERT_TRUE(stream); |
- EXPECT_EQ(FEC_PROTECT_OPTIONAL, stream->fec_policy()); |
-} |
- |
-// Regression test for b/17206611. |
-TEST_P(ToolsQuicClientSessionTest, InvalidPacketReceived) { |
- // Create Packet with 0 length. |
- QuicEncryptedPacket invalid_packet(nullptr, 0, false); |
- IPEndPoint server_address(TestPeerIPAddress(), kTestPort); |
- IPEndPoint client_address(TestPeerIPAddress(), kTestPort); |
- |
- EXPECT_CALL(*reinterpret_cast<MockConnection*>(session_->connection()), |
- ProcessUdpPacket(server_address, client_address, _)) |
- .WillRepeatedly( |
- Invoke(reinterpret_cast<MockConnection*>(session_->connection()), |
- &MockConnection::ReallyProcessUdpPacket)); |
- |
- // Validate that empty packets don't close the connection. |
- EXPECT_CALL(*connection_, SendConnectionCloseWithDetails(_, _)).Times(0); |
- session_->connection()->ProcessUdpPacket(client_address, server_address, |
- invalid_packet); |
- |
- // Verifiy that small, invalid packets don't close the connection. |
- char buf[2] = {0x00, 0x01}; |
- QuicEncryptedPacket valid_packet(buf, 2, false); |
- // Close connection shouldn't be called. |
- EXPECT_CALL(*connection_, SendConnectionCloseWithDetails(_, _)).Times(0); |
- session_->connection()->ProcessUdpPacket(client_address, server_address, |
- valid_packet); |
-} |
- |
-} // namespace |
-} // namespace test |
-} // namespace tools |
-} // namespace net |