| 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/tools/quic/quic_dispatcher.h" | 5 #include "net/tools/quic/quic_dispatcher.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/strings/string_piece.h" | 9 #include "base/strings/string_piece.h" |
| 10 #include "net/quic/crypto/crypto_handshake.h" | 10 #include "net/quic/crypto/crypto_handshake.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace net { | 35 namespace net { |
| 36 namespace tools { | 36 namespace tools { |
| 37 namespace test { | 37 namespace test { |
| 38 namespace { | 38 namespace { |
| 39 | 39 |
| 40 class TestDispatcher : public QuicDispatcher { | 40 class TestDispatcher : public QuicDispatcher { |
| 41 public: | 41 public: |
| 42 explicit TestDispatcher(const QuicConfig& config, | 42 explicit TestDispatcher(const QuicConfig& config, |
| 43 const QuicCryptoServerConfig& crypto_config, | 43 const QuicCryptoServerConfig& crypto_config, |
| 44 EpollServer* eps) | 44 EpollServer* eps) |
| 45 : QuicDispatcher(config, crypto_config, QuicSupportedVersions(), 1, eps) { | 45 : QuicDispatcher(config, crypto_config, QuicSupportedVersions(), eps) { |
| 46 } | 46 } |
| 47 | 47 |
| 48 MOCK_METHOD3(CreateQuicSession, QuicSession*( | 48 MOCK_METHOD3(CreateQuicSession, QuicSession*( |
| 49 QuicGuid guid, | 49 QuicGuid guid, |
| 50 const IPEndPoint& server_address, | 50 const IPEndPoint& server_address, |
| 51 const IPEndPoint& client_address)); | 51 const IPEndPoint& client_address)); |
| 52 using QuicDispatcher::write_blocked_list; | 52 using QuicDispatcher::write_blocked_list; |
| 53 }; | 53 }; |
| 54 | 54 |
| 55 // A Connection class which unregisters the session from the dispatcher | 55 // A Connection class which unregisters the session from the dispatcher |
| 56 // when sending connection close. | 56 // when sending connection close. |
| 57 // It'd be slightly more realistic to do this from the Session but it would | 57 // It'd be slightly more realistic to do this from the Session but it would |
| 58 // involve a lot more mocking. | 58 // involve a lot more mocking. |
| 59 class MockServerConnection : public MockConnection { | 59 class MockServerConnection : public MockConnection { |
| 60 public: | 60 public: |
| 61 MockServerConnection(QuicGuid guid, | 61 MockServerConnection(QuicGuid guid, |
| 62 QuicDispatcher* dispatcher) | 62 QuicDispatcher* dispatcher) |
| 63 : MockConnection(guid, true), | 63 : MockConnection(guid, true), |
| 64 dispatcher_(dispatcher) { | 64 dispatcher_(dispatcher) {} |
| 65 } | 65 |
| 66 void UnregisterOnConnectionClosed() { | 66 void UnregisterOnConnectionClosed() { |
| 67 LOG(ERROR) << "Unregistering " << guid(); | 67 LOG(ERROR) << "Unregistering " << guid(); |
| 68 dispatcher_->OnConnectionClosed(guid(), QUIC_NO_ERROR); | 68 dispatcher_->OnConnectionClosed(guid(), QUIC_NO_ERROR); |
| 69 } | 69 } |
| 70 private: | 70 private: |
| 71 QuicDispatcher* dispatcher_; | 71 QuicDispatcher* dispatcher_; |
| 72 }; | 72 }; |
| 73 | 73 |
| 74 QuicSession* CreateSession(QuicDispatcher* dispatcher, | 74 QuicSession* CreateSession(QuicDispatcher* dispatcher, |
| 75 QuicGuid guid, | 75 QuicGuid guid, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 87 } | 87 } |
| 88 | 88 |
| 89 class QuicDispatcherTest : public ::testing::Test { | 89 class QuicDispatcherTest : public ::testing::Test { |
| 90 public: | 90 public: |
| 91 QuicDispatcherTest() | 91 QuicDispatcherTest() |
| 92 : crypto_config_(QuicCryptoServerConfig::TESTING, | 92 : crypto_config_(QuicCryptoServerConfig::TESTING, |
| 93 QuicRandom::GetInstance()), | 93 QuicRandom::GetInstance()), |
| 94 dispatcher_(config_, crypto_config_, &eps_), | 94 dispatcher_(config_, crypto_config_, &eps_), |
| 95 session1_(NULL), | 95 session1_(NULL), |
| 96 session2_(NULL) { | 96 session2_(NULL) { |
| 97 dispatcher_.Initialize(1); |
| 97 } | 98 } |
| 98 | 99 |
| 99 virtual ~QuicDispatcherTest() {} | 100 virtual ~QuicDispatcherTest() {} |
| 100 | 101 |
| 101 MockConnection* connection1() { | 102 MockConnection* connection1() { |
| 102 return reinterpret_cast<MockConnection*>(session1_->connection()); | 103 return reinterpret_cast<MockConnection*>(session1_->connection()); |
| 103 } | 104 } |
| 104 | 105 |
| 105 MockConnection* connection2() { | 106 MockConnection* connection2() { |
| 106 return reinterpret_cast<MockConnection*>(session2_->connection()); | 107 return reinterpret_cast<MockConnection*>(session2_->connection()); |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 | 443 |
| 443 // And we'll resume where we left off when we get another call. | 444 // And we'll resume where we left off when we get another call. |
| 444 EXPECT_CALL(*connection2(), OnCanWrite()); | 445 EXPECT_CALL(*connection2(), OnCanWrite()); |
| 445 dispatcher_.OnCanWrite(); | 446 dispatcher_.OnCanWrite(); |
| 446 } | 447 } |
| 447 | 448 |
| 448 } // namespace | 449 } // namespace |
| 449 } // namespace test | 450 } // namespace test |
| 450 } // namespace tools | 451 } // namespace tools |
| 451 } // namespace net | 452 } // namespace net |
| OLD | NEW |