| Index: media/base/pipeline_unittest.cc
|
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
|
| index c064df4c3c130635380f33bd05fccbfa86ef25e0..fe5df6043b994aef8fbb83cae1363ee6a9cae756 100644
|
| --- a/media/base/pipeline_unittest.cc
|
| +++ b/media/base/pipeline_unittest.cc
|
| @@ -86,21 +86,9 @@ class PipelineTest : public ::testing::Test {
|
| PipelineTest()
|
| : pipeline_(new Pipeline(message_loop_.message_loop_proxy(),
|
| new MediaLog())),
|
| - filter_collection_(new FilterCollection()),
|
| - demuxer_(new StrictMock<MockDemuxer>()) {
|
| - filter_collection_->SetDemuxer(demuxer_.get());
|
| -
|
| - renderer_ = new StrictMock<MockRenderer>();
|
| - scoped_ptr<Renderer> renderer(renderer_);
|
| - filter_collection_->SetRenderer(renderer.Pass());
|
| -
|
| - text_renderer_ = new TextRenderer(
|
| - message_loop_.message_loop_proxy(),
|
| - base::Bind(&PipelineTest::OnAddTextTrack,
|
| - base::Unretained(this)));
|
| - scoped_ptr<TextRenderer> text_renderer(text_renderer_);
|
| - filter_collection_->SetTextRenderer(text_renderer.Pass());
|
| -
|
| + demuxer_(new StrictMock<MockDemuxer>()),
|
| + scoped_renderer_(new StrictMock<MockRenderer>()),
|
| + renderer_(scoped_renderer_.get()) {
|
| // SetDemuxerExpectations() adds overriding expectations for expected
|
| // non-NULL streams.
|
| DemuxerStream* null_pointer = NULL;
|
| @@ -191,9 +179,24 @@ class PipelineTest : public ::testing::Test {
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| + void StartPipeline() {
|
| + pipeline_->Start(
|
| + demuxer_.get(),
|
| + scoped_renderer_.PassAs<Renderer>(),
|
| + base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
|
| + base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
|
| + base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
|
| + base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
|
| + base::Bind(&CallbackHelper::OnBufferingStateChange,
|
| + base::Unretained(&callbacks_)),
|
| + base::Bind(&CallbackHelper::OnDurationChange,
|
| + base::Unretained(&callbacks_)),
|
| + base::Bind(&PipelineTest::OnAddTextTrack, base::Unretained(this)));
|
| + }
|
| +
|
| // Sets up expectations on the callback and initializes the pipeline. Called
|
| // after tests have set expectations any filters they wish to use.
|
| - void StartPipeline(PipelineStatus start_status) {
|
| + void StartPipelineAndExpect(PipelineStatus start_status) {
|
| EXPECT_CALL(callbacks_, OnStart(start_status));
|
|
|
| if (start_status == PIPELINE_OK) {
|
| @@ -206,16 +209,7 @@ class PipelineTest : public ::testing::Test {
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| }
|
|
|
| - pipeline_->Start(
|
| - filter_collection_.Pass(),
|
| - base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnBufferingStateChange,
|
| - base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnDurationChange,
|
| - base::Unretained(&callbacks_)));
|
| + StartPipeline();
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| @@ -307,8 +301,8 @@ class PipelineTest : public ::testing::Test {
|
| base::MessageLoop message_loop_;
|
| scoped_ptr<Pipeline> pipeline_;
|
|
|
| - scoped_ptr<FilterCollection> filter_collection_;
|
| scoped_ptr<StrictMock<MockDemuxer> > demuxer_;
|
| + scoped_ptr<StrictMock<MockRenderer> > scoped_renderer_;
|
| StrictMock<MockRenderer>* renderer_;
|
| StrictMock<CallbackHelper> text_renderer_callbacks_;
|
| TextRenderer* text_renderer_;
|
| @@ -357,16 +351,7 @@ TEST_F(PipelineTest, NeverInitializes) {
|
| // This test hangs during initialization by never calling
|
| // InitializationComplete(). StrictMock<> will ensure that the callback is
|
| // never executed.
|
| - pipeline_->Start(
|
| - filter_collection_.Pass(),
|
| - base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnBufferingStateChange,
|
| - base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnDurationChange,
|
| - base::Unretained(&callbacks_)));
|
| + StartPipeline();
|
| message_loop_.RunUntilIdle();
|
|
|
| // Because our callback will get executed when the test tears down, we'll
|
| @@ -390,17 +375,7 @@ TEST_F(PipelineTest, StartThenStopImmediately) {
|
| .WillOnce(RunClosure<0>());
|
|
|
| EXPECT_CALL(callbacks_, OnStart(_));
|
| -
|
| - pipeline_->Start(
|
| - filter_collection_.Pass(),
|
| - base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnBufferingStateChange,
|
| - base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnDurationChange,
|
| - base::Unretained(&callbacks_)));
|
| + StartPipeline();
|
|
|
| // Expect a stop callback if we were started.
|
| ExpectPipelineStopAndDestroyPipeline();
|
| @@ -417,7 +392,7 @@ TEST_F(PipelineTest, DemuxerErrorDuringStop) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(DoAll(InvokeWithoutArgs(this, &PipelineTest::OnDemuxerError),
|
| @@ -435,7 +410,7 @@ TEST_F(PipelineTest, URLNotFound) {
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(RunClosure<0>());
|
|
|
| - StartPipeline(PIPELINE_ERROR_URL_NOT_FOUND);
|
| + StartPipelineAndExpect(PIPELINE_ERROR_URL_NOT_FOUND);
|
| }
|
|
|
| TEST_F(PipelineTest, NoStreams) {
|
| @@ -444,7 +419,7 @@ TEST_F(PipelineTest, NoStreams) {
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(RunClosure<0>());
|
|
|
| - StartPipeline(PIPELINE_ERROR_COULD_NOT_RENDER);
|
| + StartPipelineAndExpect(PIPELINE_ERROR_COULD_NOT_RENDER);
|
| }
|
|
|
| TEST_F(PipelineTest, AudioStream) {
|
| @@ -455,7 +430,7 @@ TEST_F(PipelineTest, AudioStream) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_FALSE(metadata_.has_video);
|
| }
|
| @@ -468,7 +443,7 @@ TEST_F(PipelineTest, VideoStream) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_FALSE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
| }
|
| @@ -483,7 +458,7 @@ TEST_F(PipelineTest, AudioVideoStream) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
| }
|
| @@ -497,7 +472,7 @@ TEST_F(PipelineTest, VideoTextStream) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_FALSE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
|
|
| @@ -515,7 +490,7 @@ TEST_F(PipelineTest, VideoAudioTextStream) {
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
|
|
| @@ -534,7 +509,7 @@ TEST_F(PipelineTest, Seek) {
|
| SetRendererExpectations();
|
|
|
| // Initialize then seek!
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| // Every filter should receive a call to Seek().
|
| base::TimeDelta expected = base::TimeDelta::FromSeconds(2000);
|
| @@ -551,7 +526,7 @@ TEST_F(PipelineTest, SeekAfterError) {
|
| SetRendererExpectations();
|
|
|
| // Initialize then seek!
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(RunClosure<0>());
|
| @@ -580,7 +555,7 @@ TEST_F(PipelineTest, SetVolume) {
|
| EXPECT_CALL(*renderer_, SetVolume(expected));
|
|
|
| // Initialize then set volume!
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| pipeline_->SetVolume(expected);
|
| }
|
|
|
| @@ -593,7 +568,7 @@ TEST_F(PipelineTest, Properties) {
|
| SetDemuxerExpectations(&streams, kDuration);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
| EXPECT_EQ(kDuration.ToInternalValue(),
|
| pipeline_->GetMediaDuration().ToInternalValue());
|
| EXPECT_FALSE(pipeline_->DidLoadingProgress());
|
| @@ -608,7 +583,7 @@ TEST_F(PipelineTest, GetBufferedTimeRanges) {
|
| SetDemuxerExpectations(&streams, kDuration);
|
| SetRendererExpectations();
|
|
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size());
|
|
|
| @@ -637,7 +612,7 @@ TEST_F(PipelineTest, EndedCallback) {
|
|
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| AddTextStream();
|
|
|
| @@ -657,7 +632,7 @@ TEST_F(PipelineTest, ErrorDuringSeek) {
|
|
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| float playback_rate = 1.0f;
|
| EXPECT_CALL(*renderer_, SetPlaybackRate(playback_rate));
|
| @@ -709,7 +684,7 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) {
|
|
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| // Trigger additional requests on the pipeline during tear down from error.
|
| base::Callback<void(PipelineStatus)> cb = base::Bind(
|
| @@ -743,7 +718,7 @@ TEST_F(PipelineTest, DestroyAfterStop) {
|
| streams.push_back(audio_stream());
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| ExpectDemuxerStop();
|
|
|
| @@ -762,7 +737,7 @@ TEST_F(PipelineTest, Underflow) {
|
|
|
| SetDemuxerExpectations(&streams);
|
| SetRendererExpectations();
|
| - StartPipeline(PIPELINE_OK);
|
| + StartPipelineAndExpect(PIPELINE_OK);
|
|
|
| // Simulate underflow.
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| @@ -822,16 +797,7 @@ class PipelineTeardownTest : public PipelineTest {
|
| SetInitializeExpectations(state, stop_or_error);
|
|
|
| EXPECT_CALL(callbacks_, OnStart(expected_status));
|
| - pipeline_->Start(
|
| - filter_collection_.Pass(),
|
| - base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnBufferingStateChange,
|
| - base::Unretained(&callbacks_)),
|
| - base::Bind(&CallbackHelper::OnDurationChange,
|
| - base::Unretained(&callbacks_)));
|
| + StartPipeline();
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
|
|