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

Unified Diff: remoting/host/chromoting_host_unittest.cc

Issue 10915206: [Chromoting] Refactoring DesktopEnvironment and moving screen/audio recorders to ClientSession. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 3 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/chromoting_host.cc ('k') | remoting/host/client_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/chromoting_host_unittest.cc
diff --git a/remoting/host/chromoting_host_unittest.cc b/remoting/host/chromoting_host_unittest.cc
index 3a82f0c23a101bbe497ce35a6a2410b815f11c12..ce1f68e7c1aa59b6422007c69a7ffec9a0273215 100644
--- a/remoting/host/chromoting_host_unittest.cc
+++ b/remoting/host/chromoting_host_unittest.cc
@@ -5,10 +5,14 @@
#include "base/bind.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop_proxy.h"
+#include "remoting/base/auto_thread_task_runner.h"
#include "remoting/jingle_glue/mock_objects.h"
#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,39 +66,63 @@ 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() {
}
virtual void SetUp() OVERRIDE {
- message_loop_proxy_ = base::MessageLoopProxy::current();
+ ui_task_runner_ = new AutoThreadTaskRunner(
+ message_loop_.message_loop_proxy(),
+ base::Bind(&ChromotingHostTest::QuitMainMessageLoop,
+ base::Unretained(this)));
EXPECT_CALL(context_, ui_task_runner())
.Times(AnyNumber())
- .WillRepeatedly(Return(message_loop_proxy_.get()));
+ .WillRepeatedly(Return(ui_task_runner_.get()));
EXPECT_CALL(context_, capture_task_runner())
.Times(AnyNumber())
- .WillRepeatedly(Return(message_loop_proxy_.get()));
+ .WillRepeatedly(Return(ui_task_runner_.get()));
EXPECT_CALL(context_, encode_task_runner())
.Times(AnyNumber())
- .WillRepeatedly(Return(message_loop_proxy_.get()));
+ .WillRepeatedly(Return(ui_task_runner_.get()));
EXPECT_CALL(context_, network_task_runner())
.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());
+ .WillRepeatedly(Return(ui_task_runner_.get()));
+
+ 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_);
@@ -145,11 +173,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(_, _))
@@ -194,12 +222,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);
@@ -265,12 +298,20 @@ class ChromotingHostTest : public testing::Test {
static void AddClientToHost(scoped_refptr<ChromotingHost> host,
ClientSession* session) {
host->clients_.push_back(session);
+ host->clients_count_++;
}
void ShutdownHost() {
- message_loop_.PostTask(
- FROM_HERE, base::Bind(&ChromotingHost::Shutdown, host_,
- base::Bind(&PostQuitTask, &message_loop_)));
+ ui_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&ChromotingHost::Shutdown, host_,
+ base::Bind(&ChromotingHostTest::ReleaseUiTaskRunner,
+ base::Unretained(this))));
+ }
+
+ void ReleaseUiTaskRunner() {
+ it2me_host_user_interface_.reset();
+ ui_task_runner_ = NULL;
}
void QuitMainMessageLoop() {
@@ -304,12 +345,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);
Expectation video_packet_sent =
EXPECT_CALL(video_stub, ProcessVideoPacketPtr(_, _))
- .After(session_started)
+ .After(client_authenticated)
.WillOnce(DoAll(
action,
RunDoneTask()))
@@ -355,24 +393,21 @@ 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();
}
}
protected:
MessageLoop message_loop_;
- scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
+ scoped_refptr<AutoThreadTaskRunner> ui_task_runner_;
MockChromotingHostContext context_;
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_;
@@ -433,10 +468,7 @@ TEST_F(ChromotingHostTest, StartAndShutdown) {
EXPECT_CALL(host_status_observer_, OnShutdown()).After(start);
host_->Start(xmpp_login_);
- message_loop_.PostTask(
- FROM_HERE, base::Bind(
- &ChromotingHost::Shutdown, host_.get(),
- base::Bind(&PostQuitTask, &message_loop_)));
+ ShutdownHost();
message_loop_.Run();
}
« no previous file with comments | « remoting/host/chromoting_host.cc ('k') | remoting/host/client_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698