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

Side by Side Diff: remoting/host/daemon_process_unittest.cc

Issue 12678008: Reworked the plumbing required to pass the client resolution to the desktop resizer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR feedback. Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/process.h" 9 #include "base/process.h"
10 #include "ipc/ipc_message.h" 10 #include "ipc/ipc_message.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 class MockDaemonProcess : public DaemonProcess { 49 class MockDaemonProcess : public DaemonProcess {
50 public: 50 public:
51 MockDaemonProcess( 51 MockDaemonProcess(
52 scoped_refptr<AutoThreadTaskRunner> caller_task_runner, 52 scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
53 scoped_refptr<AutoThreadTaskRunner> io_task_runner, 53 scoped_refptr<AutoThreadTaskRunner> io_task_runner,
54 const base::Closure& stopped_callback); 54 const base::Closure& stopped_callback);
55 virtual ~MockDaemonProcess(); 55 virtual ~MockDaemonProcess();
56 56
57 virtual scoped_ptr<DesktopSession> DoCreateDesktopSession( 57 virtual scoped_ptr<DesktopSession> DoCreateDesktopSession(
58 int terminal_id, 58 int terminal_id,
59 const DesktopSessionParams& params, 59 const ScreenResolution& resolution,
60 bool virtual_terminal) OVERRIDE; 60 bool virtual_terminal) OVERRIDE;
61 61
62 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 62 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
63 virtual void SendToNetwork(IPC::Message* message) OVERRIDE; 63 virtual void SendToNetwork(IPC::Message* message) OVERRIDE;
64 64
65 MOCK_METHOD1(Received, void(const IPC::Message&)); 65 MOCK_METHOD1(Received, void(const IPC::Message&));
66 MOCK_METHOD1(Sent, void(const IPC::Message&)); 66 MOCK_METHOD1(Sent, void(const IPC::Message&));
67 67
68 MOCK_METHOD3(OnDesktopSessionAgentAttached, 68 MOCK_METHOD3(OnDesktopSessionAgentAttached,
69 bool(int, base::ProcessHandle, IPC::PlatformFileForTransit)); 69 bool(int, base::ProcessHandle, IPC::PlatformFileForTransit));
(...skipping 18 matching lines...) Expand all
88 scoped_refptr<AutoThreadTaskRunner> io_task_runner, 88 scoped_refptr<AutoThreadTaskRunner> io_task_runner,
89 const base::Closure& stopped_callback) 89 const base::Closure& stopped_callback)
90 : DaemonProcess(caller_task_runner, io_task_runner, stopped_callback) { 90 : DaemonProcess(caller_task_runner, io_task_runner, stopped_callback) {
91 } 91 }
92 92
93 MockDaemonProcess::~MockDaemonProcess() { 93 MockDaemonProcess::~MockDaemonProcess() {
94 } 94 }
95 95
96 scoped_ptr<DesktopSession> MockDaemonProcess::DoCreateDesktopSession( 96 scoped_ptr<DesktopSession> MockDaemonProcess::DoCreateDesktopSession(
97 int terminal_id, 97 int terminal_id,
98 const DesktopSessionParams& params, 98 const ScreenResolution& resolution,
99 bool virtual_terminal) { 99 bool virtual_terminal) {
100 return scoped_ptr<DesktopSession>(DoCreateDesktopSessionPtr(terminal_id)); 100 return scoped_ptr<DesktopSession>(DoCreateDesktopSessionPtr(terminal_id));
101 } 101 }
102 102
103 bool MockDaemonProcess::OnMessageReceived(const IPC::Message& message) { 103 bool MockDaemonProcess::OnMessageReceived(const IPC::Message& message) {
104 // Notify the mock method. 104 // Notify the mock method.
105 Received(message); 105 Received(message);
106 106
107 // Call the actual handler. 107 // Call the actual handler.
108 return DaemonProcess::OnMessageReceived(message); 108 return DaemonProcess::OnMessageReceived(message);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 TEST_F(DaemonProcessTest, OpenClose) { 222 TEST_F(DaemonProcessTest, OpenClose) {
223 InSequence s; 223 InSequence s;
224 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration))); 224 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration)));
225 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal))); 225 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal)));
226 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal))); 226 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal)));
227 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected))); 227 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected)));
228 228
229 StartDaemonProcess(); 229 StartDaemonProcess();
230 230
231 int id = terminal_id_++; 231 int id = terminal_id_++;
232 DesktopSessionParams params; 232 ScreenResolution resolution;
233 233
234 EXPECT_TRUE(daemon_process_->OnMessageReceived( 234 EXPECT_TRUE(daemon_process_->OnMessageReceived(
235 ChromotingNetworkHostMsg_ConnectTerminal(id, params, false))); 235 ChromotingNetworkHostMsg_ConnectTerminal(id, resolution, false)));
236 EXPECT_EQ(1u, desktop_sessions().size()); 236 EXPECT_EQ(1u, desktop_sessions().size());
237 EXPECT_EQ(id, desktop_sessions().front()->id()); 237 EXPECT_EQ(id, desktop_sessions().front()->id());
238 238
239 EXPECT_TRUE(daemon_process_->OnMessageReceived( 239 EXPECT_TRUE(daemon_process_->OnMessageReceived(
240 ChromotingNetworkHostMsg_DisconnectTerminal(id))); 240 ChromotingNetworkHostMsg_DisconnectTerminal(id)));
241 EXPECT_TRUE(desktop_sessions().empty()); 241 EXPECT_TRUE(desktop_sessions().empty());
242 } 242 }
243 243
244 TEST_F(DaemonProcessTest, CallCloseDesktopSession) { 244 TEST_F(DaemonProcessTest, CallCloseDesktopSession) {
245 InSequence s; 245 InSequence s;
246 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration))); 246 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration)));
247 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal))); 247 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal)));
248 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected))); 248 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected)));
249 249
250 StartDaemonProcess(); 250 StartDaemonProcess();
251 251
252 int id = terminal_id_++; 252 int id = terminal_id_++;
253 DesktopSessionParams params; 253 ScreenResolution resolution;
254 254
255 EXPECT_TRUE(daemon_process_->OnMessageReceived( 255 EXPECT_TRUE(daemon_process_->OnMessageReceived(
256 ChromotingNetworkHostMsg_ConnectTerminal(id, params, false))); 256 ChromotingNetworkHostMsg_ConnectTerminal(id, resolution, false)));
257 EXPECT_EQ(1u, desktop_sessions().size()); 257 EXPECT_EQ(1u, desktop_sessions().size());
258 EXPECT_EQ(id, desktop_sessions().front()->id()); 258 EXPECT_EQ(id, desktop_sessions().front()->id());
259 259
260 daemon_process_->CloseDesktopSession(id); 260 daemon_process_->CloseDesktopSession(id);
261 EXPECT_TRUE(desktop_sessions().empty()); 261 EXPECT_TRUE(desktop_sessions().empty());
262 } 262 }
263 263
264 // Sends two CloseDesktopSession messages and expects the second one to be 264 // Sends two CloseDesktopSession messages and expects the second one to be
265 // ignored. 265 // ignored.
266 TEST_F(DaemonProcessTest, DoubleDisconnectTerminal) { 266 TEST_F(DaemonProcessTest, DoubleDisconnectTerminal) {
267 InSequence s; 267 InSequence s;
268 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration))); 268 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration)));
269 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal))); 269 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal)));
270 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal))); 270 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal)));
271 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected))); 271 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageTerminalDisconnected)));
272 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal))); 272 EXPECT_CALL(*daemon_process_, Received(Message(kMessageDisconnectTerminal)));
273 273
274 StartDaemonProcess(); 274 StartDaemonProcess();
275 275
276 int id = terminal_id_++; 276 int id = terminal_id_++;
277 DesktopSessionParams params; 277 ScreenResolution resolution;
278 278
279 EXPECT_TRUE(daemon_process_->OnMessageReceived( 279 EXPECT_TRUE(daemon_process_->OnMessageReceived(
280 ChromotingNetworkHostMsg_ConnectTerminal(id, params, false))); 280 ChromotingNetworkHostMsg_ConnectTerminal(id, resolution, false)));
281 EXPECT_EQ(1u, desktop_sessions().size()); 281 EXPECT_EQ(1u, desktop_sessions().size());
282 EXPECT_EQ(id, desktop_sessions().front()->id()); 282 EXPECT_EQ(id, desktop_sessions().front()->id());
283 283
284 EXPECT_TRUE(daemon_process_->OnMessageReceived( 284 EXPECT_TRUE(daemon_process_->OnMessageReceived(
285 ChromotingNetworkHostMsg_DisconnectTerminal(id))); 285 ChromotingNetworkHostMsg_DisconnectTerminal(id)));
286 EXPECT_TRUE(desktop_sessions().empty()); 286 EXPECT_TRUE(desktop_sessions().empty());
287 287
288 EXPECT_TRUE(daemon_process_->OnMessageReceived( 288 EXPECT_TRUE(daemon_process_->OnMessageReceived(
289 ChromotingNetworkHostMsg_DisconnectTerminal(id))); 289 ChromotingNetworkHostMsg_DisconnectTerminal(id)));
290 EXPECT_TRUE(desktop_sessions().empty()); 290 EXPECT_TRUE(desktop_sessions().empty());
(...skipping 28 matching lines...) Expand all
319 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal))); 319 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal)));
320 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal))); 320 EXPECT_CALL(*daemon_process_, Received(Message(kMessageConnectTerminal)));
321 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageCrash))) 321 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageCrash)))
322 .WillOnce(InvokeWithoutArgs(this, 322 .WillOnce(InvokeWithoutArgs(this,
323 &DaemonProcessTest::LaunchNetworkProcess)); 323 &DaemonProcessTest::LaunchNetworkProcess));
324 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration))); 324 EXPECT_CALL(*daemon_process_, Sent(Message(kMessageConfiguration)));
325 325
326 StartDaemonProcess(); 326 StartDaemonProcess();
327 327
328 int id = terminal_id_++; 328 int id = terminal_id_++;
329 DesktopSessionParams params; 329 ScreenResolution resolution;
330 330
331 EXPECT_TRUE(daemon_process_->OnMessageReceived( 331 EXPECT_TRUE(daemon_process_->OnMessageReceived(
332 ChromotingNetworkHostMsg_ConnectTerminal(id, params, false))); 332 ChromotingNetworkHostMsg_ConnectTerminal(id, resolution, false)));
333 EXPECT_EQ(1u, desktop_sessions().size()); 333 EXPECT_EQ(1u, desktop_sessions().size());
334 EXPECT_EQ(id, desktop_sessions().front()->id()); 334 EXPECT_EQ(id, desktop_sessions().front()->id());
335 335
336 EXPECT_TRUE(daemon_process_->OnMessageReceived( 336 EXPECT_TRUE(daemon_process_->OnMessageReceived(
337 ChromotingNetworkHostMsg_ConnectTerminal(id, params, false))); 337 ChromotingNetworkHostMsg_ConnectTerminal(id, resolution, false)));
338 EXPECT_TRUE(desktop_sessions().empty()); 338 EXPECT_TRUE(desktop_sessions().empty());
339 EXPECT_EQ(0, terminal_id_); 339 EXPECT_EQ(0, terminal_id_);
340 } 340 }
341 341
342 } // namespace remoting 342 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698