summaryrefslogtreecommitdiffstats
path: root/remoting/host/ipc_desktop_environment_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/host/ipc_desktop_environment_unittest.cc')
-rw-r--r--remoting/host/ipc_desktop_environment_unittest.cc82
1 files changed, 53 insertions, 29 deletions
diff --git a/remoting/host/ipc_desktop_environment_unittest.cc b/remoting/host/ipc_desktop_environment_unittest.cc
index 535b328..72c53d1 100644
--- a/remoting/host/ipc_desktop_environment_unittest.cc
+++ b/remoting/host/ipc_desktop_environment_unittest.cc
@@ -37,6 +37,7 @@ using testing::_;
using testing::AnyNumber;
using testing::AtLeast;
using testing::Return;
+using testing::ReturnRef;
namespace remoting {
@@ -76,6 +77,20 @@ class MockDaemonListener : public IPC::Listener {
DISALLOW_COPY_AND_ASSIGN(MockDaemonListener);
};
+class MockClientSessionControl : public ClientSessionControl {
+ public:
+ MockClientSessionControl() {}
+ virtual ~MockClientSessionControl() {}
+
+ MOCK_CONST_METHOD0(client_jid, const std::string&());
+ MOCK_METHOD0(DisconnectSession, void());
+ MOCK_METHOD1(OnLocalMouseMoved, void(const SkIPoint&));
+ MOCK_METHOD1(SetDisableInputs, void(bool));
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MockClientSessionControl);
+};
+
bool FakeDaemonSender::Send(IPC::Message* message) {
OnMessageReceived(*message);
delete message;
@@ -129,10 +144,6 @@ class IpcDesktopEnvironmentTest : public testing::Test {
// DesktopEnvironment::CreateInputInjector().
InputInjector* CreateInputInjector();
- // Creates a dummy SessionController, to mock
- // DesktopEnvironment::CreateSessionController().
- SessionController* CreateSessionController();
-
// Creates a fake media::ScreenCapturer, to mock
// DesktopEnvironment::CreateVideoCapturer().
media::ScreenCapturer* CreateVideoCapturer();
@@ -167,6 +178,8 @@ class IpcDesktopEnvironmentTest : public testing::Test {
scoped_refptr<AutoThreadTaskRunner> task_runner_;
scoped_refptr<AutoThreadTaskRunner> io_task_runner_;
+ std::string client_jid_;
+
// Clipboard stub that receives clipboard events from the desktop process.
protocol::ClipboardStub* clipboard_stub_;
@@ -200,13 +213,18 @@ class IpcDesktopEnvironmentTest : public testing::Test {
int terminal_id_;
media::MockScreenCapturerDelegate screen_capturer_delegate_;
+
+ MockClientSessionControl client_session_control_;
+ base::WeakPtrFactory<ClientSessionControl> client_session_control_factory_;
};
IpcDesktopEnvironmentTest::IpcDesktopEnvironmentTest()
: message_loop_(MessageLoop::TYPE_UI),
+ client_jid_("user@domain/rest-of-jid"),
clipboard_stub_(NULL),
remote_input_injector_(NULL),
- terminal_id_(-1) {
+ terminal_id_(-1),
+ client_session_control_factory_(&client_session_control_) {
}
IpcDesktopEnvironmentTest::~IpcDesktopEnvironmentTest() {
@@ -245,21 +263,34 @@ void IpcDesktopEnvironmentTest::SetUp() {
.WillRepeatedly(Invoke(this,
&IpcDesktopEnvironmentTest::DisconnectTerminal));
+ EXPECT_CALL(client_session_control_, client_jid())
+ .Times(AnyNumber())
+ .WillRepeatedly(ReturnRef(client_jid_));
+ EXPECT_CALL(client_session_control_, DisconnectSession())
+ .Times(AnyNumber())
+ .WillRepeatedly(Invoke(
+ this, &IpcDesktopEnvironmentTest::DeleteDesktopEnvironment));
+ EXPECT_CALL(client_session_control_, OnLocalMouseMoved(_))
+ .Times(0);
+ EXPECT_CALL(client_session_control_, SetDisableInputs(_))
+ .Times(0);
+
// Create a desktop environment instance.
desktop_environment_factory_.reset(new IpcDesktopEnvironmentFactory(
- task_runner_, io_task_runner_, &daemon_channel_));
+ task_runner_,
+ task_runner_,
+ task_runner_,
+ io_task_runner_,
+ &daemon_channel_));
desktop_environment_ = desktop_environment_factory_->Create(
- "user@domain/rest-of-jid",
- base::Bind(&IpcDesktopEnvironmentTest::OnDisconnectCallback,
- base::Unretained(this)));
+ client_session_control_factory_.GetWeakPtr());
// Create the input injector.
- input_injector_ =
- desktop_environment_->CreateInputInjector(task_runner_, task_runner_);
+ input_injector_ = desktop_environment_->CreateInputInjector();
// Create the screen capturer.
video_capturer_ =
- desktop_environment_->CreateVideoCapturer(task_runner_, task_runner_);
+ desktop_environment_->CreateVideoCapturer();
}
void IpcDesktopEnvironmentTest::ConnectTerminal(
@@ -282,22 +313,18 @@ void IpcDesktopEnvironmentTest::DisconnectTerminal(int terminal_id) {
DesktopEnvironment* IpcDesktopEnvironmentTest::CreateDesktopEnvironment() {
MockDesktopEnvironment* desktop_environment = new MockDesktopEnvironment();
- EXPECT_CALL(*desktop_environment, CreateAudioCapturerPtr(_))
+ EXPECT_CALL(*desktop_environment, CreateAudioCapturerPtr())
.Times(0);
- EXPECT_CALL(*desktop_environment, CreateInputInjectorPtr(_, _))
- .Times(AnyNumber())
- .WillRepeatedly(
- InvokeWithoutArgs(this,
- &IpcDesktopEnvironmentTest::CreateInputInjector));
- EXPECT_CALL(*desktop_environment, CreateSessionControllerPtr())
+ EXPECT_CALL(*desktop_environment, CreateInputInjectorPtr())
.Times(AnyNumber())
- .WillRepeatedly(InvokeWithoutArgs(
- this, &IpcDesktopEnvironmentTest::CreateSessionController));
- EXPECT_CALL(*desktop_environment, CreateVideoCapturerPtr(_, _))
+ .WillRepeatedly(Invoke(
+ this, &IpcDesktopEnvironmentTest::CreateInputInjector));
+ EXPECT_CALL(*desktop_environment, CreateScreenControlsPtr())
+ .Times(AnyNumber());
+ EXPECT_CALL(*desktop_environment, CreateVideoCapturerPtr())
.Times(AnyNumber())
- .WillRepeatedly(
- InvokeWithoutArgs(this,
- &IpcDesktopEnvironmentTest::CreateVideoCapturer));
+ .WillRepeatedly(Invoke(
+ this, &IpcDesktopEnvironmentTest::CreateVideoCapturer));
// Let tests know that the remote desktop environment is created.
message_loop_.PostTask(FROM_HERE, setup_run_loop_->QuitClosure());
@@ -313,10 +340,6 @@ InputInjector* IpcDesktopEnvironmentTest::CreateInputInjector() {
return remote_input_injector_;
}
-SessionController* IpcDesktopEnvironmentTest::CreateSessionController() {
- return new MockSessionController();
-}
-
media::ScreenCapturer* IpcDesktopEnvironmentTest::CreateVideoCapturer() {
return new media::ScreenCapturerFake();
}
@@ -348,6 +371,7 @@ void IpcDesktopEnvironmentTest::CreateDesktopProcess() {
// Create and start the desktop process.
desktop_process_.reset(new DesktopProcess(task_runner_,
+ io_task_runner_,
desktop_channel_name_));
scoped_ptr<MockDesktopEnvironmentFactory> desktop_environment_factory(