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()); |
+} |
+ |