Index: webrtc/p2p/base/dtlstransportchannel_unittest.cc |
diff --git a/webrtc/p2p/base/dtlstransportchannel_unittest.cc b/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
index 460e294a0048c99badecd63cc1543ea6d538ff0e..07e3b87847203150eac14e38b368ab0677e270d7 100644 |
--- a/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
+++ b/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
@@ -33,6 +33,7 @@ static const char kIceUfrag1[] = "TESTICEUFRAG0001"; |
static const char kIcePwd1[] = "TESTICEPWD00000000000001"; |
static const size_t kPacketNumOffset = 8; |
static const size_t kPacketHeaderLen = 12; |
+static const int kFakePacketId = 0x1234; |
static bool IsRtpLeadByte(uint8_t b) { |
return ((b & 0xC0) == 0x80); |
@@ -86,6 +87,8 @@ class DtlsTestClient : public sigslot::has_slots<> { |
&DtlsTestClient::OnTransportChannelWritableState); |
channel->SignalReadPacket.connect(this, |
&DtlsTestClient::OnTransportChannelReadPacket); |
+ channel->SignalSentPacket.connect( |
+ this, &DtlsTestClient::OnTransportChannelSentPacket); |
channels_.push_back(channel); |
// Hook the raw packets so that we can verify they are encrypted. |
@@ -259,6 +262,7 @@ class DtlsTestClient : public sigslot::has_slots<> { |
// Only set the bypass flag if we've activated DTLS. |
int flags = (certificate_ && srtp) ? cricket::PF_SRTP_BYPASS : 0; |
rtc::PacketOptions packet_options; |
+ packet_options.packet_id = kFakePacketId; |
int rv = channels_[channel]->SendPacket( |
packet.get(), size, packet_options, flags); |
ASSERT_GT(rv, 0); |
@@ -338,6 +342,13 @@ class DtlsTestClient : public sigslot::has_slots<> { |
ASSERT_EQ(expected_flags, flags); |
} |
+ void OnTransportChannelSentPacket(cricket::TransportChannel* channel, |
+ const rtc::SentPacket& sent_packet) { |
+ sent_packet_ = sent_packet; |
+ } |
+ |
+ rtc::SentPacket sent_packet() const { return sent_packet_; } |
+ |
// Hook into the raw packet stream to make sure DTLS packets are encrypted. |
void OnFakeTransportChannelReadPacket(cricket::TransportChannel* channel, |
const char* data, size_t size, |
@@ -378,6 +389,7 @@ class DtlsTestClient : public sigslot::has_slots<> { |
bool negotiated_dtls_; |
bool received_dtls_client_hello_; |
bool received_dtls_server_hello_; |
+ rtc::SentPacket sent_packet_; |
}; |
@@ -558,6 +570,15 @@ TEST_F(DtlsTransportChannelTest, TestTransfer) { |
TestTransfer(0, 1000, 100, false); |
} |
+// Connect without DTLS, and transfer some data. |
+TEST_F(DtlsTransportChannelTest, TestOnSentPacket) { |
+ ASSERT_TRUE(Connect()); |
+ EXPECT_EQ(client1_.sent_packet().send_time_ms, -1); |
+ TestTransfer(0, 1000, 100, false); |
+ EXPECT_EQ(kFakePacketId, client1_.sent_packet().packet_id); |
+ EXPECT_GE(client1_.sent_packet().send_time_ms, 0); |
+} |
+ |
// Create two channels without DTLS, and transfer some data. |
TEST_F(DtlsTransportChannelTest, TestTransferTwoChannels) { |
SetChannelCount(2); |