diff options
Diffstat (limited to 'chromium/media/base/pipeline_impl_unittest.cc')
-rw-r--r-- | chromium/media/base/pipeline_impl_unittest.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/chromium/media/base/pipeline_impl_unittest.cc b/chromium/media/base/pipeline_impl_unittest.cc index a19dcac8799..cb31db062f6 100644 --- a/chromium/media/base/pipeline_impl_unittest.cc +++ b/chromium/media/base/pipeline_impl_unittest.cc @@ -639,6 +639,30 @@ TEST_F(PipelineImplTest, SetVolume) { base::RunLoop().RunUntilIdle(); } +TEST_F(PipelineImplTest, SetVolumeDuringStartup) { + CreateAudioStream(); + SetDemuxerExpectations(); + + // The audio renderer should receive two calls to SetVolume(). + float expected = 0.5f; + EXPECT_CALL(*renderer_, SetVolume(expected)).Times(2); + EXPECT_CALL(callbacks_, OnStart(PIPELINE_OK)); + EXPECT_CALL(callbacks_, OnMetadata(_)) + .WillOnce(RunOnceClosure(base::BindOnce(&PipelineImpl::SetVolume, + base::Unretained(pipeline_.get()), + expected))); + ExpectRendererInitialization(); + EXPECT_CALL(*renderer_, SetPlaybackRate(0.0)); + EXPECT_CALL(*renderer_, StartPlayingFrom(start_time_)) + .WillOnce(SetBufferingState(&renderer_client_, BUFFERING_HAVE_ENOUGH, + BUFFERING_CHANGE_REASON_UNKNOWN)); + EXPECT_CALL(callbacks_, + OnBufferingStateChange(BUFFERING_HAVE_ENOUGH, + BUFFERING_CHANGE_REASON_UNKNOWN)); + StartPipeline(); + base::RunLoop().RunUntilIdle(); +} + TEST_F(PipelineImplTest, SetPreservesPitch) { CreateAudioStream(); SetDemuxerExpectations(); |