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

Unified Diff: remoting/protocol/jingle_session_unittest.cc

Issue 7508044: Remove video_channel() from Session interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 5 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
Index: remoting/protocol/jingle_session_unittest.cc
diff --git a/remoting/protocol/jingle_session_unittest.cc b/remoting/protocol/jingle_session_unittest.cc
index 1d09521f759a6ed78090aee1cd4246aa329f91d2..103d735212bc14d7844ee596c84a1571ae04fbab 100644
--- a/remoting/protocol/jingle_session_unittest.cc
+++ b/remoting/protocol/jingle_session_unittest.cc
@@ -13,6 +13,7 @@
#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"
@@ -53,6 +54,7 @@ const int kMessages = 100;
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";
@@ -292,27 +294,20 @@ class JingleSessionTest : public testing::Test {
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),
client_session_(client_session),
+ socket_1_(NULL),
+ socket_2_(NULL),
done_(false) {
}
virtual ~ChannelTesterBase() { }
- void Start(ChannelType channel) {
+ void Start() {
MessageLoop::current()->PostTask(
- FROM_HERE, NewRunnableMethod(this, &ChannelTesterBase::DoStart,
- channel));
+ FROM_HERE, NewRunnableMethod(this, &ChannelTesterBase::DoStart));
}
bool WaitFinished() {
@@ -322,15 +317,12 @@ class ChannelTesterBase : public base::RefCountedThreadSafe<ChannelTesterBase> {
virtual void CheckResults() = 0;
protected:
- void DoStart(ChannelType channel) {
- socket_1_ = SelectChannel(host_session_, channel);
- socket_2_ = SelectChannel(client_session_, channel);
-
- InitBuffers();
- DoRead();
- DoWrite();
+ void DoStart() {
+ InitChannels();
}
+ virtual void InitChannels() = 0;
+
void Done() {
done_ = true;
MessageLoop::current()->PostTask(FROM_HERE, base::Bind(&QuitCurrentThread));
@@ -340,25 +332,6 @@ class ChannelTesterBase : public base::RefCountedThreadSafe<ChannelTesterBase> {
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_;
net::Socket* socket_1_;
@@ -400,6 +373,46 @@ class TCPChannelTester : public ChannelTesterBase {
}
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;
+ }
+
+ switch (id) {
+ case 0:
+ socket_1_ = socket;
+ break;
+
+ case 1:
+ socket_2_ = socket;
+ break;
+
+ default:
+ NOTREACHED();
+ }
+
+ if (socket_1_ && socket_2_) {
+ InitBuffers();
+ DoRead();
+ DoWrite();
+ }
+ }
+
virtual void InitBuffers() {
output_buffer_ = new net::DrainableIOBuffer(
new net::IOBuffer(test_data_size_), test_data_size_);
@@ -536,6 +549,46 @@ class UDPChannelTester : public ChannelTesterBase {
}
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;
+ }
+
+ switch (id) {
+ case 0:
+ socket_1_ = socket;
Wez 2011/08/04 23:49:52 nit: Simpler to use an array of two sockets, here
Sergey Ulanov 2011/08/09 19:41:10 Done.
+ break;
+
+ case 1:
+ socket_2_ = socket;
+ break;
+
+ default:
+ NOTREACHED();
+ }
+
+ if (socket_1_ && socket_2_) {
+ InitBuffers();
+ DoRead();
+ DoWrite();
+ }
+ }
+
+
virtual void InitBuffers() {
}
@@ -678,43 +731,13 @@ TEST_F(JingleSessionTest, ConnectBadChannelAuth) {
}
// Verify that data can be transmitted over the event channel.
-TEST_F(JingleSessionTest, TestControlChannel) {
+TEST_F(JingleSessionTest, TestTcpChannel) {
CreateServerPair();
ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
scoped_refptr<TCPChannelTester> tester(
new TCPChannelTester(host_session_.get(), client_session_.get(),
kMessageSize, kMessages));
- tester->Start(ChannelTesterBase::CONTROL);
- ASSERT_TRUE(tester->WaitFinished());
- tester->CheckResults();
-
- // Connections must be closed while |tester| still exists.
- 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);
+ tester->Start();
ASSERT_TRUE(tester->WaitFinished());
tester->CheckResults();
@@ -723,13 +746,12 @@ TEST_F(JingleSessionTest, TestEventChannel) {
}
// Verify that data can be transmitted over the video RTP channel.
-// Disabled because RTP support is disabled, see crbug.com/91538 .
-TEST_F(JingleSessionTest, DISABLED_TestVideoRtpChannel) {
+TEST_F(JingleSessionTest, TestUdpChannel) {
CreateServerPair();
ASSERT_TRUE(InitiateConnection(kTestSharedSecret));
scoped_refptr<UDPChannelTester> tester(
new UDPChannelTester(host_session_.get(), client_session_.get()));
- tester->Start(ChannelTesterBase::VIDEO_RTP);
+ tester->Start();
ASSERT_TRUE(tester->WaitFinished());
tester->CheckResults();
@@ -746,28 +768,37 @@ TEST_F(JingleSessionTest, TestSpeed) {
tester = new ChannelSpeedTester(host_session_.get(),
client_session_.get(), 512);
- tester->Start(ChannelTesterBase::VIDEO);
+ tester->Start();
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(ChannelTesterBase::VIDEO);
+ tester->Start();
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(ChannelTesterBase::VIDEO);
+ tester->Start();
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(ChannelTesterBase::VIDEO);
+ tester->Start();
ASSERT_TRUE(tester->WaitFinished());
LOG(INFO) << "Time for 500k bytes "
<< tester->GetElapsedTime().InMilliseconds() << " ms.";

Powered by Google App Engine
This is Rietveld 408576698