Chromium Code Reviews| Index: remoting/host/chromoting_host_unittest.cc |
| diff --git a/remoting/host/chromoting_host_unittest.cc b/remoting/host/chromoting_host_unittest.cc |
| index cf0fbd19a43f9d2b03c112b2378b619ae786fbcb..924795ca3499db5cc2f183b091947ec4723387d9 100644 |
| --- a/remoting/host/chromoting_host_unittest.cc |
| +++ b/remoting/host/chromoting_host_unittest.cc |
| @@ -9,6 +9,9 @@ |
| #include "remoting/host/audio_capturer.h" |
| #include "remoting/host/chromoting_host_context.h" |
| #include "remoting/host/chromoting_host.h" |
| +#include "remoting/host/desktop_environment.h" |
| +#include "remoting/host/desktop_environment_factory.h" |
| +#include "remoting/host/event_executor_fake.h" |
| #include "remoting/host/host_mock_objects.h" |
| #include "remoting/host/it2me_host_user_interface.h" |
| #include "remoting/host/video_frame_capturer_fake.h" |
| @@ -62,6 +65,34 @@ void DoNothing() { |
| } // namespace |
| +class MockDesktopEnvironmentFactory : public DesktopEnvironmentFactory { |
| + public: |
| + MockDesktopEnvironmentFactory(); |
| + virtual ~MockDesktopEnvironmentFactory(); |
| + |
| + virtual scoped_ptr<DesktopEnvironment> Create( |
| + ChromotingHostContext* context) OVERRIDE; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MockDesktopEnvironmentFactory); |
| +}; |
| + |
| +MockDesktopEnvironmentFactory::MockDesktopEnvironmentFactory() { |
| +} |
| + |
| +MockDesktopEnvironmentFactory::~MockDesktopEnvironmentFactory() { |
| +} |
| + |
| +scoped_ptr<DesktopEnvironment> MockDesktopEnvironmentFactory::Create( |
| + ChromotingHostContext* context) { |
| + scoped_ptr<EventExecutor> event_executor(new EventExecutorFake()); |
| + scoped_ptr<VideoFrameCapturer> video_capturer(new VideoFrameCapturerFake()); |
| + return scoped_ptr<DesktopEnvironment>(new DesktopEnvironment( |
| + scoped_ptr<AudioCapturer>(NULL), |
| + event_executor.Pass(), |
| + video_capturer.Pass())); |
| +} |
| + |
| class ChromotingHostTest : public testing::Test { |
| public: |
| ChromotingHostTest() { |
| @@ -83,18 +114,11 @@ class ChromotingHostTest : public testing::Test { |
| .Times(AnyNumber()) |
| .WillRepeatedly(Return(message_loop_proxy_.get())); |
| - scoped_ptr<VideoFrameCapturer> capturer(new VideoFrameCapturerFake()); |
| - scoped_ptr<AudioCapturer> audio_capturer(NULL); |
| - event_executor_ = new MockEventExecutor(); |
| - desktop_environment_ = DesktopEnvironment::CreateFake( |
| - &context_, |
| - capturer.Pass(), |
| - scoped_ptr<EventExecutor>(event_executor_), |
| - audio_capturer.Pass()); |
| + desktop_environment_factory_.reset(new MockDesktopEnvironmentFactory()); |
| session_manager_ = new protocol::MockSessionManager(); |
| host_ = new ChromotingHost( |
| - &context_, &signal_strategy_, desktop_environment_.get(), |
| + &context_, &signal_strategy_, desktop_environment_factory_.get(), |
| scoped_ptr<protocol::SessionManager>(session_manager_)); |
| host_->AddStatusObserver(&host_status_observer_); |
| @@ -144,11 +168,11 @@ class ChromotingHostTest : public testing::Test { |
| EXPECT_CALL(*session2_, config()) |
| .WillRepeatedly(ReturnRef(session_config2_)); |
| - owned_connection1_.reset(new MockConnectionToClient( |
| - session1_, &host_stub1_, desktop_environment_->event_executor())); |
| + owned_connection1_.reset(new MockConnectionToClient(session1_, |
| + &host_stub1_)); |
| connection1_ = owned_connection1_.get(); |
| - owned_connection2_.reset(new MockConnectionToClient( |
| - session2_, &host_stub2_, desktop_environment_->event_executor())); |
| + owned_connection2_.reset(new MockConnectionToClient(session2_, |
| + &host_stub2_)); |
| connection2_ = owned_connection2_.get(); |
| ON_CALL(video_stub1_, ProcessVideoPacketPtr(_, _)) |
| @@ -193,12 +217,17 @@ class ChromotingHostTest : public testing::Test { |
| ((connection_index == 0) ? owned_connection1_ : owned_connection2_). |
| PassAs<protocol::ConnectionToClient>(); |
| protocol::ConnectionToClient* connection_ptr = connection.get(); |
| + scoped_ptr<DesktopEnvironment> desktop_environment = |
| + host_->desktop_environment_factory_->Create(&context_); |
| + connection_ptr->set_input_stub(desktop_environment->event_executor()); |
| + |
| ClientSession* client = new ClientSession( |
| host_.get(), |
| + context_.capture_task_runner(), |
| + context_.encode_task_runner(), |
| + context_.network_task_runner(), |
| connection.Pass(), |
| - desktop_environment_->event_executor(), |
| - desktop_environment_->event_executor(), |
| - desktop_environment_->capturer(), |
| + host_->desktop_environment_factory_->Create(&context_), |
| base::TimeDelta()); |
| connection_ptr->set_host_stub(client); |
| @@ -302,12 +331,9 @@ class ChromotingHostTest : public testing::Test { |
| EXPECT_CALL(host_status_observer_, OnClientAuthenticated(session_jid)); |
| EXPECT_CALL(host_status_observer_, OnClientConnected(session_jid)) |
| .After(client_authenticated); |
| - Expectation session_started = |
| - EXPECT_CALL(*event_executor_, OnSessionStartedPtr(_)) |
| - .After(client_authenticated); |
|
simonmorris
2012/09/04 18:47:21
Is it possible to keep these expectations? Or move
alexeypa (please no reviews)
2012/09/05 22:53:29
It is hard because the event executor is created m
|
| Expectation video_packet_sent = |
| EXPECT_CALL(video_stub, ProcessVideoPacketPtr(_, _)) |
| - .After(session_started) |
| + .After(client_authenticated) |
| .WillOnce(DoAll( |
| action, |
| RunDoneTask())) |
| @@ -353,12 +379,10 @@ class ChromotingHostTest : public testing::Test { |
| A action) { |
| const std::string& session_jid = get_session_jid(connection_index); |
| - EXPECT_CALL(*event_executor_, OnSessionFinished()) |
| - .After(after) |
| - .WillOnce(action); |
| if (expect_host_status_change) { |
| EXPECT_CALL(host_status_observer_, OnClientDisconnected(session_jid)) |
| .After(after) |
| + .WillOnce(action) |
| .RetiresOnSaturation(); |
| } |
| } |
| @@ -368,8 +392,7 @@ class ChromotingHostTest : public testing::Test { |
| scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; |
| MockConnectionToClientEventHandler handler_; |
| MockSignalStrategy signal_strategy_; |
| - MockEventExecutor* event_executor_; |
| - scoped_ptr<DesktopEnvironment> desktop_environment_; |
| + scoped_ptr<DesktopEnvironmentFactory> desktop_environment_factory_; |
| scoped_ptr<It2MeHostUserInterface> it2me_host_user_interface_; |
| scoped_refptr<ChromotingHost> host_; |
| MockHostStatusObserver host_status_observer_; |