Index: media/base/pipeline_unittest.cc |
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc |
index 41d670458b466e9662aa318b0e534278cca71bfc..e259a827ef22db80621fd85fbef918afe16736a8 100644 |
--- a/media/base/pipeline_unittest.cc |
+++ b/media/base/pipeline_unittest.cc |
@@ -105,8 +105,8 @@ class PipelineTest : public ::testing::Test { |
scoped_ptr<TextRenderer> text_renderer(text_renderer_); |
filter_collection_->SetTextRenderer(text_renderer.Pass()); |
- // InitializeDemuxer() adds overriding expectations for expected non-NULL |
- // streams. |
+ // SetDemuxerExpectations() adds overriding expectations for expected |
+ // non-NULL streams. |
DemuxerStream* null_pointer = NULL; |
EXPECT_CALL(*demuxer_, GetStream(_)) |
.WillRepeatedly(Return(null_pointer)); |
@@ -141,8 +141,8 @@ class PipelineTest : public ::testing::Test { |
protected: |
// Sets up expectations to allow the demuxer to initialize. |
typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; |
- void InitializeDemuxer(MockDemuxerStreamVector* streams, |
- const base::TimeDelta& duration) { |
+ void SetDemuxerExpectations(MockDemuxerStreamVector* streams, |
+ const base::TimeDelta& duration) { |
EXPECT_CALL(callbacks_, OnDurationChange()); |
EXPECT_CALL(*demuxer_, Initialize(_, _, _)) |
.WillOnce(DoAll(SetDemuxerProperties(duration), |
@@ -156,9 +156,9 @@ class PipelineTest : public ::testing::Test { |
} |
} |
- void InitializeDemuxer(MockDemuxerStreamVector* streams) { |
+ void SetDemuxerExpectations(MockDemuxerStreamVector* streams) { |
// Initialize with a default non-zero duration. |
- InitializeDemuxer(streams, base::TimeDelta::FromSeconds(10)); |
+ SetDemuxerExpectations(streams, base::TimeDelta::FromSeconds(10)); |
} |
scoped_ptr<StrictMock<MockDemuxerStream> > CreateStream( |
@@ -169,17 +169,19 @@ class PipelineTest : public ::testing::Test { |
} |
// Sets up expectations to allow the video renderer to initialize. |
- void InitializeVideoRenderer(DemuxerStream* stream) { |
+ void SetVideoRendererExpectations(DemuxerStream* stream) { |
EXPECT_CALL(*video_renderer_, Initialize(stream, _, _, _, _, _, _, _, _, _)) |
.WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_), |
+ SaveArg<6>(&video_ended_cb_), |
RunCallback<2>(PIPELINE_OK))); |
} |
// Sets up expectations to allow the audio renderer to initialize. |
- void InitializeAudioRenderer(DemuxerStream* stream) { |
+ void SetAudioRendererExpectations(DemuxerStream* stream) { |
EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _)) |
.WillOnce(DoAll(SaveArg<3>(&audio_time_cb_), |
SaveArg<4>(&audio_buffering_state_cb_), |
+ SaveArg<5>(&audio_ended_cb_), |
RunCallback<1>(PIPELINE_OK))); |
} |
@@ -192,7 +194,7 @@ 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 InitializePipeline(PipelineStatus start_status) { |
+ void StartPipeline(PipelineStatus start_status) { |
EXPECT_CALL(callbacks_, OnStart(start_status)); |
if (start_status == PIPELINE_OK) { |
@@ -342,6 +344,8 @@ class PipelineTest : public ::testing::Test { |
AudioRenderer::TimeCB audio_time_cb_; |
BufferingStateCB audio_buffering_state_cb_; |
BufferingStateCB video_buffering_state_cb_; |
+ base::Closure audio_ended_cb_; |
+ base::Closure video_ended_cb_; |
VideoDecoderConfig video_decoder_config_; |
PipelineMetadata metadata_; |
@@ -408,7 +412,7 @@ TEST_F(PipelineTest, URLNotFound) { |
EXPECT_CALL(*demuxer_, Stop(_)) |
.WillOnce(RunClosure<0>()); |
- InitializePipeline(PIPELINE_ERROR_URL_NOT_FOUND); |
+ StartPipeline(PIPELINE_ERROR_URL_NOT_FOUND); |
} |
TEST_F(PipelineTest, NoStreams) { |
@@ -417,7 +421,7 @@ TEST_F(PipelineTest, NoStreams) { |
EXPECT_CALL(*demuxer_, Stop(_)) |
.WillOnce(RunClosure<0>()); |
- InitializePipeline(PIPELINE_ERROR_COULD_NOT_RENDER); |
+ StartPipeline(PIPELINE_ERROR_COULD_NOT_RENDER); |
} |
TEST_F(PipelineTest, AudioStream) { |
@@ -425,10 +429,10 @@ TEST_F(PipelineTest, AudioStream) { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_TRUE(metadata_.has_audio); |
EXPECT_FALSE(metadata_.has_video); |
} |
@@ -438,10 +442,10 @@ TEST_F(PipelineTest, VideoStream) { |
MockDemuxerStreamVector streams; |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetVideoRendererExpectations(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_FALSE(metadata_.has_audio); |
EXPECT_TRUE(metadata_.has_video); |
} |
@@ -453,11 +457,11 @@ TEST_F(PipelineTest, AudioVideoStream) { |
streams.push_back(audio_stream()); |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ SetVideoRendererExpectations(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_TRUE(metadata_.has_audio); |
EXPECT_TRUE(metadata_.has_video); |
} |
@@ -468,10 +472,10 @@ TEST_F(PipelineTest, VideoTextStream) { |
MockDemuxerStreamVector streams; |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetVideoRendererExpectations(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_FALSE(metadata_.has_audio); |
EXPECT_TRUE(metadata_.has_video); |
@@ -487,11 +491,11 @@ TEST_F(PipelineTest, VideoAudioTextStream) { |
streams.push_back(video_stream()); |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeVideoRenderer(video_stream()); |
- InitializeAudioRenderer(audio_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetVideoRendererExpectations(video_stream()); |
+ SetAudioRendererExpectations(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_TRUE(metadata_.has_audio); |
EXPECT_TRUE(metadata_.has_video); |
@@ -507,12 +511,12 @@ TEST_F(PipelineTest, Seek) { |
streams.push_back(audio_stream()); |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); |
- InitializeAudioRenderer(audio_stream()); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000)); |
+ SetAudioRendererExpectations(audio_stream()); |
+ SetVideoRendererExpectations(video_stream()); |
// Initialize then seek! |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
message_loop_.RunUntilIdle(); |
@@ -527,15 +531,15 @@ TEST_F(PipelineTest, SetVolume) { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
// The audio renderer should receive a call to SetVolume(). |
float expected = 0.5f; |
EXPECT_CALL(*audio_renderer_, SetVolume(expected)); |
// Initialize then set volume! |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
pipeline_->SetVolume(expected); |
} |
@@ -545,10 +549,10 @@ TEST_F(PipelineTest, Properties) { |
streams.push_back(video_stream()); |
const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100); |
- InitializeDemuxer(&streams, kDuration); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams, kDuration); |
+ SetVideoRendererExpectations(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_EQ(kDuration.ToInternalValue(), |
pipeline_->GetMediaDuration().ToInternalValue()); |
EXPECT_FALSE(pipeline_->DidLoadingProgress()); |
@@ -560,10 +564,10 @@ TEST_F(PipelineTest, GetBufferedTimeRanges) { |
streams.push_back(video_stream()); |
const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100); |
- InitializeDemuxer(&streams, kDuration); |
- InitializeVideoRenderer(video_stream()); |
+ SetDemuxerExpectations(&streams, kDuration); |
+ SetVideoRendererExpectations(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size()); |
@@ -590,18 +594,18 @@ TEST_F(PipelineTest, EndedCallback) { |
streams.push_back(audio_stream()); |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializeVideoRenderer(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ SetVideoRendererExpectations(video_stream()); |
+ StartPipeline(PIPELINE_OK); |
AddTextStream(); |
// The ended callback shouldn't run until all renderers have ended. |
- pipeline_->OnAudioRendererEnded(); |
+ audio_ended_cb_.Run(); |
message_loop_.RunUntilIdle(); |
- pipeline_->OnVideoRendererEnded(); |
+ video_ended_cb_.Run(); |
message_loop_.RunUntilIdle(); |
EXPECT_CALL(*audio_renderer_, StopRendering()); |
@@ -623,10 +627,10 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) { |
pipeline_->SetTimeDeltaInterpolatorForTesting( |
new TimeDeltaInterpolator(&test_tick_clock_)); |
- InitializeDemuxer(&streams, duration); |
- InitializeAudioRenderer(audio_stream()); |
- InitializeVideoRenderer(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams, duration); |
+ SetAudioRendererExpectations(audio_stream()); |
+ SetVideoRendererExpectations(video_stream()); |
+ StartPipeline(PIPELINE_OK); |
EXPECT_EQ(0, pipeline_->GetMediaTime().ToInternalValue()); |
@@ -645,7 +649,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) { |
EXPECT_EQ(pipeline_->GetMediaTime().ToInternalValue(), start_time); |
// Signal end of audio stream. |
- pipeline_->OnAudioRendererEnded(); |
+ audio_ended_cb_.Run(); |
message_loop_.RunUntilIdle(); |
// Verify that the clock advances. |
@@ -656,7 +660,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) { |
// Signal end of video stream and make sure OnEnded() callback occurs. |
EXPECT_CALL(*audio_renderer_, StopRendering()); |
EXPECT_CALL(callbacks_, OnEnded()); |
- pipeline_->OnVideoRendererEnded(); |
+ video_ended_cb_.Run(); |
} |
TEST_F(PipelineTest, ErrorDuringSeek) { |
@@ -664,9 +668,9 @@ TEST_F(PipelineTest, ErrorDuringSeek) { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ StartPipeline(PIPELINE_OK); |
float playback_rate = 1.0f; |
EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate)); |
@@ -719,9 +723,9 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ StartPipeline(PIPELINE_OK); |
// Trigger additional requests on the pipeline during tear down from error. |
base::Callback<void(PipelineStatus)> cb = base::Bind( |
@@ -763,9 +767,9 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ StartPipeline(PIPELINE_OK); |
float playback_rate = 1.0f; |
EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate)); |
@@ -821,9 +825,9 @@ TEST_F(PipelineTest, DeleteAfterStop) { |
CreateAudioStream(); |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ StartPipeline(PIPELINE_OK); |
ExpectStop(); |
@@ -839,10 +843,10 @@ TEST_F(PipelineTest, Underflow) { |
streams.push_back(audio_stream()); |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams); |
- InitializeAudioRenderer(audio_stream()); |
- InitializeVideoRenderer(video_stream()); |
- InitializePipeline(PIPELINE_OK); |
+ SetDemuxerExpectations(&streams); |
+ SetAudioRendererExpectations(audio_stream()); |
+ SetVideoRendererExpectations(video_stream()); |
+ StartPipeline(PIPELINE_OK); |
// Simulate underflow. |
EXPECT_CALL(*audio_renderer_, StopRendering()); |
@@ -944,7 +948,7 @@ class PipelineTeardownTest : public PipelineTest { |
MockDemuxerStreamVector streams; |
streams.push_back(audio_stream()); |
streams.push_back(video_stream()); |
- InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); |
+ SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000)); |
if (state == kInitAudioRenderer) { |
if (stop_or_error == kStop) { |