| Index: remoting/host/client_session_unittest.cc
|
| diff --git a/remoting/host/client_session_unittest.cc b/remoting/host/client_session_unittest.cc
|
| index 050304cff4ba6a2df6c9480dea7957fd2f221d1f..2371535e4d5de20efe6f02443c91f346724af8e1 100644
|
| --- a/remoting/host/client_session_unittest.cc
|
| +++ b/remoting/host/client_session_unittest.cc
|
| @@ -8,7 +8,6 @@
|
| #include "remoting/capturer/video_capturer_mock_objects.h"
|
| #include "remoting/host/audio_capturer.h"
|
| #include "remoting/host/client_session.h"
|
| -#include "remoting/host/desktop_environment.h"
|
| #include "remoting/host/host_mock_objects.h"
|
| #include "remoting/protocol/protocol_mock_objects.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -30,10 +29,11 @@ using testing::Expectation;
|
| using testing::InSequence;
|
| using testing::Return;
|
| using testing::ReturnRef;
|
| +using testing::ReturnPointee;
|
|
|
| class ClientSessionTest : public testing::Test {
|
| public:
|
| - ClientSessionTest() : event_executor_(NULL) {}
|
| + ClientSessionTest() : desktop_environment_(NULL) {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| ui_task_runner_ = new AutoThreadTaskRunner(
|
| @@ -43,7 +43,8 @@ class ClientSessionTest : public testing::Test {
|
|
|
| client_jid_ = "user@domain/rest-of-jid";
|
|
|
| - desktop_environment_factory_.reset(new MockDesktopEnvironmentFactory());
|
| + desktop_environment_factory_.reset(
|
| + new MockDesktopEnvironmentFactory(ui_task_runner_));
|
| EXPECT_CALL(*desktop_environment_factory_, CreatePtr())
|
| .Times(AnyNumber())
|
| .WillRepeatedly(Invoke(this,
|
| @@ -74,9 +75,11 @@ class ClientSessionTest : public testing::Test {
|
| client_session_ = new ClientSession(
|
| &session_event_handler_,
|
| ui_task_runner_, // Audio thread.
|
| + ui_task_runner_, // Input thread.
|
| ui_task_runner_, // Capture thread.
|
| ui_task_runner_, // Encode thread.
|
| ui_task_runner_, // Network thread.
|
| + ui_task_runner_, // UI thread.
|
| connection.PassAs<protocol::ConnectionToClient>(),
|
| desktop_environment_factory_.get(),
|
| base::TimeDelta());
|
| @@ -84,8 +87,10 @@ class ClientSessionTest : public testing::Test {
|
|
|
| virtual void TearDown() OVERRIDE {
|
| // MockClientSessionEventHandler won't trigger Stop, so fake it.
|
| - client_session_->Stop(base::Bind(
|
| - &ClientSessionTest::OnClientStopped, base::Unretained(this)));
|
| + client_session_->Stop();
|
| + client_session_ = NULL;
|
| +
|
| + desktop_environment_factory_.reset();
|
|
|
| // Run message loop before destroying because the session is destroyed
|
| // asynchronously.
|
| @@ -98,19 +103,14 @@ class ClientSessionTest : public testing::Test {
|
|
|
| protected:
|
| DesktopEnvironment* CreateDesktopEnvironment() {
|
| - MockVideoFrameCapturer* capturer = new MockVideoFrameCapturer();
|
| - EXPECT_CALL(*capturer, Start(_));
|
| - EXPECT_CALL(*capturer, Stop());
|
| - EXPECT_CALL(*capturer, InvalidateRegion(_)).Times(AnyNumber());
|
| - EXPECT_CALL(*capturer, CaptureFrame()).Times(AnyNumber());
|
| - EXPECT_CALL(*capturer, size_most_recent())
|
| - .WillRepeatedly(ReturnRef(screen_size_));
|
| -
|
| - EXPECT_TRUE(!event_executor_);
|
| - event_executor_ = new MockEventExecutor();
|
| - return new DesktopEnvironment(scoped_ptr<AudioCapturer>(NULL),
|
| - scoped_ptr<EventExecutor>(event_executor_),
|
| - scoped_ptr<VideoFrameCapturer>(capturer));
|
| + EXPECT_TRUE(!desktop_environment_);
|
| +
|
| + desktop_environment_ = new MockDesktopEnvironment();
|
| + EXPECT_CALL(*desktop_environment_, StartVideoPtr(_, _, _, _, _));
|
| + EXPECT_CALL(*desktop_environment_, GetScreenSize())
|
| + .WillRepeatedly(ReturnPointee(&screen_size_));
|
| +
|
| + return desktop_environment_;
|
| }
|
|
|
| void DisconnectClientSession() {
|
| @@ -124,10 +124,6 @@ class ClientSessionTest : public testing::Test {
|
| message_loop_.PostTask(FROM_HERE, MessageLoop::QuitClosure());
|
| }
|
|
|
| - void OnClientStopped() {
|
| - client_session_ = NULL;
|
| - }
|
| -
|
| // Message loop passed to |client_session_| to perform all functions on.
|
| MessageLoop message_loop_;
|
| scoped_refptr<AutoThreadTaskRunner> ui_task_runner_;
|
| @@ -149,9 +145,7 @@ class ClientSessionTest : public testing::Test {
|
| MockClientStub client_stub_;
|
| MockVideoStub video_stub_;
|
|
|
| - // DesktopEnvironment owns |event_executor_|, but input injection tests need
|
| - // to express expectations on it.
|
| - MockEventExecutor* event_executor_;
|
| + MockDesktopEnvironment* desktop_environment_;
|
|
|
| // ClientSession owns |connection_| but tests need it to inject fake events.
|
| MockConnectionToClient* connection_;
|
| @@ -179,9 +173,9 @@ TEST_F(ClientSessionTest, ClipboardStubFilter) {
|
|
|
| InSequence s;
|
| EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
|
| - EXPECT_CALL(*event_executor_, StartPtr(_));
|
| + EXPECT_CALL(*desktop_environment_, StartInput(_, _, _));
|
| EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));
|
| - EXPECT_CALL(*event_executor_, InjectClipboardEvent(EqualsClipboardEvent(
|
| + EXPECT_CALL(*desktop_environment_, InjectClipboardEvent(EqualsClipboardEvent(
|
| kMimeTypeTextUtf8, "b")));
|
| EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
|
|
| @@ -242,11 +236,12 @@ TEST_F(ClientSessionTest, InputStubFilter) {
|
|
|
| InSequence s;
|
| EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
|
| - EXPECT_CALL(*event_executor_, StartPtr(_));
|
| + EXPECT_CALL(*desktop_environment_, StartInput(_, _, _));
|
| EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| - EXPECT_CALL(*event_executor_, InjectMouseEvent(EqualsMouseEvent(200, 201)));
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| + EXPECT_CALL(*desktop_environment_, InjectMouseEvent(EqualsMouseEvent(
|
| + 200, 201)));
|
| EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
|
|
| // These events should not get through to the input stub,
|
| @@ -279,10 +274,12 @@ TEST_F(ClientSessionTest, LocalInputTest) {
|
|
|
| InSequence s;
|
| EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
|
| - EXPECT_CALL(*event_executor_, StartPtr(_));
|
| + EXPECT_CALL(*desktop_environment_, StartInput(_, _, _));
|
| EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));
|
| - EXPECT_CALL(*event_executor_, InjectMouseEvent(EqualsMouseEvent(100, 101)));
|
| - EXPECT_CALL(*event_executor_, InjectMouseEvent(EqualsMouseEvent(200, 201)));
|
| + EXPECT_CALL(*desktop_environment_, InjectMouseEvent(EqualsMouseEvent(
|
| + 100, 101)));
|
| + EXPECT_CALL(*desktop_environment_, InjectMouseEvent(EqualsMouseEvent(
|
| + 200, 201)));
|
| EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
|
|
| client_session_->OnConnectionAuthenticated(client_session_->connection());
|
| @@ -317,15 +314,15 @@ TEST_F(ClientSessionTest, RestoreEventState) {
|
|
|
| InSequence s;
|
| EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
|
| - EXPECT_CALL(*event_executor_, StartPtr(_));
|
| + EXPECT_CALL(*desktop_environment_, StartInput(_, _, _));
|
| EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(1, true)));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - EXPECT_CALL(*event_executor_, InjectMouseEvent(EqualsMouseButtonEvent(
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(1, true)));
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| + EXPECT_CALL(*desktop_environment_, InjectMouseEvent(EqualsMouseButtonEvent(
|
| protocol::MouseEvent::BUTTON_LEFT, true)));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(1, false)));
|
| - EXPECT_CALL(*event_executor_, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| - EXPECT_CALL(*event_executor_, InjectMouseEvent(EqualsMouseButtonEvent(
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(1, false)));
|
| + EXPECT_CALL(*desktop_environment_, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| + EXPECT_CALL(*desktop_environment_, InjectMouseEvent(EqualsMouseButtonEvent(
|
| protocol::MouseEvent::BUTTON_LEFT, false)));
|
| EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
|
|
| @@ -343,7 +340,7 @@ TEST_F(ClientSessionTest, ClampMouseEvents) {
|
| screen_size_.set(200, 100);
|
|
|
| EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_));
|
| - EXPECT_CALL(*event_executor_, StartPtr(_));
|
| + EXPECT_CALL(*desktop_environment_, StartInput(_, _, _));
|
| Expectation connected =
|
| EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_));
|
| EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
| @@ -362,7 +359,7 @@ TEST_F(ClientSessionTest, ClampMouseEvents) {
|
| event.set_x(input_x[i]);
|
| event.set_y(input_y[j]);
|
| connected =
|
| - EXPECT_CALL(*event_executor_,
|
| + EXPECT_CALL(*desktop_environment_,
|
| InjectMouseEvent(EqualsMouseEvent(expected_x[i],
|
| expected_y[j])))
|
| .After(connected);
|
|
|