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