| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/time.h" | 5 #include "base/time.h" |
| 6 #include "base/waitable_event.h" | 6 #include "base/waitable_event.h" |
| 7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "net/base/completion_callback.h" | 8 #include "net/base/completion_callback.h" |
| 9 #include "net/base/io_buffer.h" | 9 #include "net/base/io_buffer.h" |
| 10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 session_manager_pair_ = new SessionManagerPair(&thread_); | 111 session_manager_pair_ = new SessionManagerPair(&thread_); |
| 112 session_manager_pair_->Init(); | 112 session_manager_pair_->Init(); |
| 113 host_server_ = new JingleChromotocolServer(&thread_); | 113 host_server_ = new JingleChromotocolServer(&thread_); |
| 114 host_server_->set_allow_local_ips(true); | 114 host_server_->set_allow_local_ips(true); |
| 115 host_server_->Init(SessionManagerPair::kHostJid, | 115 host_server_->Init(SessionManagerPair::kHostJid, |
| 116 session_manager_pair_->host_session_manager(), | 116 session_manager_pair_->host_session_manager(), |
| 117 NewCallback(&host_server_callback_, | 117 NewCallback(&host_server_callback_, |
| 118 &MockServerCallback::OnIncomingConnection)); | 118 &MockServerCallback::OnIncomingConnection)); |
| 119 client_server_ = new JingleChromotocolServer(&thread_); | 119 client_server_ = new JingleChromotocolServer(&thread_); |
| 120 client_server_->set_allow_local_ips(true); | 120 client_server_->set_allow_local_ips(true); |
| 121 client_server_->Init(SessionManagerPair::kClientJid, | 121 client_server_->Init( |
| 122 session_manager_pair_->client_session_manager(), | 122 SessionManagerPair::kClientJid, |
| 123 NewCallback(&client_server_callback_, | 123 session_manager_pair_->client_session_manager(), |
| 124 &MockServerCallback::OnIncomingConnection))
; | 124 NewCallback(&client_server_callback_, |
| 125 &MockServerCallback::OnIncomingConnection)); |
| 125 } | 126 } |
| 126 | 127 |
| 127 bool InitiateConnection() { | 128 bool InitiateConnection() { |
| 128 EXPECT_CALL(host_server_callback_, OnIncomingConnection(_, _)) | 129 EXPECT_CALL(host_server_callback_, OnIncomingConnection(_, _)) |
| 129 .WillOnce(DoAll( | 130 .WillOnce(DoAll( |
| 130 WithArg<0>(Invoke( | 131 WithArg<0>(Invoke( |
| 131 this, &JingleChromotocolConnectionTest::SetHostConnection)), | 132 this, &JingleChromotocolConnectionTest::SetHostConnection)), |
| 132 SetArgumentPointee<1>(ChromotocolServer::ACCEPT))); | 133 SetArgumentPointee<1>(ChromotocolServer::ACCEPT))); |
| 133 | 134 |
| 134 base::WaitableEvent host_connected_event(false, false); | 135 base::WaitableEvent host_connected_event(false, false); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 protected: | 416 protected: |
| 416 virtual void InitBuffers() { | 417 virtual void InitBuffers() { |
| 417 } | 418 } |
| 418 | 419 |
| 419 virtual void DoWrite() { | 420 virtual void DoWrite() { |
| 420 if (packets_sent_ >= kMessages) { | 421 if (packets_sent_ >= kMessages) { |
| 421 done_event_.Signal(); | 422 done_event_.Signal(); |
| 422 return; | 423 return; |
| 423 } | 424 } |
| 424 | 425 |
| 425 scoped_refptr<net::IOBuffer> packet = new net::IOBuffer(kMessageSize); | 426 scoped_refptr<net::IOBuffer> packet(new net::IOBuffer(kMessageSize)); |
| 426 memset(packet->data(), 123, kMessageSize); | 427 memset(packet->data(), 123, kMessageSize); |
| 427 sent_packets_[packets_sent_] = packet; | 428 sent_packets_[packets_sent_] = packet; |
| 428 // Put index of this packet in the beginning of the packet body. | 429 // Put index of this packet in the beginning of the packet body. |
| 429 memcpy(packet->data(), &packets_sent_, sizeof(packets_sent_)); | 430 memcpy(packet->data(), &packets_sent_, sizeof(packets_sent_)); |
| 430 | 431 |
| 431 int result = socket_1_->Write(packet, kMessageSize, &write_cb_); | 432 int result = socket_1_->Write(packet, kMessageSize, &write_cb_); |
| 432 HandleWriteResult(result); | 433 HandleWriteResult(result); |
| 433 } | 434 } |
| 434 | 435 |
| 435 void OnWritten(int result) { | 436 void OnWritten(int result) { |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 // Verify that we can connect two endpoints. | 545 // Verify that we can connect two endpoints. |
| 545 TEST_F(JingleChromotocolConnectionTest, Connect) { | 546 TEST_F(JingleChromotocolConnectionTest, Connect) { |
| 546 CreateServerPair(); | 547 CreateServerPair(); |
| 547 ASSERT_TRUE(InitiateConnection()); | 548 ASSERT_TRUE(InitiateConnection()); |
| 548 } | 549 } |
| 549 | 550 |
| 550 // Verify that data can be transmitted over the event channel. | 551 // Verify that data can be transmitted over the event channel. |
| 551 TEST_F(JingleChromotocolConnectionTest, TestControlChannel) { | 552 TEST_F(JingleChromotocolConnectionTest, TestControlChannel) { |
| 552 CreateServerPair(); | 553 CreateServerPair(); |
| 553 ASSERT_TRUE(InitiateConnection()); | 554 ASSERT_TRUE(InitiateConnection()); |
| 554 scoped_refptr<TCPChannelTester> tester = | 555 scoped_refptr<TCPChannelTester> tester( |
| 555 new TCPChannelTester(thread_.message_loop(), host_connection_, | 556 new TCPChannelTester(thread_.message_loop(), host_connection_, |
| 556 client_connection_); | 557 client_connection_)); |
| 557 tester->Start(ChannelTesterBase::CONTROL); | 558 tester->Start(ChannelTesterBase::CONTROL); |
| 558 ASSERT_TRUE(tester->WaitFinished()); | 559 ASSERT_TRUE(tester->WaitFinished()); |
| 559 tester->CheckResults(); | 560 tester->CheckResults(); |
| 560 | 561 |
| 561 // Connections must be closed while |tester| still exists. | 562 // Connections must be closed while |tester| still exists. |
| 562 CloseConnections(); | 563 CloseConnections(); |
| 563 } | 564 } |
| 564 | 565 |
| 565 | 566 |
| 566 // Verify that data can be transmitted over the video channel. | 567 // Verify that data can be transmitted over the video channel. |
| 567 TEST_F(JingleChromotocolConnectionTest, TestVideoChannel) { | 568 TEST_F(JingleChromotocolConnectionTest, TestVideoChannel) { |
| 568 CreateServerPair(); | 569 CreateServerPair(); |
| 569 ASSERT_TRUE(InitiateConnection()); | 570 ASSERT_TRUE(InitiateConnection()); |
| 570 scoped_refptr<TCPChannelTester> tester = | 571 scoped_refptr<TCPChannelTester> tester( |
| 571 new TCPChannelTester(thread_.message_loop(), host_connection_, | 572 new TCPChannelTester(thread_.message_loop(), host_connection_, |
| 572 client_connection_); | 573 client_connection_)); |
| 573 tester->Start(ChannelTesterBase::VIDEO); | 574 tester->Start(ChannelTesterBase::VIDEO); |
| 574 ASSERT_TRUE(tester->WaitFinished()); | 575 ASSERT_TRUE(tester->WaitFinished()); |
| 575 tester->CheckResults(); | 576 tester->CheckResults(); |
| 576 | 577 |
| 577 // Connections must be closed while |tester| still exists. | 578 // Connections must be closed while |tester| still exists. |
| 578 CloseConnections(); | 579 CloseConnections(); |
| 579 } | 580 } |
| 580 | 581 |
| 581 // Verify that data can be transmitted over the event channel. | 582 // Verify that data can be transmitted over the event channel. |
| 582 TEST_F(JingleChromotocolConnectionTest, TestEventChannel) { | 583 TEST_F(JingleChromotocolConnectionTest, TestEventChannel) { |
| 583 CreateServerPair(); | 584 CreateServerPair(); |
| 584 ASSERT_TRUE(InitiateConnection()); | 585 ASSERT_TRUE(InitiateConnection()); |
| 585 scoped_refptr<TCPChannelTester> tester = | 586 scoped_refptr<TCPChannelTester> tester( |
| 586 new TCPChannelTester(thread_.message_loop(), host_connection_, | 587 new TCPChannelTester(thread_.message_loop(), host_connection_, |
| 587 client_connection_); | 588 client_connection_)); |
| 588 tester->Start(ChannelTesterBase::EVENT); | 589 tester->Start(ChannelTesterBase::EVENT); |
| 589 ASSERT_TRUE(tester->WaitFinished()); | 590 ASSERT_TRUE(tester->WaitFinished()); |
| 590 tester->CheckResults(); | 591 tester->CheckResults(); |
| 591 | 592 |
| 592 // Connections must be closed while |tester| still exists. | 593 // Connections must be closed while |tester| still exists. |
| 593 CloseConnections(); | 594 CloseConnections(); |
| 594 } | 595 } |
| 595 | 596 |
| 596 // Verify that data can be transmitted over the video RTP channel. | 597 // Verify that data can be transmitted over the video RTP channel. |
| 597 TEST_F(JingleChromotocolConnectionTest, TestVideoRtpChannel) { | 598 TEST_F(JingleChromotocolConnectionTest, TestVideoRtpChannel) { |
| 598 CreateServerPair(); | 599 CreateServerPair(); |
| 599 ASSERT_TRUE(InitiateConnection()); | 600 ASSERT_TRUE(InitiateConnection()); |
| 600 scoped_refptr<UDPChannelTester> tester = | 601 scoped_refptr<UDPChannelTester> tester( |
| 601 new UDPChannelTester(thread_.message_loop(), host_connection_, | 602 new UDPChannelTester(thread_.message_loop(), host_connection_, |
| 602 client_connection_); | 603 client_connection_)); |
| 603 tester->Start(ChannelTesterBase::VIDEO_RTP); | 604 tester->Start(ChannelTesterBase::VIDEO_RTP); |
| 604 ASSERT_TRUE(tester->WaitFinished()); | 605 ASSERT_TRUE(tester->WaitFinished()); |
| 605 tester->CheckResults(); | 606 tester->CheckResults(); |
| 606 | 607 |
| 607 // Connections must be closed while |tester| still exists. | 608 // Connections must be closed while |tester| still exists. |
| 608 CloseConnections(); | 609 CloseConnections(); |
| 609 } | 610 } |
| 610 | 611 |
| 611 } // namespace remoting | 612 } // namespace remoting |
| OLD | NEW |