| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/message_loop_proxy.h" | 7 #include "base/message_loop_proxy.h" |
| 8 #include "remoting/base/auto_thread_task_runner.h" | 8 #include "remoting/base/auto_thread_task_runner.h" |
| 9 #include "remoting/jingle_glue/mock_objects.h" | 9 #include "remoting/jingle_glue/mock_objects.h" |
| 10 #include "remoting/host/audio_capturer.h" | 10 #include "remoting/host/audio_capturer.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 void DoNothing() { | 64 void DoNothing() { |
| 65 } | 65 } |
| 66 | 66 |
| 67 } // namespace | 67 } // namespace |
| 68 | 68 |
| 69 class MockDesktopEnvironmentFactory : public DesktopEnvironmentFactory { | 69 class MockDesktopEnvironmentFactory : public DesktopEnvironmentFactory { |
| 70 public: | 70 public: |
| 71 MockDesktopEnvironmentFactory(); | 71 MockDesktopEnvironmentFactory(); |
| 72 virtual ~MockDesktopEnvironmentFactory(); | 72 virtual ~MockDesktopEnvironmentFactory(); |
| 73 | 73 |
| 74 virtual scoped_ptr<DesktopEnvironment> Create( | 74 virtual scoped_ptr<DesktopEnvironment> Create() OVERRIDE; |
| 75 ChromotingHostContext* context) OVERRIDE; | |
| 76 | 75 |
| 77 private: | 76 private: |
| 78 DISALLOW_COPY_AND_ASSIGN(MockDesktopEnvironmentFactory); | 77 DISALLOW_COPY_AND_ASSIGN(MockDesktopEnvironmentFactory); |
| 79 }; | 78 }; |
| 80 | 79 |
| 81 MockDesktopEnvironmentFactory::MockDesktopEnvironmentFactory() { | 80 MockDesktopEnvironmentFactory::MockDesktopEnvironmentFactory() |
| 81 : DesktopEnvironmentFactory(NULL, NULL) { |
| 82 } | 82 } |
| 83 | 83 |
| 84 MockDesktopEnvironmentFactory::~MockDesktopEnvironmentFactory() { | 84 MockDesktopEnvironmentFactory::~MockDesktopEnvironmentFactory() { |
| 85 } | 85 } |
| 86 | 86 |
| 87 scoped_ptr<DesktopEnvironment> MockDesktopEnvironmentFactory::Create( | 87 scoped_ptr<DesktopEnvironment> MockDesktopEnvironmentFactory::Create() { |
| 88 ChromotingHostContext* context) { | |
| 89 scoped_ptr<EventExecutor> event_executor(new EventExecutorFake()); | 88 scoped_ptr<EventExecutor> event_executor(new EventExecutorFake()); |
| 90 scoped_ptr<VideoFrameCapturer> video_capturer(new VideoFrameCapturerFake()); | 89 scoped_ptr<VideoFrameCapturer> video_capturer(new VideoFrameCapturerFake()); |
| 91 return scoped_ptr<DesktopEnvironment>(new DesktopEnvironment( | 90 return scoped_ptr<DesktopEnvironment>(new DesktopEnvironment( |
| 92 scoped_ptr<AudioCapturer>(NULL), | 91 scoped_ptr<AudioCapturer>(NULL), |
| 93 event_executor.Pass(), | 92 event_executor.Pass(), |
| 94 video_capturer.Pass())); | 93 video_capturer.Pass())); |
| 95 } | 94 } |
| 96 | 95 |
| 97 class ChromotingHostTest : public testing::Test { | 96 class ChromotingHostTest : public testing::Test { |
| 98 public: | 97 public: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 115 .Times(AnyNumber()) | 114 .Times(AnyNumber()) |
| 116 .WillRepeatedly(Return(ui_task_runner_.get())); | 115 .WillRepeatedly(Return(ui_task_runner_.get())); |
| 117 EXPECT_CALL(context_, network_task_runner()) | 116 EXPECT_CALL(context_, network_task_runner()) |
| 118 .Times(AnyNumber()) | 117 .Times(AnyNumber()) |
| 119 .WillRepeatedly(Return(ui_task_runner_.get())); | 118 .WillRepeatedly(Return(ui_task_runner_.get())); |
| 120 | 119 |
| 121 desktop_environment_factory_.reset(new MockDesktopEnvironmentFactory()); | 120 desktop_environment_factory_.reset(new MockDesktopEnvironmentFactory()); |
| 122 session_manager_ = new protocol::MockSessionManager(); | 121 session_manager_ = new protocol::MockSessionManager(); |
| 123 | 122 |
| 124 host_ = new ChromotingHost( | 123 host_ = new ChromotingHost( |
| 125 &context_, &signal_strategy_, desktop_environment_factory_.get(), | 124 &signal_strategy_, |
| 126 scoped_ptr<protocol::SessionManager>(session_manager_)); | 125 desktop_environment_factory_.get(), |
| 126 scoped_ptr<protocol::SessionManager>(session_manager_), |
| 127 context_.capture_task_runner(), |
| 128 context_.encode_task_runner(), |
| 129 context_.network_task_runner()); |
| 127 host_->AddStatusObserver(&host_status_observer_); | 130 host_->AddStatusObserver(&host_status_observer_); |
| 128 | 131 |
| 129 disconnect_window_ = new MockDisconnectWindow(); | 132 disconnect_window_ = new MockDisconnectWindow(); |
| 130 continue_window_ = new MockContinueWindow(); | 133 continue_window_ = new MockContinueWindow(); |
| 131 local_input_monitor_ = new MockLocalInputMonitor(); | 134 local_input_monitor_ = new MockLocalInputMonitor(); |
| 132 it2me_host_user_interface_.reset(new It2MeHostUserInterface(&context_)); | 135 it2me_host_user_interface_.reset(new It2MeHostUserInterface(&context_)); |
| 133 it2me_host_user_interface_->StartForTest( | 136 it2me_host_user_interface_->StartForTest( |
| 134 host_, | 137 host_, |
| 135 base::Bind(&ChromotingHost::Shutdown, host_, base::Closure()), | 138 base::Bind(&ChromotingHost::Shutdown, host_, base::Closure()), |
| 136 scoped_ptr<DisconnectWindow>(disconnect_window_), | 139 scoped_ptr<DisconnectWindow>(disconnect_window_), |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 } | 219 } |
| 217 | 220 |
| 218 // Helper method to pretend a client is connected to ChromotingHost. | 221 // Helper method to pretend a client is connected to ChromotingHost. |
| 219 void SimulateClientConnection(int connection_index, bool authenticate, | 222 void SimulateClientConnection(int connection_index, bool authenticate, |
| 220 bool reject) { | 223 bool reject) { |
| 221 scoped_ptr<protocol::ConnectionToClient> connection = | 224 scoped_ptr<protocol::ConnectionToClient> connection = |
| 222 ((connection_index == 0) ? owned_connection1_ : owned_connection2_). | 225 ((connection_index == 0) ? owned_connection1_ : owned_connection2_). |
| 223 PassAs<protocol::ConnectionToClient>(); | 226 PassAs<protocol::ConnectionToClient>(); |
| 224 protocol::ConnectionToClient* connection_ptr = connection.get(); | 227 protocol::ConnectionToClient* connection_ptr = connection.get(); |
| 225 scoped_ptr<DesktopEnvironment> desktop_environment = | 228 scoped_ptr<DesktopEnvironment> desktop_environment = |
| 226 host_->desktop_environment_factory_->Create(&context_); | 229 host_->desktop_environment_factory_->Create(); |
| 227 connection_ptr->set_input_stub(desktop_environment->event_executor()); | 230 connection_ptr->set_input_stub(desktop_environment->event_executor()); |
| 228 | 231 |
| 229 scoped_refptr<ClientSession> client = new ClientSession( | 232 scoped_refptr<ClientSession> client = new ClientSession( |
| 230 host_.get(), | 233 host_.get(), |
| 231 context_.capture_task_runner(), | 234 context_.capture_task_runner(), |
| 232 context_.encode_task_runner(), | 235 context_.encode_task_runner(), |
| 233 context_.network_task_runner(), | 236 context_.network_task_runner(), |
| 234 connection.Pass(), | 237 connection.Pass(), |
| 235 host_->desktop_environment_factory_->Create(&context_), | 238 desktop_environment.Pass(), |
| 236 base::TimeDelta()); | 239 base::TimeDelta()); |
| 237 connection_ptr->set_host_stub(client); | 240 connection_ptr->set_host_stub(client); |
| 238 | 241 |
| 239 context_.network_task_runner()->PostTask( | 242 context_.network_task_runner()->PostTask( |
| 240 FROM_HERE, base::Bind(&ChromotingHostTest::AddClientToHost, | 243 FROM_HERE, base::Bind(&ChromotingHostTest::AddClientToHost, |
| 241 host_, client)); | 244 host_, client)); |
| 242 | 245 |
| 243 if (authenticate) { | 246 if (authenticate) { |
| 244 context_.network_task_runner()->PostTask( | 247 context_.network_task_runner()->PostTask( |
| 245 FROM_HERE, base::Bind(&ClientSession::OnConnectionAuthenticated, | 248 FROM_HERE, base::Bind(&ClientSession::OnConnectionAuthenticated, |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 ExpectClientDisconnected(0, true, video_packet_sent, | 673 ExpectClientDisconnected(0, true, video_packet_sent, |
| 671 InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost)); | 674 InvokeWithoutArgs(this, &ChromotingHostTest::ShutdownHost)); |
| 672 EXPECT_CALL(host_status_observer_, OnShutdown()); | 675 EXPECT_CALL(host_status_observer_, OnShutdown()); |
| 673 | 676 |
| 674 host_->Start(xmpp_login_); | 677 host_->Start(xmpp_login_); |
| 675 SimulateClientConnection(0, true, false); | 678 SimulateClientConnection(0, true, false); |
| 676 message_loop_.Run(); | 679 message_loop_.Run(); |
| 677 } | 680 } |
| 678 | 681 |
| 679 } // namespace remoting | 682 } // namespace remoting |
| OLD | NEW |