| Index: media/base/pipeline_impl_unittest.cc
|
| ===================================================================
|
| --- media/base/pipeline_impl_unittest.cc (revision 9872)
|
| +++ media/base/pipeline_impl_unittest.cc (working copy)
|
| @@ -24,13 +24,33 @@
|
| using media::MockAudioRenderer;
|
| using media::MockDataSource;
|
| using media::MockDemuxer;
|
| +using media::MockFilterConfig;
|
| +using media::MockVideoDecoder;
|
| +using media::MockVideoRenderer;
|
| using media::PipelineImpl;
|
|
|
| +namespace {
|
| +
|
| +void AddAllMockFilters(FilterFactoryCollection* factories,
|
| + const MockFilterConfig* config) {
|
| + factories->AddFactory(MockDataSource::CreateFactory(config));
|
| + factories->AddFactory(MockDemuxer::CreateFactory(config));
|
| + factories->AddFactory(MockAudioDecoder::CreateFactory(config));
|
| + factories->AddFactory(MockAudioRenderer::CreateFactory(config));
|
| + factories->AddFactory(MockVideoDecoder::CreateFactory(config));
|
| + factories->AddFactory(MockVideoRenderer::CreateFactory(config));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +// TODO(ralphl): Get rid of single character variable names in these tests.
|
| TEST(PipelineImplTest, Initialization) {
|
| std::string u("");
|
| PipelineImpl p;
|
| InitializationHelper h;
|
| - h.Start(&p, MockDataSource::CreateFactory(media::MOCK_FILTER_NEVER_INIT), u);
|
| + MockFilterConfig config;
|
| + config.data_source_behavior = media::MOCK_DATA_SOURCE_NEVER_INIT;
|
| + h.Start(&p, MockDataSource::CreateFactory(&config), u);
|
| h.TimedWait(base::TimeDelta::FromMilliseconds(300));
|
| EXPECT_TRUE(h.waiting_for_callback());
|
| EXPECT_FALSE(p.IsInitialized());
|
| @@ -40,23 +60,32 @@
|
| EXPECT_FALSE(h.callback_success_status());
|
| EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
|
|
|
| - h.Start(&p, MockDataSource::CreateFactory(media::MOCK_FILTER_TASK_INIT), u);
|
| + config.data_source_behavior = media::MOCK_DATA_SOURCE_TASK_INIT;
|
| + h.Start(&p, MockDataSource::CreateFactory(&config), u);
|
| h.TimedWait(base::TimeDelta::FromSeconds(5));
|
| EXPECT_FALSE(h.waiting_for_callback());
|
| EXPECT_FALSE(h.callback_success_status());
|
| EXPECT_FALSE(p.IsInitialized());
|
| EXPECT_FALSE(media::PIPELINE_OK == p.GetError());
|
| p.Stop();
|
| +
|
| + config.data_source_behavior = media::MOCK_DATA_SOURCE_ERROR_IN_INIT;
|
| + h.Start(&p, MockDataSource::CreateFactory(&config), u);
|
| + h.TimedWait(base::TimeDelta::FromSeconds(5));
|
| + EXPECT_FALSE(h.waiting_for_callback());
|
| + EXPECT_FALSE(h.callback_success_status());
|
| + EXPECT_FALSE(p.IsInitialized());
|
| + EXPECT_FALSE(media::PIPELINE_OK == p.GetError());
|
| + p.Stop();
|
| }
|
|
|
| -TEST(PipelineImplTest, FullMockPipeline) {
|
| +TEST(PipelineImplTest, MockAudioPipeline) {
|
| std::string url("");
|
| PipelineImpl p;
|
| + MockFilterConfig config;
|
| + config.set_no_video();
|
| scoped_refptr<FilterFactoryCollection> c = new FilterFactoryCollection();
|
| - c->AddFactory(MockDataSource::CreateFactory(media::MOCK_FILTER_NORMAL_INIT));
|
| - c->AddFactory(MockDemuxer::CreateFactory());
|
| - c->AddFactory(MockAudioDecoder::CreateFactory());
|
| - c->AddFactory(MockAudioRenderer::CreateFactory());
|
| + AddAllMockFilters(c, &config);
|
| InitializationHelper h;
|
| h.Start(&p, c, url);
|
| h.TimedWait(base::TimeDelta::FromSeconds(5));
|
| @@ -64,8 +93,36 @@
|
| EXPECT_TRUE(h.callback_success_status());
|
| EXPECT_TRUE(p.IsInitialized());
|
| EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
|
| + size_t width, height;
|
| + p.GetVideoSize(&width, &height);
|
| + EXPECT_EQ(0u, width);
|
| + EXPECT_EQ(0u, height);
|
| p.SetPlaybackRate(1.0f);
|
| p.SetVolume(0.5f);
|
| p.Stop();
|
| EXPECT_FALSE(p.IsInitialized());
|
| }
|
| +
|
| +TEST(PipelineImplTest, MockVideoPipeline) {
|
| + std::string url("");
|
| + PipelineImpl p;
|
| + scoped_refptr<FilterFactoryCollection> c = new FilterFactoryCollection();
|
| + MockFilterConfig config;
|
| + AddAllMockFilters(c, &config);
|
| + InitializationHelper h;
|
| + h.Start(&p, c, url);
|
| + h.TimedWait(base::TimeDelta::FromSeconds(5));
|
| + EXPECT_FALSE(h.waiting_for_callback());
|
| + EXPECT_TRUE(h.callback_success_status());
|
| + EXPECT_TRUE(p.IsInitialized());
|
| + EXPECT_TRUE(media::PIPELINE_OK == p.GetError());
|
| + size_t width, height;
|
| + p.GetVideoSize(&width, &height);
|
| + EXPECT_EQ(config.video_width, width);
|
| + EXPECT_EQ(config.video_height, height);
|
| + p.SetPlaybackRate(1.0f);
|
| + p.SetVolume(0.5f);
|
| + p.Stop();
|
| + EXPECT_FALSE(p.IsInitialized());
|
| +}
|
| +
|
|
|