Update talk to 56092586.
R=jiayl@webrtc.org, mallinath@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5078 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/app/webrtc/datachannel_unittest.cc b/talk/app/webrtc/datachannel_unittest.cc
index 5d29811..dba24a2 100644
--- a/talk/app/webrtc/datachannel_unittest.cc
+++ b/talk/app/webrtc/datachannel_unittest.cc
@@ -39,11 +39,12 @@
}
void SetChannelReady() {
+ provider_.set_transport_available(true);
webrtc_data_channel_->OnTransportChannelCreated();
if (webrtc_data_channel_->id() < 0) {
webrtc_data_channel_->SetSctpSid(0);
}
- webrtc_data_channel_->OnChannelReady(true);
+ provider_.set_ready_to_send(true);
}
webrtc::DataChannelInit init_;
@@ -53,27 +54,28 @@
// Verifies that the data channel is connected to the transport after creation.
TEST_F(SctpDataChannelTest, ConnectedToTransportOnCreated) {
- EXPECT_TRUE(provider_.IsConnected(webrtc_data_channel_.get()));
- // The sid is not set yet, so it should not have added the streams.
- EXPECT_FALSE(provider_.IsSendStreamAdded(webrtc_data_channel_->id()));
- EXPECT_FALSE(provider_.IsRecvStreamAdded(webrtc_data_channel_->id()));
+ provider_.set_transport_available(true);
+ talk_base::scoped_refptr<DataChannel> dc = DataChannel::Create(
+ &provider_, cricket::DCT_SCTP, "test1", &init_);
- webrtc_data_channel_->SetSctpSid(0);
- EXPECT_TRUE(provider_.IsSendStreamAdded(webrtc_data_channel_->id()));
- EXPECT_TRUE(provider_.IsRecvStreamAdded(webrtc_data_channel_->id()));
+ EXPECT_TRUE(provider_.IsConnected(dc.get()));
+ // The sid is not set yet, so it should not have added the streams.
+ EXPECT_FALSE(provider_.IsSendStreamAdded(dc->id()));
+ EXPECT_FALSE(provider_.IsRecvStreamAdded(dc->id()));
+
+ dc->SetSctpSid(0);
+ EXPECT_TRUE(provider_.IsSendStreamAdded(dc->id()));
+ EXPECT_TRUE(provider_.IsRecvStreamAdded(dc->id()));
}
// Verifies that the data channel is connected to the transport if the transport
// is not available initially and becomes available later.
TEST_F(SctpDataChannelTest, ConnectedAfterTransportBecomesAvailable) {
- provider_.set_transport_available(false);
- talk_base::scoped_refptr<DataChannel> dc = DataChannel::Create(
- &provider_, cricket::DCT_SCTP, "test1", &init_);
- EXPECT_FALSE(provider_.IsConnected(dc.get()));
+ EXPECT_FALSE(provider_.IsConnected(webrtc_data_channel_.get()));
provider_.set_transport_available(true);
- dc->OnTransportChannelCreated();
- EXPECT_TRUE(provider_.IsConnected(dc.get()));
+ webrtc_data_channel_->OnTransportChannelCreated();
+ EXPECT_TRUE(provider_.IsConnected(webrtc_data_channel_.get()));
}
// Tests the state of the data channel.
@@ -81,6 +83,7 @@
EXPECT_EQ(webrtc::DataChannelInterface::kConnecting,
webrtc_data_channel_->state());
SetChannelReady();
+
EXPECT_EQ(webrtc::DataChannelInterface::kOpen, webrtc_data_channel_->state());
webrtc_data_channel_->Close();
EXPECT_EQ(webrtc::DataChannelInterface::kClosed,
@@ -132,3 +135,16 @@
EXPECT_EQ(provider_.last_send_data_params().ssrc,
static_cast<uint32>(webrtc_data_channel_->id()));
}
+
+// Tests that the DataChannel created after transport gets ready can enter OPEN
+// state.
+TEST_F(SctpDataChannelTest, LateCreatedChannelTransitionToOpen) {
+ SetChannelReady();
+ webrtc::DataChannelInit init;
+ init.id = 1;
+ talk_base::scoped_refptr<DataChannel> dc =
+ DataChannel::Create(&provider_, cricket::DCT_SCTP, "test1", &init);
+ EXPECT_EQ(webrtc::DataChannelInterface::kConnecting, dc->state());
+ EXPECT_TRUE_WAIT(webrtc::DataChannelInterface::kOpen == dc->state(),
+ 1000);
+}