Index: media/cast/net/rtcp/rtcp_receiver_unittest.cc |
diff --git a/media/cast/net/rtcp/rtcp_receiver_unittest.cc b/media/cast/net/rtcp/rtcp_receiver_unittest.cc |
index efdb2b44bb0bfb94b88185e0e5418117c38887c8..0ead34709cde46f419d3a672b3a340c3d14984cd 100644 |
--- a/media/cast/net/rtcp/rtcp_receiver_unittest.cc |
+++ b/media/cast/net/rtcp/rtcp_receiver_unittest.cc |
@@ -7,7 +7,6 @@ |
#include "media/cast/cast_environment.h" |
#include "media/cast/net/cast_transport_defines.h" |
#include "media/cast/net/rtcp/mock_rtcp_receiver_feedback.h" |
-#include "media/cast/net/rtcp/mock_rtcp_sender_feedback.h" |
#include "media/cast/net/rtcp/rtcp_receiver.h" |
#include "media/cast/net/rtcp/rtcp_utility.h" |
#include "media/cast/net/rtcp/test_rtcp_packet_builder.h" |
@@ -27,58 +26,13 @@ static const base::TimeDelta kTargetDelay = |
static const std::string kCName("test@10.1.1.1"); |
namespace { |
-class SenderFeedbackCastVerification : public RtcpSenderFeedback { |
- public: |
- SenderFeedbackCastVerification() : called_(false) {} |
- |
- virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) |
- OVERRIDE { |
- EXPECT_EQ(cast_feedback.media_ssrc_, kSenderSsrc); |
- EXPECT_EQ(cast_feedback.ack_frame_id_, kAckFrameId); |
- |
- MissingFramesAndPacketsMap::const_iterator frame_it = |
- cast_feedback.missing_frames_and_packets_.begin(); |
- |
- EXPECT_TRUE(frame_it != cast_feedback.missing_frames_and_packets_.end()); |
- EXPECT_EQ(kLostFrameId, frame_it->first); |
- EXPECT_EQ(frame_it->second.size(), 1UL); |
- EXPECT_EQ(*frame_it->second.begin(), kRtcpCastAllPacketsLost); |
- ++frame_it; |
- EXPECT_TRUE(frame_it != cast_feedback.missing_frames_and_packets_.end()); |
- EXPECT_EQ(kFrameIdWithLostPackets, frame_it->first); |
- EXPECT_EQ(3UL, frame_it->second.size()); |
- PacketIdSet::const_iterator packet_it = frame_it->second.begin(); |
- EXPECT_EQ(kLostPacketId1, *packet_it); |
- ++packet_it; |
- EXPECT_EQ(kLostPacketId2, *packet_it); |
- ++packet_it; |
- EXPECT_EQ(kLostPacketId3, *packet_it); |
- ++frame_it; |
- EXPECT_EQ(frame_it, cast_feedback.missing_frames_and_packets_.end()); |
- called_ = true; |
- } |
- |
- bool called() const { return called_; } |
- |
- private: |
- bool called_; |
- DISALLOW_COPY_AND_ASSIGN(SenderFeedbackCastVerification); |
-}; |
- |
-class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback { |
+class RtcpMessageVerification : public MockRtcpReceiverFeedback { |
public: |
- RtcpReceiverCastLogVerification() |
+ RtcpMessageVerification() |
: called_on_received_sender_log_(false), |
- called_on_received_receiver_log_(false) {} |
- |
- virtual void OnReceivedSenderReport( |
- const RtcpSenderInfo& remote_sender_info) OVERRIDE{}; |
- |
- virtual void OnReceiverReferenceTimeReport( |
- const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE{}; |
- |
- virtual void OnReceivedSendReportRequest() OVERRIDE{}; |
+ called_on_received_receiver_log_(false), |
+ called_on_received_cast_message_(false) {} |
virtual void OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log) |
OVERRIDE { |
@@ -113,10 +67,41 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback { |
called_on_received_receiver_log_ = true; |
} |
- bool OnReceivedReceiverLogCalled() { |
+ virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_message) |
+ OVERRIDE { |
+ EXPECT_EQ(cast_message.media_ssrc_, kSenderSsrc); |
+ EXPECT_EQ(cast_message.ack_frame_id_, kAckFrameId); |
+ |
+ MissingFramesAndPacketsMap::const_iterator frame_it = |
+ cast_message.missing_frames_and_packets_.begin(); |
+ |
+ EXPECT_TRUE(frame_it != cast_message.missing_frames_and_packets_.end()); |
+ EXPECT_EQ(kLostFrameId, frame_it->first); |
+ EXPECT_EQ(frame_it->second.size(), 1UL); |
+ EXPECT_EQ(*frame_it->second.begin(), kRtcpCastAllPacketsLost); |
+ ++frame_it; |
+ EXPECT_TRUE(frame_it != cast_message.missing_frames_and_packets_.end()); |
+ EXPECT_EQ(kFrameIdWithLostPackets, frame_it->first); |
+ EXPECT_EQ(3UL, frame_it->second.size()); |
+ PacketIdSet::const_iterator packet_it = frame_it->second.begin(); |
+ EXPECT_EQ(kLostPacketId1, *packet_it); |
+ ++packet_it; |
+ EXPECT_EQ(kLostPacketId2, *packet_it); |
+ ++packet_it; |
+ EXPECT_EQ(kLostPacketId3, *packet_it); |
+ ++frame_it; |
+ EXPECT_EQ(frame_it, cast_message.missing_frames_and_packets_.end()); |
+ called_on_received_cast_message_ = true; |
+ } |
+ |
+ bool OnReceivedReceiverLogCalled() const { |
return called_on_received_receiver_log_ && expected_receiver_log_.empty(); |
} |
+ bool OnReceivedCastFeedbackCalled() const { |
+ return called_on_received_cast_message_; |
+ } |
+ |
void SetExpectedReceiverLog(const RtcpReceiverLogMessage& receiver_log) { |
expected_receiver_log_ = receiver_log; |
} |
@@ -125,8 +110,9 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback { |
RtcpReceiverLogMessage expected_receiver_log_; |
bool called_on_received_sender_log_; |
bool called_on_received_receiver_log_; |
+ bool called_on_received_cast_message_; |
- DISALLOW_COPY_AND_ASSIGN(RtcpReceiverCastLogVerification); |
+ DISALLOW_COPY_AND_ASSIGN(RtcpMessageVerification); |
}; |
} // namespace |
@@ -136,23 +122,13 @@ class RtcpReceiverTest : public ::testing::Test { |
RtcpReceiverTest() |
: testing_clock_(new base::SimpleTestTickClock()), |
task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), |
- cast_environment_(new CastEnvironment( |
- scoped_ptr<base::TickClock>(testing_clock_).Pass(), |
- task_runner_, |
- task_runner_, |
- task_runner_)), |
- rtcp_receiver_(new RtcpReceiver(cast_environment_, |
- &mock_sender_feedback_, |
- &mock_receiver_feedback_, |
- &mock_rtt_feedback_, |
+ rtcp_receiver_(new RtcpReceiver(&mock_receiver_feedback_, |
kSourceSsrc)) { |
EXPECT_CALL(mock_receiver_feedback_, OnReceivedSenderReport(_)).Times(0); |
EXPECT_CALL(mock_receiver_feedback_, OnReceiverReferenceTimeReport(_)) |
.Times(0); |
- EXPECT_CALL(mock_receiver_feedback_, OnReceivedSendReportRequest()) |
- .Times(0); |
- EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(0); |
- EXPECT_CALL(mock_rtt_feedback_, OnReceivedDelaySinceLastReport(_, _, _)) |
+ EXPECT_CALL(mock_receiver_feedback_, OnReceivedCastFeedback(_)).Times(0); |
+ EXPECT_CALL(mock_receiver_feedback_, OnReceivedDelaySinceLastReport(_, _)) |
.Times(0); |
expected_sender_info_.ntp_seconds = kNtpHigh; |
@@ -184,10 +160,7 @@ class RtcpReceiverTest : public ::testing::Test { |
base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; |
- scoped_refptr<CastEnvironment> cast_environment_; |
MockRtcpReceiverFeedback mock_receiver_feedback_; |
- MockRtcpRttFeedback mock_rtt_feedback_; |
- MockRtcpSenderFeedback mock_sender_feedback_; |
scoped_ptr<RtcpReceiver> rtcp_receiver_; |
RtcpSenderInfo expected_sender_info_; |
RtcpReportBlock expected_report_block_; |
@@ -226,9 +199,8 @@ TEST_F(RtcpReceiverTest, InjectReceiveReportPacket) { |
// local ssrc. |
InjectRtcpPacket(p1.Data(), p1.Length()); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
TestRtcpPacketBuilder p2; |
p2.AddRr(kSenderSsrc, 1); |
@@ -260,9 +232,8 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) { |
InjectRtcpPacket(p1.Data(), p1.Length()); |
EXPECT_CALL(mock_receiver_feedback_, OnReceivedSenderReport(_)).Times(0); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
rtcp_receiver_->SetRemoteSSRC(0); |
@@ -278,9 +249,8 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) { |
EXPECT_CALL(mock_receiver_feedback_, |
OnReceivedSenderReport(expected_sender_info_)).Times(1); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc); |
@@ -306,9 +276,8 @@ TEST_F(RtcpReceiverTest, InjectSenderReportPacketWithDlrr) { |
EXPECT_CALL(mock_receiver_feedback_, |
OnReceivedSenderReport(expected_sender_info_)).Times(1); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSenderSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
// Enable receiving sender report. |
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc); |
@@ -328,9 +297,8 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithRrtr) { |
// local ssrc. |
InjectRtcpPacket(p1.Data(), p1.Length()); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
EXPECT_CALL(mock_receiver_feedback_, |
OnReceiverReferenceTimeReport( |
expected_receiver_reference_report_)).Times(1); |
@@ -358,9 +326,8 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithIntraFrameRequest) { |
// local ssrc. |
InjectRtcpPacket(p1.Data(), p1.Length()); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
TestRtcpPacketBuilder p2; |
p2.AddRr(kSenderSsrc, 1); |
@@ -381,10 +348,9 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastFeedback) { |
// local ssrc. |
InjectRtcpPacket(p1.Data(), p1.Length()); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
- EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, OnReceivedCastFeedback(_)).Times(1); |
// Enable receiving the cast feedback. |
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc); |
@@ -399,16 +365,11 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastFeedback) { |
} |
TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) { |
- SenderFeedbackCastVerification sender_feedback_cast_verification; |
- RtcpReceiver rtcp_receiver(cast_environment_, |
- &sender_feedback_cast_verification, |
- &mock_receiver_feedback_, |
- &mock_rtt_feedback_, |
- kSourceSsrc); |
+ RtcpMessageVerification verification; |
+ RtcpReceiver rtcp_receiver(&verification, kSourceSsrc); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(verification, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
// Enable receiving the cast feedback. |
rtcp_receiver.SetRemoteSSRC(kSenderSsrc); |
@@ -422,7 +383,7 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) { |
RtcpParser rtcp_parser(p.Data(), p.Length()); |
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); |
- EXPECT_TRUE(sender_feedback_cast_verification.called()); |
+ EXPECT_TRUE(verification.OnReceivedCastFeedbackCalled()); |
} |
TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) { |
@@ -432,11 +393,8 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) { |
base::SimpleTestTickClock testing_clock; |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
- RtcpReceiverCastLogVerification cast_log_verification; |
- RtcpReceiver rtcp_receiver(cast_environment_, |
- &mock_sender_feedback_, |
- &cast_log_verification, |
- &mock_rtt_feedback_, |
+ RtcpMessageVerification verification; |
+ RtcpReceiver rtcp_receiver(&verification, |
kSourceSsrc); |
rtcp_receiver.SetRemoteSSRC(kSenderSsrc); |
rtcp_receiver.SetCastReceiverEventHistorySize(100); |
@@ -463,7 +421,7 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) { |
receiver_log.push_back(frame_log); |
- cast_log_verification.SetExpectedReceiverLog(receiver_log); |
+ verification.SetExpectedReceiverLog(receiver_log); |
TestRtcpPacketBuilder p; |
p.AddRr(kSenderSsrc, 1); |
@@ -480,14 +438,13 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) { |
p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); |
p.AddReceiverEventLog(kLostPacketId2, PACKET_RECEIVED, kTimeDelayMs); |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
RtcpParser rtcp_parser(p.Data(), p.Length()); |
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); |
- EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); |
+ EXPECT_TRUE(verification.OnReceivedReceiverLogCalled()); |
} |
TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) { |
@@ -497,11 +454,8 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) { |
base::SimpleTestTickClock testing_clock; |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
- RtcpReceiverCastLogVerification cast_log_verification; |
- RtcpReceiver rtcp_receiver(cast_environment_, |
- &mock_sender_feedback_, |
- &cast_log_verification, |
- &mock_rtt_feedback_, |
+ RtcpMessageVerification verification; |
+ RtcpReceiver rtcp_receiver(&verification, |
kSourceSsrc); |
rtcp_receiver.SetRemoteSSRC(kSenderSsrc); |
@@ -518,7 +472,7 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) { |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
} |
- cast_log_verification.SetExpectedReceiverLog(receiver_log); |
+ verification.SetExpectedReceiverLog(receiver_log); |
TestRtcpPacketBuilder p; |
p.AddRr(kSenderSsrc, 1); |
@@ -529,14 +483,13 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) { |
p.AddReceiverEventLog(kDelayDeltaMs, FRAME_ACK_SENT, 0); |
} |
- EXPECT_CALL(mock_rtt_feedback_, |
- OnReceivedDelaySinceLastReport( |
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
+ EXPECT_CALL(mock_receiver_feedback_, |
+ OnReceivedDelaySinceLastReport(kLastSr, kDelayLastSr)).Times(1); |
RtcpParser rtcp_parser(p.Data(), p.Length()); |
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); |
- EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); |
+ EXPECT_TRUE(verification.OnReceivedReceiverLogCalled()); |
} |
} // namespace cast |