summaryrefslogtreecommitdiffstats
path: root/content/renderer/p2p/p2p_transport_impl_unittest.cc
diff options
context:
space:
mode:
authorwez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-24 02:50:42 +0000
committerwez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-24 02:50:42 +0000
commit5696b83d30a6edace89241c7c9ed28387b072a85 (patch)
tree74dc7ae7276431ce0e0dd2b64a4c4b363e76803f /content/renderer/p2p/p2p_transport_impl_unittest.cc
parentee0128514bdf06e63bc4a2d01dfc9a08d8c15651 (diff)
downloadchromium_src-5696b83d30a6edace89241c7c9ed28387b072a85.zip
chromium_src-5696b83d30a6edace89241c7c9ed28387b072a85.tar.gz
chromium_src-5696b83d30a6edace89241c7c9ed28387b072a85.tar.bz2
Fix JingleSession to respect net::StreamSocket Read/Write semantics.
Remove some unnecessary state checks in PseudoTcpAdapter. BUG= TEST=Unit tests and Remoting components continue to work. Review URL: http://codereview.chromium.org/7104012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90334 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/p2p/p2p_transport_impl_unittest.cc')
-rw-r--r--content/renderer/p2p/p2p_transport_impl_unittest.cc38
1 files changed, 23 insertions, 15 deletions
diff --git a/content/renderer/p2p/p2p_transport_impl_unittest.cc b/content/renderer/p2p/p2p_transport_impl_unittest.cc
index 718111b..acbf888 100644
--- a/content/renderer/p2p/p2p_transport_impl_unittest.cc
+++ b/content/renderer/p2p/p2p_transport_impl_unittest.cc
@@ -21,7 +21,7 @@
using testing::_;
using testing::AtMost;
using testing::Exactly;
-using testing::Invoke;
+using testing::InvokeWithoutArgs;
using webkit_glue::P2PTransport;
@@ -207,16 +207,23 @@ class TcpChannelTester : public base::RefCountedThreadSafe<TcpChannelTester> {
virtual ~TcpChannelTester() { }
- void Start() {
+ void Init() {
// Initialize |send_buffer_|.
send_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(kTcpDataSize),
kTcpDataSize);
for (int i = 0; i < kTcpDataSize; ++i) {
send_buffer_->data()[i] = rand() % 256;
}
+ }
+
+ void StartRead() {
+ message_loop_->PostTask(
+ FROM_HERE, NewRunnableMethod(this, &TcpChannelTester::DoRead));
+ }
+ void StartWrite() {
message_loop_->PostTask(
- FROM_HERE, NewRunnableMethod(this, &TcpChannelTester::DoStart));
+ FROM_HERE, NewRunnableMethod(this, &TcpChannelTester::DoWrite));
}
void CheckResults() {
@@ -237,11 +244,6 @@ class TcpChannelTester : public base::RefCountedThreadSafe<TcpChannelTester> {
message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask());
}
- void DoStart() {
- DoRead();
- DoWrite();
- }
-
void DoWrite() {
if (send_buffer_->BytesRemaining() == 0) {
return;
@@ -388,7 +390,7 @@ TEST_F(P2PTransportImplTest, ConnectUdp) {
}
TEST_F(P2PTransportImplTest, ConnectTcp) {
- Init(P2PTransport::PROTOCOL_UDP);
+ Init(P2PTransport::PROTOCOL_TCP);
EXPECT_CALL(event_handler1_, OnCandidateReady(_)).WillRepeatedly(
AddRemoteCandidate(transport2_.get()));
@@ -445,6 +447,9 @@ TEST_F(P2PTransportImplTest, SendDataTcp) {
EXPECT_CALL(event_handler2_, OnCandidateReady(_)).WillRepeatedly(
AddRemoteCandidate(transport1_.get()));
+ scoped_refptr<TcpChannelTester> channel_tester = new TcpChannelTester(
+ &message_loop_, transport1_->GetChannel(), transport2_->GetChannel());
+
// Transport may first become ether readable or writable, but
// eventually it must be readable and writable.
EXPECT_CALL(event_handler1_, OnStateChange(P2PTransport::STATE_READABLE))
@@ -454,7 +459,10 @@ TEST_F(P2PTransportImplTest, SendDataTcp) {
EXPECT_CALL(event_handler1_, OnStateChange(
static_cast<P2PTransport::State>(P2PTransport::STATE_READABLE |
P2PTransport::STATE_WRITABLE)))
- .Times(Exactly(1));
+ .Times(Exactly(1))
+ .WillOnce(InvokeWithoutArgs(channel_tester.get(),
+ &TcpChannelTester::StartWrite))
+ .RetiresOnSaturation();
EXPECT_CALL(event_handler2_, OnStateChange(P2PTransport::STATE_READABLE))
.Times(AtMost(1));
@@ -463,15 +471,15 @@ TEST_F(P2PTransportImplTest, SendDataTcp) {
EXPECT_CALL(event_handler2_, OnStateChange(
static_cast<P2PTransport::State>(P2PTransport::STATE_READABLE |
P2PTransport::STATE_WRITABLE)))
- .Times(Exactly(1));
-
- scoped_refptr<TcpChannelTester> channel_tester = new TcpChannelTester(
- &message_loop_, transport1_->GetChannel(), transport2_->GetChannel());
+ .Times(Exactly(1))
+ .WillOnce(InvokeWithoutArgs(channel_tester.get(),
+ &TcpChannelTester::StartRead))
+ .RetiresOnSaturation();
message_loop_.PostDelayedTask(FROM_HERE, new MessageLoop::QuitTask(),
TestTimeouts::action_max_timeout_ms());
- channel_tester->Start();
+ channel_tester->Init();
message_loop_.Run();
channel_tester->CheckResults();
}