Chromium Code Reviews| Index: media/base/pipeline_impl_unittest.cc |
| diff --git a/media/base/pipeline_impl_unittest.cc b/media/base/pipeline_impl_unittest.cc |
| index 11165824145b2c451832b0e8819c65e1bc6a13c2..3d0b13ef0f132f7dc4191596d19e2a55376a4411 100644 |
| --- a/media/base/pipeline_impl_unittest.cc |
| +++ b/media/base/pipeline_impl_unittest.cc |
| @@ -180,10 +180,18 @@ class PipelineImplTest : public ::testing::Test { |
| } |
| // Sets up expectations to allow the audio renderer to initialize. |
| - void InitializeAudioRenderer() { |
| - EXPECT_CALL(*mocks_->audio_renderer(), |
| - Initialize(mocks_->audio_decoder(), NotNull())) |
| - .WillOnce(Invoke(&RunFilterCallback)); |
| + void InitializeAudioRenderer(bool disable_after_init_callback = false) { |
| + |
|
scherkus (not reviewing)
2011/01/05 01:28:38
nit: remove blank line
acolwell GONE FROM CHROMIUM
2011/01/05 16:27:46
Done.
|
| + if (disable_after_init_callback) { |
| + EXPECT_CALL(*mocks_->audio_renderer(), |
| + Initialize(mocks_->audio_decoder(), NotNull())) |
| + .WillOnce(DoAll(Invoke(&RunFilterCallback), |
| + DisableAudioRenderer(mocks_->audio_renderer()))); |
| + } else { |
| + EXPECT_CALL(*mocks_->audio_renderer(), |
| + Initialize(mocks_->audio_decoder(), NotNull())) |
| + .WillOnce(Invoke(&RunFilterCallback)); |
| + } |
| EXPECT_CALL(*mocks_->audio_renderer(), SetPlaybackRate(0.0f)); |
| EXPECT_CALL(*mocks_->audio_renderer(), SetVolume(1.0f)); |
| EXPECT_CALL(*mocks_->audio_renderer(), Seek(base::TimeDelta(), NotNull())) |
| @@ -641,6 +649,47 @@ TEST_F(PipelineImplTest, DisableAudioRenderer) { |
| host->NotifyEnded(); |
| } |
| +TEST_F(PipelineImplTest, DisableAudioRendererDuringInit) { |
| + CreateAudioStream(); |
| + CreateVideoStream(); |
| + MockDemuxerStreamVector streams; |
| + streams.push_back(audio_stream()); |
| + streams.push_back(video_stream()); |
| + |
| + InitializeDataSource(); |
| + InitializeDemuxer(&streams, base::TimeDelta()); |
| + InitializeAudioDecoder(audio_stream()); |
| + InitializeAudioRenderer(true); |
| + InitializeVideoDecoder(video_stream()); |
| + InitializeVideoRenderer(); |
| + |
| + EXPECT_CALL(*mocks_->data_source(), |
| + OnAudioRendererDisabled()); |
| + EXPECT_CALL(*mocks_->demuxer(), |
| + OnAudioRendererDisabled()); |
| + EXPECT_CALL(*mocks_->audio_decoder(), |
| + OnAudioRendererDisabled()); |
| + EXPECT_CALL(*mocks_->audio_renderer(), |
| + OnAudioRendererDisabled()); |
| + EXPECT_CALL(*mocks_->video_decoder(), |
| + OnAudioRendererDisabled()); |
| + EXPECT_CALL(*mocks_->video_renderer(), |
| + OnAudioRendererDisabled()); |
| + |
| + InitializePipeline(); |
| + EXPECT_TRUE(pipeline_->IsInitialized()); |
| + EXPECT_EQ(PIPELINE_OK, pipeline_->GetError()); |
| + EXPECT_FALSE(pipeline_->IsRendered(mime_type::kMajorTypeAudio)); |
| + EXPECT_TRUE(pipeline_->IsRendered(mime_type::kMajorTypeVideo)); |
| + |
| + // Verify that ended event is fired when video ends. |
| + EXPECT_CALL(*mocks_->video_renderer(), HasEnded()) |
| + .WillOnce(Return(true)); |
| + EXPECT_CALL(callbacks_, OnEnded()); |
| + FilterHost* host = pipeline_; |
| + host->NotifyEnded(); |
| +} |
| + |
| TEST_F(PipelineImplTest, EndedCallback) { |
| CreateAudioStream(); |
| CreateVideoStream(); |