Chromium Code Reviews| Index: media/base/pipeline_unittest.cc |
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc |
| index 8a4dea1582362fe3d7428a429715deae4034a41d..e5d4232f2d03dd5c926b5c3641f2b1eab68e13f3 100644 |
| --- a/media/base/pipeline_unittest.cc |
| +++ b/media/base/pipeline_unittest.cc |
| @@ -180,6 +180,7 @@ class PipelineTest : public ::testing::Test { |
| } |
| void StartPipeline() { |
| + EXPECT_CALL(*demuxer_, GetStartTime()).WillRepeatedly(Return(start_time_)); |
|
scherkus (not reviewing)
2014/09/16 18:55:41
could we move these to Pipeline() along with the o
DaleCurtis
2014/09/16 20:03:03
Nice, I didn't know you could override like this.
|
| pipeline_->Start( |
| demuxer_.get(), |
| scoped_renderer_.PassAs<Renderer>(), |
| @@ -197,13 +198,14 @@ class PipelineTest : public ::testing::Test { |
| // Sets up expectations on the callback and initializes the pipeline. Called |
| // after tests have set expectations any filters they wish to use. |
| void StartPipelineAndExpect(PipelineStatus start_status) { |
| + EXPECT_CALL(*demuxer_, GetStartTime()).WillRepeatedly(Return(start_time_)); |
| EXPECT_CALL(callbacks_, OnStart(start_status)); |
| if (start_status == PIPELINE_OK) { |
| EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_)); |
| EXPECT_CALL(*renderer_, SetPlaybackRate(0.0f)); |
| EXPECT_CALL(*renderer_, SetVolume(1.0f)); |
| - EXPECT_CALL(*renderer_, StartPlayingFrom(base::TimeDelta())) |
| + EXPECT_CALL(*renderer_, StartPlayingFrom(start_time_)) |
| .WillOnce(SetBufferingState(&buffering_state_cb_, |
| BUFFERING_HAVE_ENOUGH)); |
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
| @@ -313,6 +315,7 @@ class PipelineTest : public ::testing::Test { |
| base::Closure ended_cb_; |
| VideoDecoderConfig video_decoder_config_; |
| PipelineMetadata metadata_; |
| + base::TimeDelta start_time_; |
| private: |
| DISALLOW_COPY_AND_ASSIGN(PipelineTest); |
| @@ -742,6 +745,21 @@ TEST_F(PipelineTest, Underflow) { |
| DoSeek(expected); |
| } |
| +TEST_F(PipelineTest, PositiveStartTime) { |
| + start_time_ = base::TimeDelta::FromSeconds(1); |
| + CreateAudioStream(); |
| + MockDemuxerStreamVector streams; |
| + streams.push_back(audio_stream()); |
| + SetDemuxerExpectations(&streams); |
| + SetRendererExpectations(); |
| + StartPipelineAndExpect(PIPELINE_OK); |
| + ExpectDemuxerStop(); |
| + ExpectPipelineStopAndDestroyPipeline(); |
| + pipeline_->Stop( |
| + base::Bind(&CallbackHelper::OnStop, base::Unretained(&callbacks_))); |
| + message_loop_.RunUntilIdle(); |
| +} |
| + |
| class PipelineTeardownTest : public PipelineTest { |
| public: |
| enum TeardownState { |