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

Side by Side Diff: remoting/protocol/channel_multiplexer_unittest.cc

Issue 1420273002: Add TransportSession interface to prepare for WebRTC-based transport. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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
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 "remoting/protocol/channel_multiplexer.h" 5 #include "remoting/protocol/channel_multiplexer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 66
67 void DeleteAfterSessionFail() { 67 void DeleteAfterSessionFail() {
68 host_mux_->CancelChannelCreation(kTestChannelName2); 68 host_mux_->CancelChannelCreation(kTestChannelName2);
69 DeleteAll(); 69 DeleteAll();
70 } 70 }
71 71
72 protected: 72 protected:
73 void SetUp() override { 73 void SetUp() override {
74 // Create pair of multiplexers and connect them to each other. 74 // Create pair of multiplexers and connect them to each other.
75 host_mux_.reset(new ChannelMultiplexer( 75 host_mux_.reset(new ChannelMultiplexer(
76 host_session_.GetTransportChannelFactory(), kMuxChannelName)); 76 host_session_.GetTransportSession()->GetStreamChannelFactory(),
77 kMuxChannelName));
77 client_mux_.reset(new ChannelMultiplexer( 78 client_mux_.reset(new ChannelMultiplexer(
78 client_session_.GetTransportChannelFactory(), kMuxChannelName)); 79 client_session_.GetTransportSession()->GetStreamChannelFactory(),
80 kMuxChannelName));
79 } 81 }
80 82
81 // Connect sockets to each other. Must be called after we've created at least 83 // Connect sockets to each other. Must be called after we've created at least
82 // one channel with each multiplexer. 84 // one channel with each multiplexer.
83 void ConnectSockets() { 85 void ConnectSockets() {
84 FakeStreamSocket* host_socket = 86 FakeStreamSocket* host_socket =
85 host_session_.fake_channel_factory().GetFakeChannel( 87 host_session_.GetTransportSession()
86 ChannelMultiplexer::kMuxChannelName); 88 ->GetStreamChannelFactory()
89 ->GetFakeChannel(ChannelMultiplexer::kMuxChannelName);
87 FakeStreamSocket* client_socket = 90 FakeStreamSocket* client_socket =
88 client_session_.fake_channel_factory().GetFakeChannel( 91 client_session_.GetTransportSession()
89 ChannelMultiplexer::kMuxChannelName); 92 ->GetStreamChannelFactory()
93 ->GetFakeChannel(ChannelMultiplexer::kMuxChannelName);
90 host_socket->PairWith(client_socket); 94 host_socket->PairWith(client_socket);
91 95
92 // Make writes asynchronous in one direction. 96 // Make writes asynchronous in one direction.
93 host_socket->set_async_write(true); 97 host_socket->set_async_write(true);
94 } 98 }
95 99
96 void CreateChannel(const std::string& name, 100 void CreateChannel(const std::string& name,
97 scoped_ptr<P2PStreamSocket>* host_socket, 101 scoped_ptr<P2PStreamSocket>* host_socket,
98 scoped_ptr<P2PStreamSocket>* client_socket) { 102 scoped_ptr<P2PStreamSocket>* client_socket) {
99 int counter = 2; 103 int counter = 2;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 ASSERT_NO_FATAL_FAILURE( 242 ASSERT_NO_FATAL_FAILURE(
239 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); 243 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_));
240 244
241 scoped_ptr<P2PStreamSocket> host_socket2_; 245 scoped_ptr<P2PStreamSocket> host_socket2_;
242 scoped_ptr<P2PStreamSocket> client_socket2_; 246 scoped_ptr<P2PStreamSocket> client_socket2_;
243 ASSERT_NO_FATAL_FAILURE( 247 ASSERT_NO_FATAL_FAILURE(
244 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); 248 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_));
245 249
246 ConnectSockets(); 250 ConnectSockets();
247 251
248 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 252 FakeStreamSocket* socket = host_session_.GetTransportSession()
249 set_next_write_error(net::ERR_FAILED); 253 ->GetStreamChannelFactory()
250 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 254 ->GetFakeChannel(kMuxChannelName);
251 set_async_write(false); 255 socket->set_next_write_error(net::ERR_FAILED);
256 socket->set_async_write(false);
252 257
253 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); 258 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100);
254 259
255 MockSocketCallback cb1; 260 MockSocketCallback cb1;
256 MockSocketCallback cb2; 261 MockSocketCallback cb2;
257 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); 262 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED));
258 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); 263 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED));
259 264
260 EXPECT_EQ(net::ERR_IO_PENDING, 265 EXPECT_EQ(net::ERR_IO_PENDING,
261 host_socket1_->Write(buf.get(), 266 host_socket1_->Write(buf.get(),
(...skipping 11 matching lines...) Expand all
273 278
274 TEST_F(ChannelMultiplexerTest, WriteFailAsync) { 279 TEST_F(ChannelMultiplexerTest, WriteFailAsync) {
275 ASSERT_NO_FATAL_FAILURE( 280 ASSERT_NO_FATAL_FAILURE(
276 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); 281 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_));
277 282
278 ASSERT_NO_FATAL_FAILURE( 283 ASSERT_NO_FATAL_FAILURE(
279 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); 284 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_));
280 285
281 ConnectSockets(); 286 ConnectSockets();
282 287
283 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 288 FakeStreamSocket* socket = host_session_.GetTransportSession()
284 set_next_write_error(net::ERR_FAILED); 289 ->GetStreamChannelFactory()
285 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 290 ->GetFakeChannel(kMuxChannelName);
286 set_async_write(true); 291 socket->set_next_write_error(net::ERR_FAILED);
292 socket->set_async_write(true);
287 293
288 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); 294 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100);
289 295
290 MockSocketCallback cb1; 296 MockSocketCallback cb1;
291 MockSocketCallback cb2; 297 MockSocketCallback cb2;
292 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); 298 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED));
293 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); 299 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED));
294 300
295 EXPECT_EQ(net::ERR_IO_PENDING, 301 EXPECT_EQ(net::ERR_IO_PENDING,
296 host_socket1_->Write(buf.get(), 302 host_socket1_->Write(buf.get(),
(...skipping 10 matching lines...) Expand all
307 } 313 }
308 314
309 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) { 315 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) {
310 ASSERT_NO_FATAL_FAILURE( 316 ASSERT_NO_FATAL_FAILURE(
311 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); 317 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_));
312 ASSERT_NO_FATAL_FAILURE( 318 ASSERT_NO_FATAL_FAILURE(
313 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); 319 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_));
314 320
315 ConnectSockets(); 321 ConnectSockets();
316 322
317 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 323 FakeStreamSocket* socket = host_session_.GetTransportSession()
318 set_next_write_error(net::ERR_FAILED); 324 ->GetStreamChannelFactory()
319 host_session_.fake_channel_factory().GetFakeChannel(kMuxChannelName)-> 325 ->GetFakeChannel(kMuxChannelName);
320 set_async_write(true); 326 socket->set_next_write_error(net::ERR_FAILED);
327 socket->set_async_write(true);
321 328
322 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); 329 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100);
323 330
324 MockSocketCallback cb1; 331 MockSocketCallback cb1;
325 MockSocketCallback cb2; 332 MockSocketCallback cb2;
326 333
327 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)) 334 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED))
328 .Times(AtMost(1)) 335 .Times(AtMost(1))
329 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); 336 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll));
330 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)) 337 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED))
(...skipping 11 matching lines...) Expand all
342 base::Bind(&MockSocketCallback::OnDone, 349 base::Bind(&MockSocketCallback::OnDone,
343 base::Unretained(&cb2)))); 350 base::Unretained(&cb2))));
344 351
345 base::RunLoop().RunUntilIdle(); 352 base::RunLoop().RunUntilIdle();
346 353
347 // Check that the sockets were destroyed. 354 // Check that the sockets were destroyed.
348 EXPECT_FALSE(host_mux_.get()); 355 EXPECT_FALSE(host_mux_.get());
349 } 356 }
350 357
351 TEST_F(ChannelMultiplexerTest, SessionFail) { 358 TEST_F(ChannelMultiplexerTest, SessionFail) {
352 host_session_.fake_channel_factory().set_asynchronous_create(true); 359 host_session_.GetTransportSession()->GetStreamChannelFactory()
353 host_session_.fake_channel_factory().set_fail_create(true); 360 ->set_asynchronous_create(true);
361 host_session_.GetTransportSession()->GetStreamChannelFactory()
362 ->set_fail_create(true);
354 363
355 MockConnectCallback cb1; 364 MockConnectCallback cb1;
356 MockConnectCallback cb2; 365 MockConnectCallback cb2;
357 366
358 host_mux_->CreateChannel(kTestChannelName, base::Bind( 367 host_mux_->CreateChannel(kTestChannelName, base::Bind(
359 &MockConnectCallback::OnConnected, base::Unretained(&cb1))); 368 &MockConnectCallback::OnConnected, base::Unretained(&cb1)));
360 host_mux_->CreateChannel(kTestChannelName2, base::Bind( 369 host_mux_->CreateChannel(kTestChannelName2, base::Bind(
361 &MockConnectCallback::OnConnected, base::Unretained(&cb2))); 370 &MockConnectCallback::OnConnected, base::Unretained(&cb2)));
362 371
363 EXPECT_CALL(cb1, OnConnectedPtr(nullptr)) 372 EXPECT_CALL(cb1, OnConnectedPtr(nullptr))
364 .Times(AtMost(1)) 373 .Times(AtMost(1))
365 .WillOnce(InvokeWithoutArgs( 374 .WillOnce(InvokeWithoutArgs(
366 this, &ChannelMultiplexerTest::DeleteAfterSessionFail)); 375 this, &ChannelMultiplexerTest::DeleteAfterSessionFail));
367 EXPECT_CALL(cb2, OnConnectedPtr(_)) 376 EXPECT_CALL(cb2, OnConnectedPtr(_))
368 .Times(0); 377 .Times(0);
369 378
370 base::RunLoop().RunUntilIdle(); 379 base::RunLoop().RunUntilIdle();
371 } 380 }
372 381
373 } // namespace protocol 382 } // namespace protocol
374 } // namespace remoting 383 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/channel_dispatcher_base.cc ('k') | remoting/protocol/client_video_dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698