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

Unified Diff: remoting/protocol/jingle_session_unittest.cc

Issue 7604021: Revert 96089 - Remove video_channel() from Session interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/protobuf_video_reader.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/jingle_session_unittest.cc
===================================================================
--- remoting/protocol/jingle_session_unittest.cc (revision 96105)
+++ remoting/protocol/jingle_session_unittest.cc (working copy)
@@ -13,7 +13,6 @@
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/socket/socket.h"
-#include "net/socket/stream_socket.h"
#include "remoting/protocol/jingle_session.h"
#include "remoting/protocol/jingle_session_manager.h"
#include "remoting/jingle_glue/jingle_thread.h"
@@ -54,7 +53,6 @@
const int kTestDataSize = kMessages * kMessageSize;
const int kUdpWriteDelayMs = 10;
const char kTestToken[] = "a_dummy_token";
-const char kChannelName[] = "test_channel";
const char kHostJid[] = "host1@gmail.com/123";
const char kClientJid[] = "host2@gmail.com/321";
@@ -294,6 +292,14 @@
class ChannelTesterBase : public base::RefCountedThreadSafe<ChannelTesterBase> {
public:
+ enum ChannelType {
+ CONTROL,
+ EVENT,
+ VIDEO,
+ VIDEO_RTP,
+ VIDEO_RTCP,
+ };
+
ChannelTesterBase(Session* host_session,
Session* client_session)
: host_session_(host_session),
@@ -303,9 +309,10 @@
virtual ~ChannelTesterBase() { }
- void Start() {
+ void Start(ChannelType channel) {
MessageLoop::current()->PostTask(
- FROM_HERE, NewRunnableMethod(this, &ChannelTesterBase::DoStart));
+ FROM_HERE, NewRunnableMethod(this, &ChannelTesterBase::DoStart,
+ channel));
}
bool WaitFinished() {
@@ -315,12 +322,15 @@
virtual void CheckResults() = 0;
protected:
- void DoStart() {
- InitChannels();
+ void DoStart(ChannelType channel) {
+ socket_1_ = SelectChannel(host_session_, channel);
+ socket_2_ = SelectChannel(client_session_, channel);
+
+ InitBuffers();
+ DoRead();
+ DoWrite();
}
- virtual void InitChannels() = 0;
-
void Done() {
done_ = true;
MessageLoop::current()->PostTask(FROM_HERE, base::Bind(&QuitCurrentThread));
@@ -330,9 +340,29 @@
virtual void DoWrite() = 0;
virtual void DoRead() = 0;
+ net::Socket* SelectChannel(Session* session,
+ ChannelType channel) {
+ switch (channel) {
+ case CONTROL:
+ return session->control_channel();
+ case EVENT:
+ return session->event_channel();
+ case VIDEO:
+ return session->video_channel();
+ case VIDEO_RTP:
+ return session->video_rtp_channel();
+ case VIDEO_RTCP:
+ return session->video_rtcp_channel();
+ default:
+ NOTREACHED();
+ return NULL;
+ }
+ }
+
Session* host_session_;
Session* client_session_;
- scoped_ptr<net::Socket> sockets_[2];
+ net::Socket* socket_1_;
+ net::Socket* socket_2_;
bool done_;
};
@@ -370,36 +400,6 @@
}
protected:
- virtual void InitChannels() OVERRIDE {
- host_session_->CreateStreamChannel(
- kChannelName,
- base::Bind(&TCPChannelTester::OnChannelReady,
- base::Unretained(this), 0));
- client_session_->CreateStreamChannel(
- kChannelName,
- base::Bind(&TCPChannelTester::OnChannelReady,
- base::Unretained(this), 1));
- }
-
- void OnChannelReady(int id, const std::string name,
- net::StreamSocket* socket) {
- ASSERT_TRUE(socket);
- ASSERT_EQ(name, kChannelName);
- if (!socket) {
- Done();
- return;
- }
-
- DCHECK(id >= 0 && id < 2);
- sockets_[id].reset(socket);
-
- if (sockets_[0].get() && sockets_[1].get()) {
- InitBuffers();
- DoRead();
- DoWrite();
- }
- }
-
virtual void InitBuffers() {
output_buffer_ = new net::DrainableIOBuffer(
new net::IOBuffer(test_data_size_), test_data_size_);
@@ -415,7 +415,7 @@
break;
int bytes_to_write = std::min(output_buffer_->BytesRemaining(),
message_size_);
- result = sockets_[0]->Write(output_buffer_, bytes_to_write, &write_cb_);
+ result = socket_1_->Write(output_buffer_, bytes_to_write, &write_cb_);
HandleWriteResult(result);
};
}
@@ -439,7 +439,7 @@
int result = 1;
while (result > 0) {
input_buffer_->SetCapacity(input_buffer_->offset() + message_size_);
- result = sockets_[1]->Read(input_buffer_, message_size_, &read_cb_);
+ result = socket_2_->Read(input_buffer_, message_size_, &read_cb_);
HandleReadResult(result);
};
}
@@ -536,36 +536,6 @@
}
protected:
- virtual void InitChannels() OVERRIDE {
- host_session_->CreateDatagramChannel(
- kChannelName,
- base::Bind(&UDPChannelTester::OnChannelReady,
- base::Unretained(this), 0));
- client_session_->CreateDatagramChannel(
- kChannelName,
- base::Bind(&UDPChannelTester::OnChannelReady,
- base::Unretained(this), 1));
- }
-
- void OnChannelReady(int id, const std::string name, net::Socket* socket) {
- ASSERT_TRUE(socket);
- ASSERT_EQ(name, kChannelName);
- if (!socket) {
- Done();
- return;
- }
-
- DCHECK(id >= 0 && id < 2);
- sockets_[id].reset(socket);
-
- if (sockets_[0].get() && sockets_[1].get()) {
- InitBuffers();
- DoRead();
- DoWrite();
- }
- }
-
-
virtual void InitBuffers() {
}
@@ -581,7 +551,7 @@
// Put index of this packet in the beginning of the packet body.
memcpy(packet->data(), &packets_sent_, sizeof(packets_sent_));
- int result = sockets_[0]->Write(packet, kMessageSize, &write_cb_);
+ int result = socket_1_->Write(packet, kMessageSize, &write_cb_);
HandleWriteResult(result);
}
@@ -609,7 +579,7 @@
int kReadSize = kMessageSize * 2;
read_buffer_ = new net::IOBuffer(kReadSize);
- result = sockets_[1]->Read(read_buffer_, kReadSize, &read_cb_);
+ result = socket_2_->Read(read_buffer_, kReadSize, &read_cb_);
HandleReadResult(result);
};
}
@@ -708,13 +678,13 @@
}
// Verify that data can be transmitted over the event channel.
-TEST_F(JingleSessionTest, TestTcpChannel) {
+TEST_F(JingleSessionTest, TestControlChannel) {
CreateServerPair();
ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
scoped_refptr<TCPChannelTester> tester(
new TCPChannelTester(host_session_.get(), client_session_.get(),
kMessageSize, kMessages));
- tester->Start();
+ tester->Start(ChannelTesterBase::CONTROL);
ASSERT_TRUE(tester->WaitFinished());
tester->CheckResults();
@@ -722,13 +692,44 @@
CloseSessions();
}
+// Verify that data can be transmitted over the video channel.
+TEST_F(JingleSessionTest, TestVideoChannel) {
+ CreateServerPair();
+ ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
+ scoped_refptr<TCPChannelTester> tester(
+ new TCPChannelTester(host_session_.get(), client_session_.get(),
+ kMessageSize, kMessageSize));
+ tester->Start(ChannelTesterBase::VIDEO);
+ ASSERT_TRUE(tester->WaitFinished());
+ tester->CheckResults();
+
+ // Connections must be closed while |tester| still exists.
+ CloseSessions();
+}
+
+// Verify that data can be transmitted over the event channel.
+TEST_F(JingleSessionTest, TestEventChannel) {
+ CreateServerPair();
+ ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
+ scoped_refptr<TCPChannelTester> tester(
+ new TCPChannelTester(host_session_.get(), client_session_.get(),
+ kMessageSize, kMessageSize));
+ tester->Start(ChannelTesterBase::EVENT);
+ ASSERT_TRUE(tester->WaitFinished());
+ tester->CheckResults();
+
+ // Connections must be closed while |tester| still exists.
+ CloseSessions();
+}
+
// Verify that data can be transmitted over the video RTP channel.
-TEST_F(JingleSessionTest, TestUdpChannel) {
+// Disabled because RTP support is disabled, see crbug.com/91538 .
+TEST_F(JingleSessionTest, DISABLED_TestVideoRtpChannel) {
CreateServerPair();
ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
scoped_refptr<UDPChannelTester> tester(
new UDPChannelTester(host_session_.get(), client_session_.get()));
- tester->Start();
+ tester->Start(ChannelTesterBase::VIDEO_RTP);
ASSERT_TRUE(tester->WaitFinished());
tester->CheckResults();
@@ -745,37 +746,28 @@
tester = new ChannelSpeedTester(host_session_.get(),
client_session_.get(), 512);
- tester->Start();
+ tester->Start(ChannelTesterBase::VIDEO);
ASSERT_TRUE(tester->WaitFinished());
LOG(INFO) << "Time for 512 bytes "
<< tester->GetElapsedTime().InMilliseconds() << " ms.";
- CloseSessions();
- ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
-
tester = new ChannelSpeedTester(host_session_.get(),
client_session_.get(), 1024);
- tester->Start();
+ tester->Start(ChannelTesterBase::VIDEO);
ASSERT_TRUE(tester->WaitFinished());
LOG(INFO) << "Time for 1024 bytes "
<< tester->GetElapsedTime().InMilliseconds() << " ms.";
- CloseSessions();
- ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
-
tester = new ChannelSpeedTester(host_session_.get(),
client_session_.get(), 51200);
- tester->Start();
+ tester->Start(ChannelTesterBase::VIDEO);
ASSERT_TRUE(tester->WaitFinished());
LOG(INFO) << "Time for 50k bytes "
<< tester->GetElapsedTime().InMilliseconds() << " ms.";
- CloseSessions();
- ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
-
tester = new ChannelSpeedTester(host_session_.get(),
client_session_.get(), 512000);
- tester->Start();
+ tester->Start(ChannelTesterBase::VIDEO);
ASSERT_TRUE(tester->WaitFinished());
LOG(INFO) << "Time for 500k bytes "
<< tester->GetElapsedTime().InMilliseconds() << " ms.";
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/protobuf_video_reader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698