Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(486)

Side by Side Diff: media/cast/rtcp/rtcp_receiver_unittest.cc

Issue 100823015: Cast: move net->transport (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updating transport callback Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/cast/rtcp/rtcp_receiver.cc ('k') | media/cast/rtcp/rtcp_sender.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/test/simple_test_tick_clock.h" 6 #include "base/test/simple_test_tick_clock.h"
7 #include "media/cast/cast_environment.h" 7 #include "media/cast/cast_environment.h"
8 #include "media/cast/net/cast_net_defines.h"
9 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" 8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
10 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" 9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h"
11 #include "media/cast/rtcp/rtcp_receiver.h" 10 #include "media/cast/rtcp/rtcp_receiver.h"
12 #include "media/cast/rtcp/rtcp_utility.h" 11 #include "media/cast/rtcp/rtcp_utility.h"
13 #include "media/cast/rtcp/test_rtcp_packet_builder.h" 12 #include "media/cast/rtcp/test_rtcp_packet_builder.h"
14 #include "media/cast/test/fake_task_runner.h" 13 #include "media/cast/test/fake_task_runner.h"
14 #include "media/cast/transport/cast_transport_defines.h"
15 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
16 16
17 namespace media { 17 namespace media {
18 namespace cast { 18 namespace cast {
19 19
20 using testing::_; 20 using testing::_;
21 21
22 static const uint32 kSenderSsrc = 0x10203; 22 static const uint32 kSenderSsrc = 0x10203;
23 static const uint32 kSourceSsrc = 0x40506; 23 static const uint32 kSourceSsrc = 0x40506;
24 static const uint32 kUnknownSsrc = 0xDEAD; 24 static const uint32 kUnknownSsrc = 0xDEAD;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 bool called_; 61 bool called_;
62 }; 62 };
63 63
64 class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback { 64 class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
65 public: 65 public:
66 RtcpReceiverCastLogVerification() 66 RtcpReceiverCastLogVerification()
67 : called_on_received_sender_log_(false), 67 : called_on_received_sender_log_(false),
68 called_on_received_receiver_log_(false) {} 68 called_on_received_receiver_log_(false) {}
69 69
70 virtual void OnReceivedSenderReport( 70 virtual void OnReceivedSenderReport(
71 const RtcpSenderInfo& remote_sender_info) OVERRIDE {}; 71 const transport::RtcpSenderInfo& remote_sender_info) OVERRIDE {};
72 72
73 virtual void OnReceiverReferenceTimeReport( 73 virtual void OnReceiverReferenceTimeReport(
74 const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE {}; 74 const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE {};
75 75
76 virtual void OnReceivedSendReportRequest() OVERRIDE {}; 76 virtual void OnReceivedSendReportRequest() OVERRIDE {};
77 77
78 virtual void OnReceivedReceiverLog( 78 virtual void OnReceivedReceiverLog(
79 const RtcpReceiverLogMessage& receiver_log) OVERRIDE { 79 const RtcpReceiverLogMessage& receiver_log) OVERRIDE {
80 EXPECT_EQ(expected_receiver_log_.size(), receiver_log.size()); 80 EXPECT_EQ(expected_receiver_log_.size(), receiver_log.size());
81 RtcpReceiverLogMessage::const_iterator expected_it = 81 RtcpReceiverLogMessage::const_iterator expected_it =
(...skipping 20 matching lines...) Expand all
102 event_incoming_it->delay_delta); 102 event_incoming_it->delay_delta);
103 } 103 }
104 } 104 }
105 expected_receiver_log_.pop_front(); 105 expected_receiver_log_.pop_front();
106 expected_it = expected_receiver_log_.begin(); 106 expected_it = expected_receiver_log_.begin();
107 } 107 }
108 called_on_received_receiver_log_ = true; 108 called_on_received_receiver_log_ = true;
109 } 109 }
110 110
111 virtual void OnReceivedSenderLog( 111 virtual void OnReceivedSenderLog(
112 const RtcpSenderLogMessage& sender_log) OVERRIDE { 112 const transport::RtcpSenderLogMessage& sender_log) OVERRIDE {
113 EXPECT_EQ(expected_sender_log_.size(), sender_log.size()); 113 EXPECT_EQ(expected_sender_log_.size(), sender_log.size());
114 114
115 RtcpSenderLogMessage::const_iterator expected_it = 115 transport::RtcpSenderLogMessage::const_iterator expected_it =
116 expected_sender_log_.begin(); 116 expected_sender_log_.begin();
117 RtcpSenderLogMessage::const_iterator incoming_it = sender_log.begin(); 117 transport::RtcpSenderLogMessage::const_iterator incoming_it =
118 sender_log.begin();
118 for (; expected_it != expected_sender_log_.end(); 119 for (; expected_it != expected_sender_log_.end();
119 ++expected_it, ++incoming_it) { 120 ++expected_it, ++incoming_it) {
120 EXPECT_EQ(expected_it->frame_status, incoming_it->frame_status); 121 EXPECT_EQ(expected_it->frame_status, incoming_it->frame_status);
121 EXPECT_EQ(0xffffff & expected_it->rtp_timestamp, 122 EXPECT_EQ(0xffffff & expected_it->rtp_timestamp,
122 incoming_it->rtp_timestamp); 123 incoming_it->rtp_timestamp);
123 } 124 }
124 called_on_received_sender_log_ = true; 125 called_on_received_sender_log_ = true;
125 } 126 }
126 127
127 bool OnReceivedSenderLogCalled() { 128 bool OnReceivedSenderLogCalled() {
128 return called_on_received_sender_log_; 129 return called_on_received_sender_log_;
129 } 130 }
130 131
131 bool OnReceivedReceiverLogCalled() { 132 bool OnReceivedReceiverLogCalled() {
132 return called_on_received_receiver_log_ && expected_receiver_log_.empty(); 133 return called_on_received_receiver_log_ && expected_receiver_log_.empty();
133 } 134 }
134 135
135 void SetExpectedReceiverLog(const RtcpReceiverLogMessage& receiver_log) { 136 void SetExpectedReceiverLog(const RtcpReceiverLogMessage& receiver_log) {
136 expected_receiver_log_ = receiver_log; 137 expected_receiver_log_ = receiver_log;
137 } 138 }
138 139
139 void SetExpectedSenderLog(const RtcpSenderLogMessage& sender_log) { 140 void SetExpectedSenderLog(const transport::RtcpSenderLogMessage& sender_log) {
140 expected_sender_log_ = sender_log; 141 expected_sender_log_ = sender_log;
141 } 142 }
142 143
143 private: 144 private:
144 RtcpReceiverLogMessage expected_receiver_log_; 145 RtcpReceiverLogMessage expected_receiver_log_;
145 RtcpSenderLogMessage expected_sender_log_; 146 transport::RtcpSenderLogMessage expected_sender_log_;
146 bool called_on_received_sender_log_; 147 bool called_on_received_sender_log_;
147 bool called_on_received_receiver_log_; 148 bool called_on_received_receiver_log_;
148 }; 149 };
149 150
150 } // namespace 151 } // namespace
151 152
152 class RtcpReceiverTest : public ::testing::Test { 153 class RtcpReceiverTest : public ::testing::Test {
153 protected: 154 protected:
154 RtcpReceiverTest() 155 RtcpReceiverTest()
155 : task_runner_(new test::FakeTaskRunner(&testing_clock_)), 156 : task_runner_(new test::FakeTaskRunner(&testing_clock_)),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser); 201 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser);
201 } 202 }
202 203
203 base::SimpleTestTickClock testing_clock_; 204 base::SimpleTestTickClock testing_clock_;
204 scoped_refptr<test::FakeTaskRunner> task_runner_; 205 scoped_refptr<test::FakeTaskRunner> task_runner_;
205 scoped_refptr<CastEnvironment> cast_environment_; 206 scoped_refptr<CastEnvironment> cast_environment_;
206 MockRtcpReceiverFeedback mock_receiver_feedback_; 207 MockRtcpReceiverFeedback mock_receiver_feedback_;
207 MockRtcpRttFeedback mock_rtt_feedback_; 208 MockRtcpRttFeedback mock_rtt_feedback_;
208 MockRtcpSenderFeedback mock_sender_feedback_; 209 MockRtcpSenderFeedback mock_sender_feedback_;
209 scoped_ptr<RtcpReceiver> rtcp_receiver_; 210 scoped_ptr<RtcpReceiver> rtcp_receiver_;
210 RtcpSenderInfo expected_sender_info_; 211 transport::RtcpSenderInfo expected_sender_info_;
211 RtcpReportBlock expected_report_block_; 212 transport::RtcpReportBlock expected_report_block_;
212 RtcpReceiverReferenceTimeReport expected_receiver_reference_report_; 213 RtcpReceiverReferenceTimeReport expected_receiver_reference_report_;
213 }; 214 };
214 215
215 TEST_F(RtcpReceiverTest, BrokenPacketIsIgnored) { 216 TEST_F(RtcpReceiverTest, BrokenPacketIsIgnored) {
216 const uint8 bad_packet[] = {0, 0, 0, 0}; 217 const uint8 bad_packet[] = {0, 0, 0, 0};
217 InjectRtcpPacket(bad_packet, sizeof(bad_packet)); 218 InjectRtcpPacket(bad_packet, sizeof(bad_packet));
218 } 219 }
219 220
220 TEST_F(RtcpReceiverTest, InjectSenderReportPacket) { 221 TEST_F(RtcpReceiverTest, InjectSenderReportPacket) {
221 TestRtcpPacketBuilder p; 222 TestRtcpPacketBuilder p;
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 451
451 TEST_F(RtcpReceiverTest, InjectSenderReportWithCastSenderLogVerification) { 452 TEST_F(RtcpReceiverTest, InjectSenderReportWithCastSenderLogVerification) {
452 RtcpReceiverCastLogVerification cast_log_verification; 453 RtcpReceiverCastLogVerification cast_log_verification;
453 RtcpReceiver rtcp_receiver(cast_environment_, 454 RtcpReceiver rtcp_receiver(cast_environment_,
454 &mock_sender_feedback_, 455 &mock_sender_feedback_,
455 &cast_log_verification, 456 &cast_log_verification,
456 &mock_rtt_feedback_, 457 &mock_rtt_feedback_,
457 kSourceSsrc); 458 kSourceSsrc);
458 rtcp_receiver.SetRemoteSSRC(kSenderSsrc); 459 rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
459 460
460 RtcpSenderLogMessage sender_log; 461 transport::RtcpSenderLogMessage sender_log;
461 for (int j = 0; j < 359; ++j) { 462 for (int j = 0; j < 359; ++j) {
462 RtcpSenderFrameLogMessage sender_frame_log; 463 transport::RtcpSenderFrameLogMessage sender_frame_log;
463 sender_frame_log.frame_status = kRtcpSenderFrameStatusSentToNetwork; 464 sender_frame_log.frame_status =
465 transport::kRtcpSenderFrameStatusSentToNetwork;
464 sender_frame_log.rtp_timestamp = kRtpTimestamp + j * 90; 466 sender_frame_log.rtp_timestamp = kRtpTimestamp + j * 90;
465 sender_log.push_back(sender_frame_log); 467 sender_log.push_back(sender_frame_log);
466 } 468 }
467 cast_log_verification.SetExpectedSenderLog(sender_log); 469 cast_log_verification.SetExpectedSenderLog(sender_log);
468 470
469 TestRtcpPacketBuilder p; 471 TestRtcpPacketBuilder p;
470 p.AddSr(kSenderSsrc, 0); 472 p.AddSr(kSenderSsrc, 0);
471 p.AddSdesCname(kSenderSsrc, kCName); 473 p.AddSdesCname(kSenderSsrc, kCName);
472 p.AddSenderLog(kSenderSsrc); 474 p.AddSenderLog(kSenderSsrc);
473 475
474 for (int i = 0; i < 359; ++i) { 476 for (int i = 0; i < 359; ++i) {
475 p.AddSenderFrameLog(kRtcpSenderFrameStatusSentToNetwork, 477 p.AddSenderFrameLog(transport::kRtcpSenderFrameStatusSentToNetwork,
476 kRtpTimestamp + i * 90); 478 kRtpTimestamp + i * 90);
477 } 479 }
478 RtcpParser rtcp_parser(p.Packet(), p.Length()); 480 RtcpParser rtcp_parser(p.Packet(), p.Length());
479 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); 481 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
480 482
481 EXPECT_TRUE(cast_log_verification.OnReceivedSenderLogCalled()); 483 EXPECT_TRUE(cast_log_verification.OnReceivedSenderLogCalled());
482 } 484 }
483 485
484 TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) { 486 TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) {
485 static const uint32 kTimeBaseMs = 12345678; 487 static const uint32 kTimeBaseMs = 12345678;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 EXPECT_CALL(mock_rtt_feedback_, 576 EXPECT_CALL(mock_rtt_feedback_,
575 OnReceivedDelaySinceLastReport(kSourceSsrc, kLastSr, kDelayLastSr)). 577 OnReceivedDelaySinceLastReport(kSourceSsrc, kLastSr, kDelayLastSr)).
576 Times(1); 578 Times(1);
577 579
578 RtcpParser rtcp_parser(p.Packet(), p.Length()); 580 RtcpParser rtcp_parser(p.Packet(), p.Length());
579 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); 581 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
580 582
581 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); 583 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled());
582 } 584 }
583 585
584
585
586 } // namespace cast 586 } // namespace cast
587 } // namespace media 587 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp_receiver.cc ('k') | media/cast/rtcp/rtcp_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698