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 "remoting/host/desktop_process.h" | 5 #include "remoting/host/desktop_process.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 base::Closure quit_ui_task_runner = base::Bind( | 258 base::Closure quit_ui_task_runner = base::Bind( |
259 base::IgnoreResult(&base::SingleThreadTaskRunner::PostTask), | 259 base::IgnoreResult(&base::SingleThreadTaskRunner::PostTask), |
260 message_loop_.task_runner(), | 260 message_loop_.task_runner(), |
261 FROM_HERE, run_loop.QuitClosure()); | 261 FROM_HERE, run_loop.QuitClosure()); |
262 scoped_refptr<AutoThreadTaskRunner> ui_task_runner = new AutoThreadTaskRunner( | 262 scoped_refptr<AutoThreadTaskRunner> ui_task_runner = new AutoThreadTaskRunner( |
263 message_loop_.task_runner(), quit_ui_task_runner); | 263 message_loop_.task_runner(), quit_ui_task_runner); |
264 | 264 |
265 io_task_runner_ = AutoThread::CreateWithType( | 265 io_task_runner_ = AutoThread::CreateWithType( |
266 "IPC thread", ui_task_runner, base::MessageLoop::TYPE_IO); | 266 "IPC thread", ui_task_runner, base::MessageLoop::TYPE_IO); |
267 | 267 |
268 std::string channel_name = IPC::Channel::GenerateUniqueRandomChannelID(); | 268 mojo::MessagePipe pipe; |
269 daemon_channel_ = IPC::ChannelProxy::Create( | 269 daemon_channel_ = IPC::ChannelProxy::Create( |
270 IPC::ChannelHandle(channel_name), IPC::Channel::MODE_SERVER, | 270 pipe.handle0.release(), IPC::Channel::MODE_SERVER, &daemon_listener_, |
271 &daemon_listener_, io_task_runner_.get()); | 271 io_task_runner_.get()); |
272 | 272 |
273 std::unique_ptr<MockDesktopEnvironmentFactory> desktop_environment_factory( | 273 std::unique_ptr<MockDesktopEnvironmentFactory> desktop_environment_factory( |
274 new MockDesktopEnvironmentFactory()); | 274 new MockDesktopEnvironmentFactory()); |
275 EXPECT_CALL(*desktop_environment_factory, CreatePtr()) | 275 EXPECT_CALL(*desktop_environment_factory, CreatePtr()) |
276 .Times(AnyNumber()) | 276 .Times(AnyNumber()) |
277 .WillRepeatedly(Invoke(this, | 277 .WillRepeatedly(Invoke(this, |
278 &DesktopProcessTest::CreateDesktopEnvironment)); | 278 &DesktopProcessTest::CreateDesktopEnvironment)); |
279 EXPECT_CALL(*desktop_environment_factory, SupportsAudioCapture()) | 279 EXPECT_CALL(*desktop_environment_factory, SupportsAudioCapture()) |
280 .Times(AnyNumber()) | 280 .Times(AnyNumber()) |
281 .WillRepeatedly(Return(false)); | 281 .WillRepeatedly(Return(false)); |
282 | 282 |
283 DesktopProcess desktop_process(ui_task_runner, io_task_runner_, channel_name); | 283 DesktopProcess desktop_process(ui_task_runner, io_task_runner_, |
| 284 io_task_runner_, std::move(pipe.handle1)); |
284 EXPECT_TRUE(desktop_process.Start(std::move(desktop_environment_factory))); | 285 EXPECT_TRUE(desktop_process.Start(std::move(desktop_environment_factory))); |
285 | 286 |
286 ui_task_runner = nullptr; | 287 ui_task_runner = nullptr; |
287 run_loop.Run(); | 288 run_loop.Run(); |
288 } | 289 } |
289 | 290 |
290 void DesktopProcessTest::RunDeathTest() { | 291 void DesktopProcessTest::RunDeathTest() { |
291 InSequence s; | 292 InSequence s; |
292 EXPECT_CALL(daemon_listener_, OnChannelConnected(_)); | 293 EXPECT_CALL(daemon_listener_, OnChannelConnected(_)); |
293 EXPECT_CALL(daemon_listener_, OnDesktopAttached(_)) | 294 EXPECT_CALL(daemon_listener_, OnDesktopAttached(_)) |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 } | 356 } |
356 | 357 |
357 // Run the desktop process and ask it to crash. | 358 // Run the desktop process and ask it to crash. |
358 TEST_F(DesktopProcessTest, DeathTest) { | 359 TEST_F(DesktopProcessTest, DeathTest) { |
359 testing::GTEST_FLAG(death_test_style) = "threadsafe"; | 360 testing::GTEST_FLAG(death_test_style) = "threadsafe"; |
360 | 361 |
361 EXPECT_DEATH(RunDeathTest(), ""); | 362 EXPECT_DEATH(RunDeathTest(), ""); |
362 } | 363 } |
363 | 364 |
364 } // namespace remoting | 365 } // namespace remoting |
OLD | NEW |