| Index: remoting/host/chromoting_host_unittest.cc
|
| diff --git a/remoting/host/chromoting_host_unittest.cc b/remoting/host/chromoting_host_unittest.cc
|
| index cd54719c64f248ceefab6cae9a29ee33a16c9941..71594f68252178379002dd5d72c699cc0cdd237b 100644
|
| --- a/remoting/host/chromoting_host_unittest.cc
|
| +++ b/remoting/host/chromoting_host_unittest.cc
|
| @@ -14,6 +14,7 @@
|
| #include "remoting/host/host_mock_objects.h"
|
| #include "remoting/proto/video.pb.h"
|
| #include "remoting/protocol/errors.h"
|
| +#include "remoting/protocol/fake_connection_to_client.h"
|
| #include "remoting/protocol/fake_desktop_capturer.h"
|
| #include "remoting/protocol/protocol_mock_objects.h"
|
| #include "remoting/protocol/session_config.h"
|
| @@ -23,7 +24,6 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using ::remoting::protocol::MockClientStub;
|
| -using ::remoting::protocol::MockConnectionToClient;
|
| using ::remoting::protocol::MockConnectionToClientEventHandler;
|
| using ::remoting::protocol::MockHostStub;
|
| using ::remoting::protocol::MockSession;
|
| @@ -130,32 +130,23 @@ class ChromotingHostTest : public testing::Test {
|
| .WillRepeatedly(ReturnRef(*session_config2_));
|
|
|
| owned_connection1_.reset(
|
| - new MockConnectionToClient(make_scoped_ptr(session1_), &host_stub1_));
|
| + new protocol::FakeConnectionToClient(make_scoped_ptr(session1_)));
|
| + owned_connection1_->set_host_stub(&host_stub1_);
|
| connection1_ = owned_connection1_.get();
|
| + connection1_->set_video_stub(&video_stub1_);
|
| + connection1_->set_client_stub(&client_stub1_);
|
| +
|
| owned_connection2_.reset(
|
| - new MockConnectionToClient(make_scoped_ptr(session2_), &host_stub2_));
|
| + new protocol::FakeConnectionToClient(make_scoped_ptr(session2_)));
|
| + owned_connection2_->set_host_stub(&host_stub2_);
|
| connection2_ = owned_connection2_.get();
|
| + connection2_->set_video_stub(&video_stub2_);
|
| + connection2_->set_client_stub(&client_stub2_);
|
|
|
| ON_CALL(video_stub1_, ProcessVideoPacketPtr(_, _))
|
| .WillByDefault(DeleteArg<0>());
|
| ON_CALL(video_stub2_, ProcessVideoPacketPtr(_, _))
|
| .WillByDefault(DeleteArg<0>());
|
| - ON_CALL(*connection1_, video_stub())
|
| - .WillByDefault(Return(&video_stub1_));
|
| - ON_CALL(*connection1_, client_stub())
|
| - .WillByDefault(Return(&client_stub1_));
|
| - ON_CALL(*connection2_, video_stub())
|
| - .WillByDefault(Return(&video_stub2_));
|
| - ON_CALL(*connection2_, client_stub())
|
| - .WillByDefault(Return(&client_stub2_));
|
| - EXPECT_CALL(*connection1_, video_stub())
|
| - .Times(AnyNumber());
|
| - EXPECT_CALL(*connection1_, client_stub())
|
| - .Times(AnyNumber());
|
| - EXPECT_CALL(*connection2_, video_stub())
|
| - .Times(AnyNumber());
|
| - EXPECT_CALL(*connection2_, client_stub())
|
| - .Times(AnyNumber());
|
| }
|
|
|
| // Helper method to pretend a client is connected to ChromotingHost.
|
| @@ -339,46 +330,18 @@ class ChromotingHostTest : public testing::Test {
|
| return video_packet_sent;
|
| }
|
|
|
| - // Return an expectation that a client will disconnect after a given
|
| - // expectation. The given action will be done after the event executor is
|
| - // notified that the session has finished.
|
| + // Expect that a client is disconnected after a given expectation. The given
|
| + // action will be done after the status observer is notified that the session
|
| + // has finished.
|
| template <class A>
|
| Expectation ExpectClientDisconnected(int connection_index,
|
| - bool expect_host_status_change,
|
| Expectation after,
|
| A action) {
|
| - MockConnectionToClient* connection = get_connection(connection_index);
|
| -
|
| - Expectation client_disconnected =
|
| - EXPECT_CALL(*connection, Disconnect(_))
|
| - .After(after)
|
| - .WillOnce(InvokeWithoutArgs(CreateFunctor(
|
| - this, &ChromotingHostTest::NotifyClientSessionClosed,
|
| - connection_index)))
|
| - .RetiresOnSaturation();
|
| - ExpectClientDisconnectEffects(connection_index,
|
| - expect_host_status_change,
|
| - after,
|
| - action);
|
| - return client_disconnected;
|
| - }
|
| -
|
| - // Expect the side-effects of a client disconnection, after a given
|
| - // expectation. The given action will be done after the event executor is
|
| - // notifed that the session has finished.
|
| - template <class A>
|
| - void ExpectClientDisconnectEffects(int connection_index,
|
| - bool expect_host_status_change,
|
| - Expectation after,
|
| - A action) {
|
| - const std::string& session_jid = get_session_jid(connection_index);
|
| -
|
| - if (expect_host_status_change) {
|
| - EXPECT_CALL(host_status_observer_, OnClientDisconnected(session_jid))
|
| - .After(after)
|
| - .WillOnce(action)
|
| - .RetiresOnSaturation();
|
| - }
|
| + return EXPECT_CALL(host_status_observer_,
|
| + OnClientDisconnected(get_session_jid(connection_index)))
|
| + .After(after)
|
| + .WillOnce(action)
|
| + .RetiresOnSaturation();
|
| }
|
|
|
| protected:
|
| @@ -391,8 +354,8 @@ class ChromotingHostTest : public testing::Test {
|
| MockHostStatusObserver host_status_observer_;
|
| protocol::MockSessionManager* session_manager_;
|
| std::string xmpp_login_;
|
| - MockConnectionToClient* connection1_;
|
| - scoped_ptr<MockConnectionToClient> owned_connection1_;
|
| + protocol::FakeConnectionToClient* connection1_;
|
| + scoped_ptr<protocol::FakeConnectionToClient> owned_connection1_;
|
| ClientSession* client1_;
|
| std::string session_jid1_;
|
| MockSession* session1_; // Owned by |connection_|.
|
| @@ -400,8 +363,8 @@ class ChromotingHostTest : public testing::Test {
|
| MockVideoStub video_stub1_;
|
| MockClientStub client_stub1_;
|
| MockHostStub host_stub1_;
|
| - MockConnectionToClient* connection2_;
|
| - scoped_ptr<MockConnectionToClient> owned_connection2_;
|
| + protocol::FakeConnectionToClient* connection2_;
|
| + scoped_ptr<protocol::FakeConnectionToClient> owned_connection2_;
|
| ClientSession* client2_;
|
| std::string session_jid2_;
|
| MockSession* session2_; // Owned by |connection2_|.
|
| @@ -416,7 +379,7 @@ class ChromotingHostTest : public testing::Test {
|
| protocol::Session::EventHandler* session_unowned1_event_handler_;
|
| protocol::Session::EventHandler* session_unowned2_event_handler_;
|
|
|
| - MockConnectionToClient*& get_connection(int connection_index) {
|
| + protocol::FakeConnectionToClient*& get_connection(int connection_index) {
|
| return (connection_index == 0) ? connection1_ : connection2_;
|
| }
|
|
|
| @@ -454,9 +417,7 @@ TEST_F(ChromotingHostTest, Connect) {
|
| // Shut down the host when the first video packet is received.
|
| Expectation video_packet_sent = ExpectClientConnected(
|
| 0, InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| - Expectation client_disconnected = ExpectClientDisconnected(
|
| - 0, true, video_packet_sent, InvokeWithoutArgs(base::DoNothing));
|
| - EXPECT_CALL(host_status_observer_, OnShutdown()).After(client_disconnected);
|
| + EXPECT_CALL(host_status_observer_, OnShutdown()).After(video_packet_sent);
|
|
|
| host_->Start(xmpp_login_);
|
| SimulateClientConnection(0, true, false);
|
| @@ -482,15 +443,15 @@ TEST_F(ChromotingHostTest, Reconnect) {
|
| Expectation video_packet_sent1 = ExpectClientConnected(0, DoAll(
|
| InvokeWithoutArgs(this, &ChromotingHostTest::DisconnectClient1),
|
| InvokeWithoutArgs(this, &ChromotingHostTest::QuitMainMessageLoop)));
|
| - ExpectClientDisconnectEffects(
|
| - 0, true, video_packet_sent1, InvokeWithoutArgs(base::DoNothing));
|
| + ExpectClientDisconnected(
|
| + 0, video_packet_sent1, InvokeWithoutArgs(base::DoNothing));
|
|
|
| // When a video packet is received on the second connection, shut down the
|
| // host.
|
| Expectation video_packet_sent2 = ExpectClientConnected(
|
| 1, InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| Expectation client_disconnected2 = ExpectClientDisconnected(
|
| - 1, true, video_packet_sent2, InvokeWithoutArgs(base::DoNothing));
|
| + 1, video_packet_sent2, InvokeWithoutArgs(base::DoNothing));
|
| EXPECT_CALL(host_status_observer_, OnShutdown()).After(client_disconnected2);
|
|
|
| host_->Start(xmpp_login_);
|
| @@ -512,11 +473,11 @@ TEST_F(ChromotingHostTest, ConnectWhenAnotherClientIsConnected) {
|
| this,
|
| &ChromotingHostTest::SimulateClientConnection, 1, true, false)));
|
| ExpectClientDisconnected(
|
| - 0, true, video_packet_sent1, InvokeWithoutArgs(base::DoNothing));
|
| + 0, video_packet_sent1, InvokeWithoutArgs(base::DoNothing));
|
| Expectation video_packet_sent2 = ExpectClientConnected(
|
| 1, InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| Expectation client_disconnected2 = ExpectClientDisconnected(
|
| - 1, true, video_packet_sent2, InvokeWithoutArgs(base::DoNothing));
|
| + 1, video_packet_sent2, InvokeWithoutArgs(base::DoNothing));
|
| EXPECT_CALL(host_status_observer_, OnShutdown()).After(client_disconnected2);
|
|
|
| host_->Start(xmpp_login_);
|
| @@ -615,15 +576,15 @@ TEST_F(ChromotingHostTest, OnSessionRouteChange) {
|
|
|
| ExpectHostAndSessionManagerStart();
|
| Expectation video_packet_sent = ExpectClientConnected(
|
| - 0, InvokeWithoutArgs(CreateFunctor(
|
| + 0,
|
| + InvokeWithoutArgs(CreateFunctor(
|
| this, &ChromotingHostTest::ChangeSessionRoute, channel_name, route)));
|
| Expectation route_change =
|
| - EXPECT_CALL(host_status_observer_, OnClientRouteChange(
|
| - session_jid1_, channel_name, _))
|
| - .After(video_packet_sent)
|
| - .WillOnce(InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| - ExpectClientDisconnected(0, true, route_change,
|
| - InvokeWithoutArgs(base::DoNothing));
|
| + EXPECT_CALL(host_status_observer_,
|
| + OnClientRouteChange(session_jid1_, channel_name, _))
|
| + .After(video_packet_sent)
|
| + .WillOnce(InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| + ExpectClientDisconnected(0, route_change, InvokeWithoutArgs(base::DoNothing));
|
| EXPECT_CALL(host_status_observer_, OnShutdown());
|
|
|
| host_->Start(xmpp_login_);
|
| @@ -635,7 +596,8 @@ TEST_F(ChromotingHostTest, DisconnectAllClients) {
|
| ExpectHostAndSessionManagerStart();
|
| Expectation video_packet_sent = ExpectClientConnected(
|
| 0, InvokeWithoutArgs(this, &ChromotingHostTest::DisconnectAllClients));
|
| - ExpectClientDisconnected(0, true, video_packet_sent,
|
| + ExpectClientDisconnected(
|
| + 0, video_packet_sent,
|
| InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost));
|
| EXPECT_CALL(host_status_observer_, OnShutdown());
|
|
|
|
|