| Index: webrtc/audio/audio_receive_stream_unittest.cc
|
| diff --git a/webrtc/audio/audio_receive_stream_unittest.cc b/webrtc/audio/audio_receive_stream_unittest.cc
|
| index 8703d6ed324819a0a041e823a88bf90db6f9e7ca..300ab2005499af1821cab77decfbabac9c6d3219 100644
|
| --- a/webrtc/audio/audio_receive_stream_unittest.cc
|
| +++ b/webrtc/audio/audio_receive_stream_unittest.cc
|
| @@ -98,6 +98,10 @@ struct ConfigHelper {
|
| .WillOnce(Return(&packet_router_));
|
| EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects())
|
| .Times(1);
|
| + EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr))
|
| + .Times(1);
|
| + EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport())
|
| + .Times(1);
|
| return channel_proxy_;
|
| }));
|
| stream_config_.voe_channel_id = kChannelId;
|
| @@ -120,6 +124,7 @@ struct ConfigHelper {
|
| AudioReceiveStream::Config& config() { return stream_config_; }
|
| rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; }
|
| MockVoiceEngine& voice_engine() { return voice_engine_; }
|
| + MockVoEChannelProxy* channel_proxy() { return channel_proxy_; }
|
|
|
| void SetupMockForBweFeedback(bool send_side_bwe) {
|
| EXPECT_CALL(congestion_controller_,
|
| @@ -181,7 +186,7 @@ void BuildOneByteExtension(std::vector<uint8_t>::iterator it,
|
| shifted_value);
|
| }
|
|
|
| -std::vector<uint8_t> CreateRtpHeaderWithOneByteExtension(
|
| +const std::vector<uint8_t> CreateRtpHeaderWithOneByteExtension(
|
| int extension_id,
|
| uint32_t extension_value,
|
| size_t value_length) {
|
| @@ -200,6 +205,18 @@ std::vector<uint8_t> CreateRtpHeaderWithOneByteExtension(
|
| extension_value, value_length);
|
| return header;
|
| }
|
| +
|
| +const std::vector<uint8_t> CreateRtcpSenderReport() {
|
| + std::vector<uint8_t> packet;
|
| + const size_t kRtcpSrLength = 28; // In bytes.
|
| + packet.resize(kRtcpSrLength);
|
| + packet[0] = 0x80; // Version 2.
|
| + packet[1] = 0xc8; // PT = 200, SR.
|
| + // Length in number of 32-bit words - 1.
|
| + ByteWriter<uint16_t>::WriteBigEndian(&packet[2], 6);
|
| + ByteWriter<uint32_t>::WriteBigEndian(&packet[4], kLocalSsrc);
|
| + return packet;
|
| +}
|
| } // namespace
|
|
|
| TEST(AudioReceiveStreamTest, ConfigToString) {
|
| @@ -213,7 +230,7 @@ TEST(AudioReceiveStreamTest, ConfigToString) {
|
| "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, extensions: [{name: "
|
| "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 2}], "
|
| "transport_cc: off}, "
|
| - "receive_transport: nullptr, rtcp_send_transport: nullptr, "
|
| + "rtcp_send_transport: nullptr, "
|
| "voe_channel_id: 2}",
|
| config.ToString());
|
| }
|
| @@ -235,7 +252,7 @@ MATCHER_P(VerifyHeaderExtension, expected_extension, "") {
|
| expected_extension.transportSequenceNumber;
|
| }
|
|
|
| -TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) {
|
| +TEST(AudioReceiveStreamTest, ReceiveRtpPacket) {
|
| ConfigHelper helper;
|
| helper.config().rtp.transport_cc = true;
|
| helper.SetupMockForBweFeedback(true);
|
| @@ -254,10 +271,30 @@ TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) {
|
| rtp_packet.size() - kExpectedHeaderLength,
|
| VerifyHeaderExtension(expected_extension), false))
|
| .Times(1);
|
| + EXPECT_CALL(*helper.channel_proxy(),
|
| + ReceivedRTPPacket(&rtp_packet[0],
|
| + rtp_packet.size(),
|
| + _))
|
| + .WillOnce(Return(true));
|
| EXPECT_TRUE(
|
| recv_stream.DeliverRtp(&rtp_packet[0], rtp_packet.size(), packet_time));
|
| }
|
|
|
| +TEST(AudioReceiveStreamTest, ReceiveRtcpPacket) {
|
| + ConfigHelper helper;
|
| + helper.config().rtp.transport_cc = true;
|
| + helper.SetupMockForBweFeedback(true);
|
| + internal::AudioReceiveStream recv_stream(
|
| + helper.congestion_controller(), helper.config(), helper.audio_state());
|
| +
|
| + std::vector<uint8_t> rtcp_packet = CreateRtcpSenderReport();
|
| + EXPECT_CALL(*helper.channel_proxy(),
|
| + ReceivedRTCPPacket(&rtcp_packet[0], rtcp_packet.size()))
|
| + .WillOnce(Return(true));
|
| + EXPECT_TRUE(recv_stream.DeliverRtcp(&rtcp_packet[0], rtcp_packet.size()));
|
| +}
|
| +
|
| +
|
| TEST(AudioReceiveStreamTest, GetStats) {
|
| ConfigHelper helper;
|
| internal::AudioReceiveStream recv_stream(
|
|
|