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/jingle_session.h" | 5 #include "remoting/protocol/jingle_session.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 using testing::_; | 37 using testing::_; |
38 using testing::AtLeast; | 38 using testing::AtLeast; |
39 using testing::AtMost; | 39 using testing::AtMost; |
40 using testing::DeleteArg; | 40 using testing::DeleteArg; |
41 using testing::DoAll; | 41 using testing::DoAll; |
42 using testing::InSequence; | 42 using testing::InSequence; |
43 using testing::Invoke; | 43 using testing::Invoke; |
44 using testing::InvokeWithoutArgs; | 44 using testing::InvokeWithoutArgs; |
45 using testing::Return; | 45 using testing::Return; |
46 using testing::SaveArg; | 46 using testing::SaveArg; |
47 using testing::SetArgumentPointee; | 47 using testing::SetArgPointee; |
48 using testing::WithArg; | 48 using testing::WithArg; |
49 | 49 |
50 namespace remoting { | 50 namespace remoting { |
51 namespace protocol { | 51 namespace protocol { |
52 | 52 |
53 namespace { | 53 namespace { |
54 | 54 |
55 const char kHostJid[] = "Host@gmail.com/123"; | 55 const char kHostJid[] = "Host@gmail.com/123"; |
56 const char kClientJid[] = "Client@gmail.com/321"; | 56 const char kClientJid[] = "Client@gmail.com/321"; |
57 | 57 |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 host_server_.reset(); | 216 host_server_.reset(); |
217 client_server_.reset(); | 217 client_server_.reset(); |
218 host_signal_strategy_.reset(); | 218 host_signal_strategy_.reset(); |
219 client_signal_strategy_.reset(); | 219 client_signal_strategy_.reset(); |
220 } | 220 } |
221 | 221 |
222 void SetHostExpectation(bool expect_fail) { | 222 void SetHostExpectation(bool expect_fail) { |
223 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) | 223 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) |
224 .WillOnce( | 224 .WillOnce( |
225 DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), | 225 DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), |
226 SetArgumentPointee<1>(protocol::SessionManager::ACCEPT))); | 226 SetArgPointee<1>(protocol::SessionManager::ACCEPT))); |
227 | 227 |
228 { | 228 { |
229 InSequence dummy; | 229 InSequence dummy; |
230 | 230 |
231 EXPECT_CALL(host_session_event_handler_, | 231 EXPECT_CALL(host_session_event_handler_, |
232 OnSessionStateChange(Session::ACCEPTED)) | 232 OnSessionStateChange(Session::ACCEPTED)) |
233 .Times(AtMost(1)); | 233 .Times(AtMost(1)); |
234 EXPECT_CALL(host_session_event_handler_, | 234 EXPECT_CALL(host_session_event_handler_, |
235 OnSessionStateChange(Session::AUTHENTICATING)) | 235 OnSessionStateChange(Session::AUTHENTICATING)) |
236 .Times(AtMost(1)); | 236 .Times(AtMost(1)); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 CreateSessionManagers(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); | 350 CreateSessionManagers(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); |
351 } | 351 } |
352 | 352 |
353 // Verify that an incoming session can be rejected, and that the | 353 // Verify that an incoming session can be rejected, and that the |
354 // status of the connection is set to FAILED in this case. | 354 // status of the connection is set to FAILED in this case. |
355 TEST_F(JingleSessionTest, RejectConnection) { | 355 TEST_F(JingleSessionTest, RejectConnection) { |
356 CreateSessionManagers(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); | 356 CreateSessionManagers(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); |
357 | 357 |
358 // Reject incoming session. | 358 // Reject incoming session. |
359 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) | 359 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) |
360 .WillOnce(SetArgumentPointee<1>(protocol::SessionManager::DECLINE)); | 360 .WillOnce(SetArgPointee<1>(protocol::SessionManager::DECLINE)); |
361 | 361 |
362 { | 362 { |
363 InSequence dummy; | 363 InSequence dummy; |
364 EXPECT_CALL(client_session_event_handler_, | 364 EXPECT_CALL(client_session_event_handler_, |
365 OnSessionStateChange(Session::FAILED)) | 365 OnSessionStateChange(Session::FAILED)) |
366 .Times(1); | 366 .Times(1); |
367 } | 367 } |
368 | 368 |
369 ConnectClient(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); | 369 ConnectClient(FakeAuthenticator::Config(FakeAuthenticator::ACCEPT)); |
370 client_session_->SetEventHandler(&client_session_event_handler_); | 370 client_session_->SetEventHandler(&client_session_event_handler_); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 EXPECT_FALSE(host_session_); | 490 EXPECT_FALSE(host_session_); |
491 } | 491 } |
492 | 492 |
493 TEST_F(JingleSessionTest, DeleteSessionOnIncomingConnection) { | 493 TEST_F(JingleSessionTest, DeleteSessionOnIncomingConnection) { |
494 const int kAuthRoundtrips = 3; | 494 const int kAuthRoundtrips = 3; |
495 FakeAuthenticator::Config auth_config(kAuthRoundtrips, | 495 FakeAuthenticator::Config auth_config(kAuthRoundtrips, |
496 FakeAuthenticator::ACCEPT, true); | 496 FakeAuthenticator::ACCEPT, true); |
497 CreateSessionManagers(auth_config); | 497 CreateSessionManagers(auth_config); |
498 | 498 |
499 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) | 499 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) |
500 .WillOnce(DoAll( | 500 .WillOnce( |
501 WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), | 501 DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), |
502 SetArgumentPointee<1>(protocol::SessionManager::ACCEPT))); | 502 SetArgPointee<1>(protocol::SessionManager::ACCEPT))); |
503 | 503 |
504 EXPECT_CALL(host_session_event_handler_, | 504 EXPECT_CALL(host_session_event_handler_, |
505 OnSessionStateChange(Session::ACCEPTED)) | 505 OnSessionStateChange(Session::ACCEPTED)) |
506 .Times(AtMost(1)); | 506 .Times(AtMost(1)); |
507 | 507 |
508 EXPECT_CALL(host_session_event_handler_, | 508 EXPECT_CALL(host_session_event_handler_, |
509 OnSessionStateChange(Session::AUTHENTICATING)) | 509 OnSessionStateChange(Session::AUTHENTICATING)) |
510 .WillOnce(InvokeWithoutArgs(this, &JingleSessionTest::DeleteHostSession)); | 510 .WillOnce(InvokeWithoutArgs(this, &JingleSessionTest::DeleteHostSession)); |
511 | 511 |
512 ConnectClient(auth_config); | 512 ConnectClient(auth_config); |
513 } | 513 } |
514 | 514 |
515 TEST_F(JingleSessionTest, DeleteSessionOnAuth) { | 515 TEST_F(JingleSessionTest, DeleteSessionOnAuth) { |
516 // Same as the previous test, but set messages_till_started to 2 in | 516 // Same as the previous test, but set messages_till_started to 2 in |
517 // CreateSessionManagers so that the session will goes into the | 517 // CreateSessionManagers so that the session will goes into the |
518 // AUTHENTICATING state after two message exchanges. | 518 // AUTHENTICATING state after two message exchanges. |
519 const int kMessagesTillStarted = 2; | 519 const int kMessagesTillStarted = 2; |
520 | 520 |
521 const int kAuthRoundtrips = 3; | 521 const int kAuthRoundtrips = 3; |
522 FakeAuthenticator::Config auth_config(kAuthRoundtrips, | 522 FakeAuthenticator::Config auth_config(kAuthRoundtrips, |
523 FakeAuthenticator::ACCEPT, true); | 523 FakeAuthenticator::ACCEPT, true); |
524 CreateSessionManagers(auth_config, kMessagesTillStarted); | 524 CreateSessionManagers(auth_config, kMessagesTillStarted); |
525 | 525 |
526 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) | 526 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) |
527 .WillOnce( | 527 .WillOnce( |
528 DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), | 528 DoAll(WithArg<0>(Invoke(this, &JingleSessionTest::SetHostSession)), |
529 SetArgumentPointee<1>(protocol::SessionManager::ACCEPT))); | 529 SetArgPointee<1>(protocol::SessionManager::ACCEPT))); |
530 | 530 |
531 EXPECT_CALL(host_session_event_handler_, | 531 EXPECT_CALL(host_session_event_handler_, |
532 OnSessionStateChange(Session::ACCEPTED)) | 532 OnSessionStateChange(Session::ACCEPTED)) |
533 .Times(AtMost(1)); | 533 .Times(AtMost(1)); |
534 | 534 |
535 EXPECT_CALL(host_session_event_handler_, | 535 EXPECT_CALL(host_session_event_handler_, |
536 OnSessionStateChange(Session::AUTHENTICATING)) | 536 OnSessionStateChange(Session::AUTHENTICATING)) |
537 .WillOnce(InvokeWithoutArgs(this, &JingleSessionTest::DeleteHostSession)); | 537 .WillOnce(InvokeWithoutArgs(this, &JingleSessionTest::DeleteHostSession)); |
538 | 538 |
539 ConnectClient(auth_config); | 539 ConnectClient(auth_config); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 | 629 |
630 client_session_->Close(HOST_OVERLOAD); | 630 client_session_->Close(HOST_OVERLOAD); |
631 base::RunLoop().RunUntilIdle(); | 631 base::RunLoop().RunUntilIdle(); |
632 // We should only send a SESSION_TERMINATE message if the session has been | 632 // We should only send a SESSION_TERMINATE message if the session has been |
633 // closed before SESSION_INITIATE message. | 633 // closed before SESSION_INITIATE message. |
634 ASSERT_EQ(1U, host_signal_strategy_->received_messages().size()); | 634 ASSERT_EQ(1U, host_signal_strategy_->received_messages().size()); |
635 } | 635 } |
636 | 636 |
637 } // namespace protocol | 637 } // namespace protocol |
638 } // namespace remoting | 638 } // namespace remoting |
OLD | NEW |