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 "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.h" | 8 #include "base/message_loop.h" |
9 #include "net/base/net_errors.h" | 9 #include "net/base/net_errors.h" |
10 #include "net/socket/socket.h" | 10 #include "net/socket/socket.h" |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 EXPECT_CALL(cb1, OnDone(_)) | 253 EXPECT_CALL(cb1, OnDone(_)) |
254 .Times(0); | 254 .Times(0); |
255 EXPECT_CALL(cb2, OnDone(_)) | 255 EXPECT_CALL(cb2, OnDone(_)) |
256 .Times(0); | 256 .Times(0); |
257 | 257 |
258 EXPECT_EQ(net::ERR_FAILED, host_socket1_->Write(buf, buf->size(), base::Bind( | 258 EXPECT_EQ(net::ERR_FAILED, host_socket1_->Write(buf, buf->size(), base::Bind( |
259 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 259 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
260 EXPECT_EQ(net::ERR_FAILED, host_socket2_->Write(buf, buf->size(), base::Bind( | 260 EXPECT_EQ(net::ERR_FAILED, host_socket2_->Write(buf, buf->size(), base::Bind( |
261 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 261 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
262 | 262 |
263 message_loop_.RunAllPending(); | 263 message_loop_.RunUntilIdle(); |
264 } | 264 } |
265 | 265 |
266 TEST_F(ChannelMultiplexerTest, WriteFailAsync) { | 266 TEST_F(ChannelMultiplexerTest, WriteFailAsync) { |
267 ASSERT_NO_FATAL_FAILURE( | 267 ASSERT_NO_FATAL_FAILURE( |
268 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); | 268 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); |
269 | 269 |
270 ASSERT_NO_FATAL_FAILURE( | 270 ASSERT_NO_FATAL_FAILURE( |
271 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); | 271 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); |
272 | 272 |
273 ConnectSockets(); | 273 ConnectSockets(); |
(...skipping 10 matching lines...) Expand all Loading... |
284 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); | 284 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); |
285 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); | 285 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); |
286 | 286 |
287 EXPECT_EQ(net::ERR_IO_PENDING, | 287 EXPECT_EQ(net::ERR_IO_PENDING, |
288 host_socket1_->Write(buf, buf->size(), base::Bind( | 288 host_socket1_->Write(buf, buf->size(), base::Bind( |
289 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 289 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
290 EXPECT_EQ(net::ERR_IO_PENDING, | 290 EXPECT_EQ(net::ERR_IO_PENDING, |
291 host_socket2_->Write(buf, buf->size(), base::Bind( | 291 host_socket2_->Write(buf, buf->size(), base::Bind( |
292 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 292 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
293 | 293 |
294 message_loop_.RunAllPending(); | 294 message_loop_.RunUntilIdle(); |
295 } | 295 } |
296 | 296 |
297 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) { | 297 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) { |
298 ASSERT_NO_FATAL_FAILURE( | 298 ASSERT_NO_FATAL_FAILURE( |
299 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); | 299 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); |
300 ASSERT_NO_FATAL_FAILURE( | 300 ASSERT_NO_FATAL_FAILURE( |
301 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); | 301 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); |
302 | 302 |
303 ConnectSockets(); | 303 ConnectSockets(); |
304 | 304 |
(...skipping 14 matching lines...) Expand all Loading... |
319 .Times(AtMost(1)) | 319 .Times(AtMost(1)) |
320 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); | 320 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); |
321 | 321 |
322 EXPECT_EQ(net::ERR_IO_PENDING, | 322 EXPECT_EQ(net::ERR_IO_PENDING, |
323 host_socket1_->Write(buf, buf->size(), base::Bind( | 323 host_socket1_->Write(buf, buf->size(), base::Bind( |
324 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 324 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
325 EXPECT_EQ(net::ERR_IO_PENDING, | 325 EXPECT_EQ(net::ERR_IO_PENDING, |
326 host_socket2_->Write(buf, buf->size(), base::Bind( | 326 host_socket2_->Write(buf, buf->size(), base::Bind( |
327 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 327 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
328 | 328 |
329 message_loop_.RunAllPending(); | 329 message_loop_.RunUntilIdle(); |
330 | 330 |
331 // Check that the sockets were destroyed. | 331 // Check that the sockets were destroyed. |
332 EXPECT_FALSE(host_mux_.get()); | 332 EXPECT_FALSE(host_mux_.get()); |
333 } | 333 } |
334 | 334 |
335 TEST_F(ChannelMultiplexerTest, SessionFail) { | 335 TEST_F(ChannelMultiplexerTest, SessionFail) { |
336 host_session_.set_async_creation(true); | 336 host_session_.set_async_creation(true); |
337 host_session_.set_error(AUTHENTICATION_FAILED); | 337 host_session_.set_error(AUTHENTICATION_FAILED); |
338 | 338 |
339 MockConnectCallback cb1; | 339 MockConnectCallback cb1; |
340 MockConnectCallback cb2; | 340 MockConnectCallback cb2; |
341 | 341 |
342 host_mux_->CreateStreamChannel(kTestChannelName, base::Bind( | 342 host_mux_->CreateStreamChannel(kTestChannelName, base::Bind( |
343 &MockConnectCallback::OnConnected, base::Unretained(&cb1))); | 343 &MockConnectCallback::OnConnected, base::Unretained(&cb1))); |
344 host_mux_->CreateStreamChannel(kTestChannelName2, base::Bind( | 344 host_mux_->CreateStreamChannel(kTestChannelName2, base::Bind( |
345 &MockConnectCallback::OnConnected, base::Unretained(&cb2))); | 345 &MockConnectCallback::OnConnected, base::Unretained(&cb2))); |
346 | 346 |
347 EXPECT_CALL(cb1, OnConnectedPtr(NULL)) | 347 EXPECT_CALL(cb1, OnConnectedPtr(NULL)) |
348 .Times(AtMost(1)) | 348 .Times(AtMost(1)) |
349 .WillOnce(InvokeWithoutArgs( | 349 .WillOnce(InvokeWithoutArgs( |
350 this, &ChannelMultiplexerTest::DeleteAfterSessionFail)); | 350 this, &ChannelMultiplexerTest::DeleteAfterSessionFail)); |
351 EXPECT_CALL(cb2, OnConnectedPtr(_)) | 351 EXPECT_CALL(cb2, OnConnectedPtr(_)) |
352 .Times(0); | 352 .Times(0); |
353 | 353 |
354 message_loop_.RunAllPending(); | 354 message_loop_.RunUntilIdle(); |
355 } | 355 } |
356 | 356 |
357 } // namespace protocol | 357 } // namespace protocol |
358 } // namespace remoting | 358 } // namespace remoting |
OLD | NEW |