Chromium Code Reviews| Index: media/cast/net/rtcp/rtcp_unittest.cc |
| diff --git a/media/cast/net/rtcp/rtcp_unittest.cc b/media/cast/net/rtcp/rtcp_unittest.cc |
| index ef28072831afb5a6ce16f7793f8dd7fd93bcb07c..aef4dce7b56445cfc4ee0b2dec9de01c78833a5f 100644 |
| --- a/media/cast/net/rtcp/rtcp_unittest.cc |
| +++ b/media/cast/net/rtcp/rtcp_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/bind.h" |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/test/simple_test_tick_clock.h" |
| #include "media/cast/net/cast_transport_config.h" |
| #include "media/cast/net/pacing/paced_sender.h" |
| @@ -31,8 +32,6 @@ media::cast::RtcpTimeData CreateRtcpTimeData(base::TimeTicks now) { |
| return ret; |
| } |
| -} // namespace |
| - |
| using testing::_; |
| static const uint32_t kSenderSsrc = 0x10203; |
| @@ -75,24 +74,35 @@ class FakeRtcpTransport : public PacedPacketSender { |
| DISALLOW_COPY_AND_ASSIGN(FakeRtcpTransport); |
| }; |
| +} // namespace |
| + |
| class RtcpTest : public ::testing::Test { |
| protected: |
| + class RtcpObserver : public SenderRtcpObserver { |
|
miu
2016/04/25 23:23:53
Seems like you only need this class because Sender
xjz
2016/04/29 19:15:49
Done.
|
| + public: |
| + explicit RtcpObserver(RtcpTest* rtcp_test) : rtcp_test_(rtcp_test) {} |
| + |
| + void OnCastMessageReceived(const RtcpCastMessage& cast_message) override; |
| + void OnRttReceived(base::TimeDelta round_trip_time) override; |
| + void OnReceiverLogReceived(const RtcpReceiverLogMessage& log) override; |
| + void OnPliReceived() override; |
| + |
| + private: |
| + RtcpTest* const rtcp_test_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(RtcpObserver); |
| + }; |
| + |
| RtcpTest() |
| : sender_clock_(new base::SimpleTestTickClock()), |
| receiver_clock_(new test::SkewedTickClock(sender_clock_.get())), |
| rtp_sender_pacer_(sender_clock_.get()), |
| rtp_receiver_pacer_(sender_clock_.get()), |
| - rtcp_at_rtp_sender_( |
| - base::Bind(&RtcpTest::OnReceivedCastFeedback, |
| - base::Unretained(this)), |
| - base::Bind(&RtcpTest::OnMeasuredRoundTripTime, |
| - base::Unretained(this)), |
| - base::Bind(&RtcpTest::OnReceivedLogs, base::Unretained(this)), |
| - base::Bind(&RtcpTest::OnReceivedPli, base::Unretained(this)), |
| - sender_clock_.get(), |
| - &rtp_sender_pacer_, |
| - kSenderSsrc, |
| - kReceiverSsrc), |
| + rtcp_at_rtp_sender_(base::WrapUnique(new RtcpObserver(this)), |
| + sender_clock_.get(), |
| + &rtp_sender_pacer_, |
| + kSenderSsrc, |
| + kReceiverSsrc), |
| rtcp_at_rtp_receiver_(receiver_clock_.get(), |
| kReceiverSsrc, |
| kSenderSsrc), |
| @@ -135,6 +145,8 @@ class RtcpTest : public ::testing::Test { |
| } |
| } |
| + void OnReceivedPli() { received_pli_ = true; } |
| + |
| PacketRef BuildRtcpPacketFromRtpReceiver( |
| const RtcpTimeData& time_data, |
| const RtcpCastMessage* cast_message, |
| @@ -182,10 +194,8 @@ class RtcpTest : public ::testing::Test { |
| return builder.Finish(); |
| } |
| - void OnReceivedPli() { received_pli_ = true; } |
| - |
| - scoped_ptr<base::SimpleTestTickClock> sender_clock_; |
| - scoped_ptr<test::SkewedTickClock> receiver_clock_; |
| + std::unique_ptr<base::SimpleTestTickClock> sender_clock_; |
| + std::unique_ptr<test::SkewedTickClock> receiver_clock_; |
| FakeRtcpTransport rtp_sender_pacer_; |
| FakeRtcpTransport rtp_receiver_pacer_; |
| SenderRtcpSession rtcp_at_rtp_sender_; |
| @@ -200,6 +210,24 @@ class RtcpTest : public ::testing::Test { |
| DISALLOW_COPY_AND_ASSIGN(RtcpTest); |
| }; |
| +void RtcpTest::RtcpObserver::OnCastMessageReceived( |
|
miu
2016/04/25 23:23:53
Feel free to inline these methods in the class def
xjz
2016/04/29 19:15:49
Done.
|
| + const RtcpCastMessage& cast_message) { |
| + rtcp_test_->OnReceivedCastFeedback(cast_message); |
| +} |
| + |
| +void RtcpTest::RtcpObserver::OnRttReceived(base::TimeDelta round_trip_time) { |
| + rtcp_test_->OnMeasuredRoundTripTime(round_trip_time); |
| +} |
| + |
| +void RtcpTest::RtcpObserver::OnReceiverLogReceived( |
| + const RtcpReceiverLogMessage& log) { |
| + rtcp_test_->OnReceivedLogs(log); |
| +} |
| + |
| +void RtcpTest::RtcpObserver::OnPliReceived() { |
| + rtcp_test_->OnReceivedPli(); |
| +} |
| + |
| TEST_F(RtcpTest, LipSyncGleanedFromSenderReport) { |
| // Initially, expect no lip-sync info receiver-side without having first |
| // received a RTCP packet. |