Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(780)

Unified Diff: remoting/host/desktop_process_unittest.cc

Issue 12087073: Pass a DesktopEnvironmentFactory when creating DesktopProcess. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased. fixed posix. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/desktop_process_main.cc ('k') | remoting/host/desktop_session_agent.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/desktop_process_unittest.cc
diff --git a/remoting/host/desktop_process_unittest.cc b/remoting/host/desktop_process_unittest.cc
index f9a8f13eb71efeee825cbbf4ab18bfc700298168..94fdb2ea2fd3882f3c4aaf61a296d29eb67f8121 100644
--- a/remoting/host/desktop_process_unittest.cc
+++ b/remoting/host/desktop_process_unittest.cc
@@ -15,11 +15,14 @@
#include "ipc/ipc_channel_proxy.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_message.h"
+#include "media/video/capture/screen/screen_capturer_fake.h"
#include "remoting/base/auto_thread.h"
#include "remoting/base/auto_thread_task_runner.h"
#include "remoting/host/chromoting_messages.h"
#include "remoting/host/desktop_process.h"
#include "remoting/host/host_exit_codes.h"
+#include "remoting/host/host_mock_objects.h"
+#include "remoting/protocol/protocol_mock_objects.h"
#include "testing/gmock_mutant.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -27,6 +30,7 @@
using testing::_;
using testing::AnyNumber;
using testing::InSequence;
+using testing::Return;
namespace remoting {
@@ -98,6 +102,18 @@ class DesktopProcessTest : public testing::Test {
void ConnectNetworkChannel(IPC::PlatformFileForTransit desktop_process);
void OnDesktopAttached(IPC::PlatformFileForTransit desktop_process);
+ // Creates a DesktopEnvironment with a fake media::ScreenCapturer, to mock
+ // DesktopEnvironmentFactory::Create().
+ DesktopEnvironment* CreateDesktopEnvironment();
+
+ // Creates a dummy EventExecutor, to mock
+ // DesktopEnvironment::CreateEventExecutor().
+ EventExecutor* CreateEventExecutor();
+
+ // Creates a fake media::ScreenCapturer, to mock
+ // DesktopEnvironment::CreateVideoCapturer().
+ media::ScreenCapturer* CreateVideoCapturer();
+
// Disconnects the daemon-to-desktop channel causing the desktop process to
// exit.
void DisconnectChannels();
@@ -169,6 +185,31 @@ void DesktopProcessTest::OnDesktopAttached(
#endif // defined(OS_POSIX)
}
+DesktopEnvironment* DesktopProcessTest::CreateDesktopEnvironment() {
+ MockDesktopEnvironment* desktop_environment = new MockDesktopEnvironment();
+ EXPECT_CALL(*desktop_environment, CreateAudioCapturerPtr(_))
+ .Times(0);
+ EXPECT_CALL(*desktop_environment, CreateEventExecutorPtr(_, _))
+ .Times(AnyNumber())
+ .WillRepeatedly(
+ InvokeWithoutArgs(this, &DesktopProcessTest::CreateEventExecutor));
+ EXPECT_CALL(*desktop_environment, CreateVideoCapturerPtr(_, _))
+ .Times(AnyNumber())
+ .WillRepeatedly(
+ InvokeWithoutArgs(this, &DesktopProcessTest::CreateVideoCapturer));
+ return desktop_environment;
+}
+
+EventExecutor* DesktopProcessTest::CreateEventExecutor() {
+ MockEventExecutor* event_executor = new MockEventExecutor();
+ EXPECT_CALL(*event_executor, StartPtr(_));
+ return event_executor;
+}
+
+media::ScreenCapturer* DesktopProcessTest::CreateVideoCapturer() {
+ return new media::ScreenCapturerFake();
+}
+
void DesktopProcessTest::DisconnectChannels() {
daemon_channel_.reset();
network_channel_.reset();
@@ -194,8 +235,19 @@ void DesktopProcessTest::RunDesktopProcess() {
&daemon_listener_,
io_task_runner_));
+ scoped_ptr<MockDesktopEnvironmentFactory> desktop_environment_factory(
+ new MockDesktopEnvironmentFactory());
+ EXPECT_CALL(*desktop_environment_factory, CreatePtr())
+ .Times(AnyNumber())
+ .WillRepeatedly(Invoke(this,
+ &DesktopProcessTest::CreateDesktopEnvironment));
+ EXPECT_CALL(*desktop_environment_factory, SupportsAudioCapture())
+ .Times(AnyNumber())
+ .WillRepeatedly(Return(false));
+
DesktopProcess desktop_process(ui_task_runner, channel_name);
- EXPECT_TRUE(desktop_process.Start());
+ EXPECT_TRUE(desktop_process.Start(
+ desktop_environment_factory.PassAs<DesktopEnvironmentFactory>()));
ui_task_runner = NULL;
run_loop.Run();
« no previous file with comments | « remoting/host/desktop_process_main.cc ('k') | remoting/host/desktop_session_agent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698