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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); | 248 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); |
249 | 249 |
250 MockSocketCallback cb1; | 250 MockSocketCallback cb1; |
251 MockSocketCallback cb2; | 251 MockSocketCallback cb2; |
252 | 252 |
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( |
259 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 259 net::ERR_FAILED, host_socket1_->Write(buf.get(), buf->size(), base::Bind( |
260 EXPECT_EQ(net::ERR_FAILED, host_socket2_->Write(buf, buf->size(), base::Bind( | 260 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
261 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 261 EXPECT_EQ( |
| 262 net::ERR_FAILED, host_socket2_->Write(buf.get(), buf->size(), base::Bind( |
| 263 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
262 | 264 |
263 message_loop_.RunAllPending(); | 265 message_loop_.RunAllPending(); |
264 } | 266 } |
265 | 267 |
266 TEST_F(ChannelMultiplexerTest, WriteFailAsync) { | 268 TEST_F(ChannelMultiplexerTest, WriteFailAsync) { |
267 ASSERT_NO_FATAL_FAILURE( | 269 ASSERT_NO_FATAL_FAILURE( |
268 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); | 270 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); |
269 | 271 |
270 ASSERT_NO_FATAL_FAILURE( | 272 ASSERT_NO_FATAL_FAILURE( |
271 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); | 273 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); |
272 | 274 |
273 ConnectSockets(); | 275 ConnectSockets(); |
274 | 276 |
275 host_session_.GetStreamChannel(kMuxChannelName)-> | 277 host_session_.GetStreamChannel(kMuxChannelName)-> |
276 set_next_write_error(net::ERR_FAILED); | 278 set_next_write_error(net::ERR_FAILED); |
277 host_session_.GetStreamChannel(kMuxChannelName)-> | 279 host_session_.GetStreamChannel(kMuxChannelName)-> |
278 set_async_write(true); | 280 set_async_write(true); |
279 | 281 |
280 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); | 282 scoped_refptr<net::IOBufferWithSize> buf = CreateTestBuffer(100); |
281 | 283 |
282 MockSocketCallback cb1; | 284 MockSocketCallback cb1; |
283 MockSocketCallback cb2; | 285 MockSocketCallback cb2; |
284 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); | 286 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)); |
285 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); | 287 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)); |
286 | 288 |
287 EXPECT_EQ(net::ERR_IO_PENDING, | 289 EXPECT_EQ(net::ERR_IO_PENDING, |
288 host_socket1_->Write(buf, buf->size(), base::Bind( | 290 host_socket1_->Write(buf.get(), buf->size(), base::Bind( |
289 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 291 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
290 EXPECT_EQ(net::ERR_IO_PENDING, | 292 EXPECT_EQ(net::ERR_IO_PENDING, |
291 host_socket2_->Write(buf, buf->size(), base::Bind( | 293 host_socket2_->Write(buf.get(), buf->size(), base::Bind( |
292 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 294 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
293 | 295 |
294 message_loop_.RunAllPending(); | 296 message_loop_.RunAllPending(); |
295 } | 297 } |
296 | 298 |
297 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) { | 299 TEST_F(ChannelMultiplexerTest, DeleteWhenFailed) { |
298 ASSERT_NO_FATAL_FAILURE( | 300 ASSERT_NO_FATAL_FAILURE( |
299 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); | 301 CreateChannel(kTestChannelName, &host_socket1_, &client_socket1_)); |
300 ASSERT_NO_FATAL_FAILURE( | 302 ASSERT_NO_FATAL_FAILURE( |
301 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); | 303 CreateChannel(kTestChannelName2, &host_socket2_, &client_socket2_)); |
(...skipping 11 matching lines...) Expand all Loading... |
313 MockSocketCallback cb2; | 315 MockSocketCallback cb2; |
314 | 316 |
315 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)) | 317 EXPECT_CALL(cb1, OnDone(net::ERR_FAILED)) |
316 .Times(AtMost(1)) | 318 .Times(AtMost(1)) |
317 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); | 319 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); |
318 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)) | 320 EXPECT_CALL(cb2, OnDone(net::ERR_FAILED)) |
319 .Times(AtMost(1)) | 321 .Times(AtMost(1)) |
320 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); | 322 .WillOnce(InvokeWithoutArgs(this, &ChannelMultiplexerTest::DeleteAll)); |
321 | 323 |
322 EXPECT_EQ(net::ERR_IO_PENDING, | 324 EXPECT_EQ(net::ERR_IO_PENDING, |
323 host_socket1_->Write(buf, buf->size(), base::Bind( | 325 host_socket1_->Write(buf.get(), buf->size(), base::Bind( |
324 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); | 326 &MockSocketCallback::OnDone, base::Unretained(&cb1)))); |
325 EXPECT_EQ(net::ERR_IO_PENDING, | 327 EXPECT_EQ(net::ERR_IO_PENDING, |
326 host_socket2_->Write(buf, buf->size(), base::Bind( | 328 host_socket2_->Write(buf.get(), buf->size(), base::Bind( |
327 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); | 329 &MockSocketCallback::OnDone, base::Unretained(&cb2)))); |
328 | 330 |
329 message_loop_.RunAllPending(); | 331 message_loop_.RunAllPending(); |
330 | 332 |
331 // Check that the sockets were destroyed. | 333 // Check that the sockets were destroyed. |
332 EXPECT_FALSE(host_mux_.get()); | 334 EXPECT_FALSE(host_mux_.get()); |
333 } | 335 } |
334 | 336 |
335 TEST_F(ChannelMultiplexerTest, SessionFail) { | 337 TEST_F(ChannelMultiplexerTest, SessionFail) { |
336 host_session_.set_async_creation(true); | 338 host_session_.set_async_creation(true); |
(...skipping 12 matching lines...) Expand all Loading... |
349 .WillOnce(InvokeWithoutArgs( | 351 .WillOnce(InvokeWithoutArgs( |
350 this, &ChannelMultiplexerTest::DeleteAfterSessionFail)); | 352 this, &ChannelMultiplexerTest::DeleteAfterSessionFail)); |
351 EXPECT_CALL(cb2, OnConnectedPtr(_)) | 353 EXPECT_CALL(cb2, OnConnectedPtr(_)) |
352 .Times(0); | 354 .Times(0); |
353 | 355 |
354 message_loop_.RunAllPending(); | 356 message_loop_.RunAllPending(); |
355 } | 357 } |
356 | 358 |
357 } // namespace protocol | 359 } // namespace protocol |
358 } // namespace remoting | 360 } // namespace remoting |
OLD | NEW |