OLD | NEW |
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_defines.h" | 7 #include "media/cast/cast_defines.h" |
8 #include "media/cast/cast_environment.h" | 8 #include "media/cast/cast_environment.h" |
9 #include "media/cast/net/cast_transport_defines.h" | 9 #include "media/cast/net/cast_transport_defines.h" |
10 #include "media/cast/net/pacing/paced_sender.h" | 10 #include "media/cast/net/pacing/paced_sender.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 class RtcpSenderTest : public ::testing::Test { | 85 class RtcpSenderTest : public ::testing::Test { |
86 protected: | 86 protected: |
87 RtcpSenderTest() | 87 RtcpSenderTest() |
88 : testing_clock_(new base::SimpleTestTickClock()), | 88 : testing_clock_(new base::SimpleTestTickClock()), |
89 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), | 89 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), |
90 cast_environment_(new CastEnvironment( | 90 cast_environment_(new CastEnvironment( |
91 scoped_ptr<base::TickClock>(testing_clock_).Pass(), | 91 scoped_ptr<base::TickClock>(testing_clock_).Pass(), |
92 task_runner_, | 92 task_runner_, |
93 task_runner_, | 93 task_runner_, |
94 task_runner_)), | 94 task_runner_)), |
95 rtcp_sender_(new RtcpSender(cast_environment_, | 95 rtcp_sender_(new RtcpSender(&test_transport_, kSendingSsrc, kCName)) {} |
96 &test_transport_, | |
97 kSendingSsrc, | |
98 kCName)) {} | |
99 | 96 |
100 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. | 97 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
101 TestRtcpTransport test_transport_; | 98 TestRtcpTransport test_transport_; |
102 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; | 99 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; |
103 scoped_refptr<CastEnvironment> cast_environment_; | 100 scoped_refptr<CastEnvironment> cast_environment_; |
104 scoped_ptr<RtcpSender> rtcp_sender_; | 101 scoped_ptr<RtcpSender> rtcp_sender_; |
105 | 102 |
106 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest); | 103 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest); |
107 }; | 104 }; |
108 | 105 |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 kDefaultDelay); | 543 kDefaultDelay); |
547 | 544 |
548 testing_clock.Advance( | 545 testing_clock.Advance( |
549 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 546 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
550 time_base_ms += kTimeBetweenEventsMs; | 547 time_base_ms += kTimeBetweenEventsMs; |
551 } | 548 } |
552 | 549 |
553 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count()); | 550 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count()); |
554 } | 551 } |
555 | 552 |
| 553 TEST_F(RtcpSenderTest, RtcpSenderReport) { |
| 554 RtcpSenderInfo sender_info; |
| 555 sender_info.ntp_seconds = kNtpHigh; |
| 556 sender_info.ntp_fraction = kNtpLow; |
| 557 sender_info.rtp_timestamp = kRtpTimestamp; |
| 558 sender_info.send_packet_count = kSendPacketCount; |
| 559 sender_info.send_octet_count = kSendOctetCount; |
| 560 |
| 561 RtcpDlrrReportBlock dlrr_rb; |
| 562 dlrr_rb.last_rr = kLastRr; |
| 563 dlrr_rb.delay_since_last_rr = kDelayLastRr; |
| 564 |
| 565 // Sender report + c_name. |
| 566 TestRtcpPacketBuilder p; |
| 567 p.AddSr(kSendingSsrc, 0); |
| 568 p.AddSdesCname(kSendingSsrc, kCName); |
| 569 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
| 570 |
| 571 rtcp_sender_->SendRtcpFromRtpSender(kRtcpSr, |
| 572 sender_info, |
| 573 dlrr_rb); |
| 574 |
| 575 EXPECT_EQ(1, test_transport_.packet_count()); |
| 576 } |
| 577 |
| 578 TEST_F(RtcpSenderTest, RtcpSenderReportWithDlrr) { |
| 579 RtcpSenderInfo sender_info; |
| 580 sender_info.ntp_seconds = kNtpHigh; |
| 581 sender_info.ntp_fraction = kNtpLow; |
| 582 sender_info.rtp_timestamp = kRtpTimestamp; |
| 583 sender_info.send_packet_count = kSendPacketCount; |
| 584 sender_info.send_octet_count = kSendOctetCount; |
| 585 |
| 586 // Sender report + c_name + dlrr. |
| 587 TestRtcpPacketBuilder p1; |
| 588 p1.AddSr(kSendingSsrc, 0); |
| 589 p1.AddSdesCname(kSendingSsrc, kCName); |
| 590 p1.AddXrHeader(kSendingSsrc); |
| 591 p1.AddXrDlrrBlock(kSendingSsrc); |
| 592 test_transport_.SetExpectedRtcpPacket(p1.GetPacket().Pass()); |
| 593 |
| 594 RtcpDlrrReportBlock dlrr_rb; |
| 595 dlrr_rb.last_rr = kLastRr; |
| 596 dlrr_rb.delay_since_last_rr = kDelayLastRr; |
| 597 |
| 598 rtcp_sender_->SendRtcpFromRtpSender( |
| 599 kRtcpSr | kRtcpDlrr, |
| 600 sender_info, |
| 601 dlrr_rb); |
| 602 |
| 603 EXPECT_EQ(1, test_transport_.packet_count()); |
| 604 } |
| 605 |
556 } // namespace cast | 606 } // namespace cast |
557 } // namespace media | 607 } // namespace media |
OLD | NEW |