| 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 |