| Index: net/tools/quic/quic_dispatcher_test.cc
|
| diff --git a/net/tools/quic/quic_dispatcher_test.cc b/net/tools/quic/quic_dispatcher_test.cc
|
| index 0f01b57baa727528ab51ab36f676046f3c86156e..8046608e29b5a236b3d24be6a6dc09355a4076fa 100644
|
| --- a/net/tools/quic/quic_dispatcher_test.cc
|
| +++ b/net/tools/quic/quic_dispatcher_test.cc
|
| @@ -42,6 +42,20 @@ namespace tools {
|
| namespace test {
|
| namespace {
|
|
|
| +class TestServerSession : public QuicServerSession {
|
| + public:
|
| + TestServerSession(const QuicConfig& config, QuicConnection* connection)
|
| + : QuicServerSession(config, connection, nullptr) {}
|
| + ~TestServerSession() override{};
|
| +
|
| + MOCK_METHOD2(OnConnectionClosed, void(QuicErrorCode error, bool from_peer));
|
| + MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
|
| + MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(TestServerSession);
|
| +};
|
| +
|
| class TestDispatcher : public QuicDispatcher {
|
| public:
|
| explicit TestDispatcher(const QuicConfig& config,
|
| @@ -54,10 +68,10 @@ class TestDispatcher : public QuicDispatcher {
|
| new QuicEpollConnectionHelper(eps)) {
|
| }
|
|
|
| - MOCK_METHOD3(CreateQuicSession, QuicSession*(
|
| - QuicConnectionId connection_id,
|
| - const IPEndPoint& server_address,
|
| - const IPEndPoint& client_address));
|
| + MOCK_METHOD3(CreateQuicSession,
|
| + QuicServerSession*(QuicConnectionId connection_id,
|
| + const IPEndPoint& server_address,
|
| + const IPEndPoint& client_address));
|
|
|
| using QuicDispatcher::current_server_address;
|
| using QuicDispatcher::current_client_address;
|
| @@ -78,17 +92,20 @@ class MockServerConnection : public MockConnection {
|
| LOG(ERROR) << "Unregistering " << connection_id();
|
| dispatcher_->OnConnectionClosed(connection_id(), QUIC_NO_ERROR);
|
| }
|
| +
|
| private:
|
| QuicDispatcher* dispatcher_;
|
| };
|
|
|
| -QuicSession* CreateSession(QuicDispatcher* dispatcher,
|
| - QuicConnectionId connection_id,
|
| - const IPEndPoint& client_address,
|
| - MockSession** session) {
|
| +QuicServerSession* CreateSession(QuicDispatcher* dispatcher,
|
| + const QuicConfig& config,
|
| + QuicConnectionId connection_id,
|
| + const IPEndPoint& client_address,
|
| + TestServerSession** session) {
|
| MockServerConnection* connection =
|
| new MockServerConnection(connection_id, dispatcher);
|
| - *session = new MockSession(connection);
|
| + *session = new TestServerSession(config, connection);
|
| + connection->set_visitor(*session);
|
| ON_CALL(*connection, SendConnectionClose(_)).WillByDefault(
|
| WithoutArgs(Invoke(
|
| connection, &MockServerConnection::UnregisterOnConnectionClosed)));
|
| @@ -162,8 +179,8 @@ class QuicDispatcherTest : public ::testing::Test {
|
| IPEndPoint server_address_;
|
| TestDispatcher dispatcher_;
|
| MockTimeWaitListManager* time_wait_list_manager_;
|
| - MockSession* session1_;
|
| - MockSession* session2_;
|
| + TestServerSession* session1_;
|
| + TestServerSession* session2_;
|
| string data_;
|
| };
|
|
|
| @@ -174,16 +191,15 @@ TEST_F(QuicDispatcherTest, ProcessPackets) {
|
| server_address_ = IPEndPoint(any4, 5);
|
|
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(1, _, client_address))
|
| - .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, 1, client_address, &session1_)));
|
| + .WillOnce(testing::Return(
|
| + CreateSession(&dispatcher_, config_, 1, client_address, &session1_)));
|
| ProcessPacket(client_address, 1, true, "foo");
|
| EXPECT_EQ(client_address, dispatcher_.current_client_address());
|
| EXPECT_EQ(server_address_, dispatcher_.current_server_address());
|
|
|
| -
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(2, _, client_address))
|
| - .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, 2, client_address, &session2_)));
|
| + .WillOnce(testing::Return(
|
| + CreateSession(&dispatcher_, config_, 2, client_address, &session2_)));
|
| ProcessPacket(client_address, 2, true, "bar");
|
|
|
| EXPECT_CALL(*reinterpret_cast<MockConnection*>(session1_->connection()),
|
| @@ -197,8 +213,8 @@ TEST_F(QuicDispatcherTest, Shutdown) {
|
| IPEndPoint client_address(net::test::Loopback4(), 1);
|
|
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, client_address))
|
| - .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, 1, client_address, &session1_)));
|
| + .WillOnce(testing::Return(
|
| + CreateSession(&dispatcher_, config_, 1, client_address, &session1_)));
|
|
|
| ProcessPacket(client_address, 1, true, "foo");
|
|
|
| @@ -216,7 +232,7 @@ TEST_F(QuicDispatcherTest, TimeWaitListManager) {
|
| QuicConnectionId connection_id = 1;
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(connection_id, _, client_address))
|
| .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, connection_id, client_address, &session1_)));
|
| + &dispatcher_, config_, connection_id, client_address, &session1_)));
|
| ProcessPacket(client_address, connection_id, true, "foo");
|
|
|
| // Close the connection by sending public reset packet.
|
| @@ -244,8 +260,8 @@ TEST_F(QuicDispatcherTest, TimeWaitListManager) {
|
| // wait list manager.
|
| EXPECT_CALL(*time_wait_list_manager_,
|
| ProcessPacket(_, _, connection_id, _, _)).Times(1);
|
| - EXPECT_CALL(*time_wait_list_manager_,
|
| - AddConnectionIdToTimeWait(_, _, _)).Times(0);
|
| + EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
|
| + .Times(0);
|
| ProcessPacket(client_address, connection_id, true, "foo");
|
| }
|
|
|
| @@ -259,8 +275,8 @@ TEST_F(QuicDispatcherTest, StrayPacketToTimeWaitListManager) {
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, _)).Times(0);
|
| EXPECT_CALL(*time_wait_list_manager_,
|
| ProcessPacket(_, _, connection_id, _, _)).Times(1);
|
| - EXPECT_CALL(*time_wait_list_manager_,
|
| - AddConnectionIdToTimeWait(_, _, _)).Times(1);
|
| + EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
|
| + .Times(1);
|
| ProcessPacket(client_address, connection_id, false, "data");
|
| }
|
|
|
| @@ -275,8 +291,8 @@ TEST_F(QuicDispatcherTest, ProcessPacketWithBogusPort) {
|
| // dispatcher_ should drop this packet.
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(1, _, client_address)).Times(0);
|
| EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
|
| - EXPECT_CALL(*time_wait_list_manager_,
|
| - AddConnectionIdToTimeWait(_, _, _)).Times(0);
|
| + EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
|
| + .Times(0);
|
| ProcessPacket(client_address, 1, true, "foo");
|
| EXPECT_EQ(client_address, dispatcher_.current_client_address());
|
| EXPECT_EQ(server_address_, dispatcher_.current_server_address());
|
| @@ -314,13 +330,13 @@ class QuicDispatcherWriteBlockedListTest : public QuicDispatcherTest {
|
| IPEndPoint client_address(net::test::Loopback4(), 1);
|
|
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, client_address))
|
| - .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, 1, client_address, &session1_)));
|
| + .WillOnce(testing::Return(CreateSession(&dispatcher_, config_, 1,
|
| + client_address, &session1_)));
|
| ProcessPacket(client_address, 1, true, "foo");
|
|
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, client_address))
|
| - .WillOnce(testing::Return(CreateSession(
|
| - &dispatcher_, 2, client_address, &session2_)));
|
| + .WillOnce(testing::Return(CreateSession(&dispatcher_, config_, 2,
|
| + client_address, &session2_)));
|
| ProcessPacket(client_address, 2, true, "bar");
|
|
|
| blocked_list_ = QuicDispatcherPeer::GetWriteBlockedList(&dispatcher_);
|
|
|