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/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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); | 58 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); |
59 }; | 59 }; |
60 | 60 |
61 class AudioSenderTest : public ::testing::Test { | 61 class AudioSenderTest : public ::testing::Test { |
62 public: | 62 public: |
63 MOCK_METHOD0(InsertAudioCallback, void()); | 63 MOCK_METHOD0(InsertAudioCallback, void()); |
64 | 64 |
65 protected: | 65 protected: |
66 AudioSenderTest() { | 66 AudioSenderTest() { |
67 InitializeMediaLibraryForTesting(); | 67 InitializeMediaLibraryForTesting(); |
68 testing_clock_.Advance( | 68 testing_clock_ = new base::SimpleTestTickClock(); |
| 69 testing_clock_->Advance( |
69 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | 70 base::TimeDelta::FromMilliseconds(kStartMillisecond)); |
70 task_runner_ = new test::FakeTaskRunner(&testing_clock_); | 71 task_runner_ = new test::FakeTaskRunner(testing_clock_); |
71 cast_environment_ = new CastEnvironment( | 72 cast_environment_ = new CastEnvironment( |
72 &testing_clock_, task_runner_, task_runner_, task_runner_, task_runner_, | 73 scoped_ptr<base::TickClock>(testing_clock_).Pass(), |
| 74 task_runner_, task_runner_, task_runner_, task_runner_, |
73 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig()); | 75 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig()); |
74 audio_config_.codec = transport::kOpus; | 76 audio_config_.codec = transport::kOpus; |
75 audio_config_.use_external_encoder = false; | 77 audio_config_.use_external_encoder = false; |
76 audio_config_.frequency = kDefaultAudioSamplingRate; | 78 audio_config_.frequency = kDefaultAudioSamplingRate; |
77 audio_config_.channels = 2; | 79 audio_config_.channels = 2; |
78 audio_config_.bitrate = kDefaultAudioEncoderBitrate; | 80 audio_config_.bitrate = kDefaultAudioEncoderBitrate; |
79 audio_config_.rtp_payload_type = 127; | 81 audio_config_.rtp_payload_type = 127; |
80 | 82 |
81 transport::CastTransportConfig transport_config; | 83 transport::CastTransportConfig transport_config; |
82 transport_config.audio_rtp_payload_type = 127; | 84 transport_config.audio_rtp_payload_type = 127; |
83 transport_config.audio_channels = 2; | 85 transport_config.audio_channels = 2; |
84 transport_sender_.reset(new transport::CastTransportSenderImpl( | 86 transport_sender_.reset(new transport::CastTransportSenderImpl( |
85 &testing_clock_, | 87 testing_clock_, |
86 transport_config, | 88 transport_config, |
87 base::Bind(&UpdateCastTransportStatus), task_runner_)); | 89 base::Bind(&UpdateCastTransportStatus), task_runner_)); |
88 transport_sender_->InsertFakeTransportForTesting(&transport_); | 90 transport_sender_->InsertFakeTransportForTesting(&transport_); |
89 audio_sender_.reset(new AudioSender( | 91 audio_sender_.reset(new AudioSender( |
90 cast_environment_, audio_config_, transport_sender_.get())); | 92 cast_environment_, audio_config_, transport_sender_.get())); |
91 task_runner_->RunTasks(); | 93 task_runner_->RunTasks(); |
92 } | 94 } |
93 | 95 |
94 virtual ~AudioSenderTest() {} | 96 virtual ~AudioSenderTest() {} |
95 | 97 |
96 static void UpdateCastTransportStatus(transport::CastTransportStatus status) { | 98 static void UpdateCastTransportStatus(transport::CastTransportStatus status) { |
97 } | 99 } |
98 | 100 |
99 base::SimpleTestTickClock testing_clock_; | 101 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
100 TestPacketSender transport_; | 102 TestPacketSender transport_; |
101 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; | 103 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; |
102 scoped_refptr<test::FakeTaskRunner> task_runner_; | 104 scoped_refptr<test::FakeTaskRunner> task_runner_; |
103 scoped_ptr<AudioSender> audio_sender_; | 105 scoped_ptr<AudioSender> audio_sender_; |
104 scoped_refptr<CastEnvironment> cast_environment_; | 106 scoped_refptr<CastEnvironment> cast_environment_; |
105 AudioSenderConfig audio_config_; | 107 AudioSenderConfig audio_config_; |
106 }; | 108 }; |
107 | 109 |
108 TEST_F(AudioSenderTest, Encode20ms) { | 110 TEST_F(AudioSenderTest, Encode20ms) { |
109 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1)); | 111 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1)); |
(...skipping 27 matching lines...) Expand all Loading... |
137 audio_sender_->InsertAudio( | 139 audio_sender_->InsertAudio( |
138 bus.get(), recorded_time, | 140 bus.get(), recorded_time, |
139 base::Bind( | 141 base::Bind( |
140 &AudioSenderTest::InsertAudioCallback, | 142 &AudioSenderTest::InsertAudioCallback, |
141 base::Unretained(this))); | 143 base::Unretained(this))); |
142 task_runner_->RunTasks(); | 144 task_runner_->RunTasks(); |
143 | 145 |
144 // Make sure that we send at least one RTCP packet. | 146 // Make sure that we send at least one RTCP packet. |
145 base::TimeDelta max_rtcp_timeout = | 147 base::TimeDelta max_rtcp_timeout = |
146 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2); | 148 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2); |
147 testing_clock_.Advance(max_rtcp_timeout); | 149 testing_clock_->Advance(max_rtcp_timeout); |
148 task_runner_->RunTasks(); | 150 task_runner_->RunTasks(); |
149 EXPECT_GE(transport_.number_of_rtp_packets(), 1); | 151 EXPECT_GE(transport_.number_of_rtp_packets(), 1); |
150 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1); | 152 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1); |
151 } | 153 } |
152 | 154 |
153 } // namespace cast | 155 } // namespace cast |
154 } // namespace media | 156 } // namespace media |
OLD | NEW |