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

Side by Side Diff: media/cast/audio_sender/audio_sender_unittest.cc

Issue 149253008: Cast:Refactoring AudioSender to Clang format (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
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/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "media/base/media.h" 9 #include "media/base/media.h"
10 #include "media/cast/audio_sender/audio_sender.h" 10 #include "media/cast/audio_sender/audio_sender.h"
(...skipping 10 matching lines...) Expand all
21 namespace media { 21 namespace media {
22 namespace cast { 22 namespace cast {
23 23
24 static const int64 kStartMillisecond = GG_INT64_C(12345678900000); 24 static const int64 kStartMillisecond = GG_INT64_C(12345678900000);
25 25
26 using testing::_; 26 using testing::_;
27 using testing::Exactly; 27 using testing::Exactly;
28 28
29 class TestPacketSender : public transport::PacketSender { 29 class TestPacketSender : public transport::PacketSender {
30 public: 30 public:
31 TestPacketSender() 31 TestPacketSender() : number_of_rtp_packets_(0), number_of_rtcp_packets_(0) {}
32 : number_of_rtp_packets_(0),
33 number_of_rtcp_packets_(0) {}
34 32
35 virtual bool SendPacket(const Packet& packet) OVERRIDE { 33 virtual bool SendPacket(const Packet& packet) OVERRIDE {
36 if (Rtcp::IsRtcpPacket(&packet[0], packet.size())) { 34 if (Rtcp::IsRtcpPacket(&packet[0], packet.size())) {
37 ++number_of_rtcp_packets_; 35 ++number_of_rtcp_packets_;
38 } else { 36 } else {
39 ++number_of_rtp_packets_; 37 ++number_of_rtp_packets_;
40 } 38 }
41 return true; 39 return true;
42 } 40 }
43 41
44 int number_of_rtp_packets() const { 42 int number_of_rtp_packets() const { return number_of_rtp_packets_; }
45 return number_of_rtp_packets_;
46 }
47 43
48 int number_of_rtcp_packets() const { 44 int number_of_rtcp_packets() const { return number_of_rtcp_packets_; }
49 return number_of_rtcp_packets_;
50 }
51 45
52 private: 46 private:
53 int number_of_rtp_packets_; 47 int number_of_rtp_packets_;
54 int number_of_rtcp_packets_; 48 int number_of_rtcp_packets_;
55 49
56 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); 50 DISALLOW_COPY_AND_ASSIGN(TestPacketSender);
57 }; 51 };
58 52
59 class AudioSenderTest : public ::testing::Test { 53 class AudioSenderTest : public ::testing::Test {
60 public: 54 public:
61 MOCK_METHOD0(InsertAudioCallback, void()); 55 MOCK_METHOD0(InsertAudioCallback, void());
62 56
63 protected: 57 protected:
64 AudioSenderTest() { 58 AudioSenderTest() {
65 InitializeMediaLibraryForTesting(); 59 InitializeMediaLibraryForTesting();
66 testing_clock_ = new base::SimpleTestTickClock(); 60 testing_clock_ = new base::SimpleTestTickClock();
67 testing_clock_->Advance( 61 testing_clock_->Advance(
68 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 62 base::TimeDelta::FromMilliseconds(kStartMillisecond));
69 task_runner_ = new test::FakeTaskRunner(testing_clock_); 63 task_runner_ = new test::FakeTaskRunner(testing_clock_);
70 cast_environment_ = new CastEnvironment( 64 cast_environment_ =
71 scoped_ptr<base::TickClock>(testing_clock_).Pass(), 65 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_).Pass(),
72 task_runner_, task_runner_, task_runner_, task_runner_, 66 task_runner_,
73 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig()); 67 task_runner_,
68 task_runner_,
69 task_runner_,
70 task_runner_,
71 task_runner_,
72 GetDefaultCastSenderLoggingConfig());
74 audio_config_.codec = transport::kOpus; 73 audio_config_.codec = transport::kOpus;
75 audio_config_.use_external_encoder = false; 74 audio_config_.use_external_encoder = false;
76 audio_config_.frequency = kDefaultAudioSamplingRate; 75 audio_config_.frequency = kDefaultAudioSamplingRate;
77 audio_config_.channels = 2; 76 audio_config_.channels = 2;
78 audio_config_.bitrate = kDefaultAudioEncoderBitrate; 77 audio_config_.bitrate = kDefaultAudioEncoderBitrate;
79 audio_config_.rtp_payload_type = 127; 78 audio_config_.rtp_payload_type = 127;
80 79
81 transport::CastTransportConfig transport_config; 80 transport::CastTransportConfig transport_config;
82 transport_config.audio_rtp_payload_type = 127; 81 transport_config.audio_rtp_payload_type = 127;
83 transport_config.audio_channels = 2; 82 transport_config.audio_channels = 2;
84 transport_sender_.reset(new transport::CastTransportSenderImpl( 83 transport_sender_.reset(new transport::CastTransportSenderImpl(
85 testing_clock_, 84 testing_clock_,
86 transport_config, 85 transport_config,
87 base::Bind(&UpdateCastTransportStatus), task_runner_)); 86 base::Bind(&UpdateCastTransportStatus),
87 task_runner_));
88 transport_sender_->InsertFakeTransportForTesting(&transport_); 88 transport_sender_->InsertFakeTransportForTesting(&transport_);
89 audio_sender_.reset(new AudioSender( 89 audio_sender_.reset(new AudioSender(
90 cast_environment_, audio_config_, transport_sender_.get())); 90 cast_environment_, audio_config_, transport_sender_.get()));
91 task_runner_->RunTasks(); 91 task_runner_->RunTasks();
92 } 92 }
93 93
94 virtual ~AudioSenderTest() {} 94 virtual ~AudioSenderTest() {}
95 95
96 static void UpdateCastTransportStatus(transport::CastTransportStatus status) { 96 static void UpdateCastTransportStatus(transport::CastTransportStatus status) {
97 EXPECT_EQ(status, transport::TRANSPORT_INITIALIZED); 97 EXPECT_EQ(status, transport::TRANSPORT_INITIALIZED);
98 } 98 }
99 99
100 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 100 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
101 TestPacketSender transport_; 101 TestPacketSender transport_;
102 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; 102 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_;
103 scoped_refptr<test::FakeTaskRunner> task_runner_; 103 scoped_refptr<test::FakeTaskRunner> task_runner_;
104 scoped_ptr<AudioSender> audio_sender_; 104 scoped_ptr<AudioSender> audio_sender_;
105 scoped_refptr<CastEnvironment> cast_environment_; 105 scoped_refptr<CastEnvironment> cast_environment_;
106 AudioSenderConfig audio_config_; 106 AudioSenderConfig audio_config_;
107 }; 107 };
108 108
109 TEST_F(AudioSenderTest, Encode20ms) { 109 TEST_F(AudioSenderTest, Encode20ms) {
110 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1)); 110 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1));
111 111
112 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20); 112 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20);
113 scoped_ptr<AudioBus> bus(TestAudioBusFactory( 113 scoped_ptr<AudioBus> bus(
114 audio_config_.channels, audio_config_.frequency, 114 TestAudioBusFactory(audio_config_.channels,
115 TestAudioBusFactory::kMiddleANoteFreq, 0.5f).NextAudioBus(kDuration)); 115 audio_config_.frequency,
116 TestAudioBusFactory::kMiddleANoteFreq,
117 0.5f).NextAudioBus(kDuration));
116 118
117 base::TimeTicks recorded_time = base::TimeTicks::Now(); 119 base::TimeTicks recorded_time = base::TimeTicks::Now();
118 audio_sender_->InsertAudio( 120 audio_sender_->InsertAudio(bus.get(),
119 bus.get(), 121 recorded_time,
120 recorded_time, 122 base::Bind(&AudioSenderTest::InsertAudioCallback,
121 base::Bind( 123 base::Unretained(this)));
122 &AudioSenderTest::InsertAudioCallback,
123 base::Unretained(this)));
124 task_runner_->RunTasks(); 124 task_runner_->RunTasks();
125 EXPECT_GE(transport_.number_of_rtp_packets() + 125 EXPECT_GE(
126 transport_.number_of_rtcp_packets(), 1); 126 transport_.number_of_rtp_packets() + transport_.number_of_rtcp_packets(),
127 1);
127 } 128 }
128 129
129 TEST_F(AudioSenderTest, RtcpTimer) { 130 TEST_F(AudioSenderTest, RtcpTimer) {
130 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1)); 131 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1));
131 132
132 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20); 133 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(20);
133 scoped_ptr<AudioBus> bus(TestAudioBusFactory( 134 scoped_ptr<AudioBus> bus(
134 audio_config_.channels, audio_config_.frequency, 135 TestAudioBusFactory(audio_config_.channels,
135 TestAudioBusFactory::kMiddleANoteFreq, 0.5f).NextAudioBus(kDuration)); 136 audio_config_.frequency,
137 TestAudioBusFactory::kMiddleANoteFreq,
138 0.5f).NextAudioBus(kDuration));
136 139
137 base::TimeTicks recorded_time = base::TimeTicks::Now(); 140 base::TimeTicks recorded_time = base::TimeTicks::Now();
138 audio_sender_->InsertAudio( 141 audio_sender_->InsertAudio(bus.get(),
139 bus.get(), recorded_time, 142 recorded_time,
140 base::Bind( 143 base::Bind(&AudioSenderTest::InsertAudioCallback,
141 &AudioSenderTest::InsertAudioCallback, 144 base::Unretained(this)));
142 base::Unretained(this)));
143 task_runner_->RunTasks(); 145 task_runner_->RunTasks();
144 146
145 // Make sure that we send at least one RTCP packet. 147 // Make sure that we send at least one RTCP packet.
146 base::TimeDelta max_rtcp_timeout = 148 base::TimeDelta max_rtcp_timeout =
147 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2); 149 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2);
148 testing_clock_->Advance(max_rtcp_timeout); 150 testing_clock_->Advance(max_rtcp_timeout);
149 task_runner_->RunTasks(); 151 task_runner_->RunTasks();
150 EXPECT_GE(transport_.number_of_rtp_packets(), 1); 152 EXPECT_GE(transport_.number_of_rtp_packets(), 1);
151 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1); 153 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1);
152 } 154 }
153 155
154 } // namespace cast 156 } // namespace cast
155 } // namespace media 157 } // namespace media
OLDNEW
« media/cast/audio_sender/audio_encoder_unittest.cc ('K') | « media/cast/audio_sender/audio_sender.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698