Index: media/filters/ffmpeg_demuxer_unittest.cc |
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc |
index c4924934f724477c130f992db97e86bcc72fe18f..10c216238c95eaac430d085eefa81d2e3c6d84c5 100644 |
--- a/media/filters/ffmpeg_demuxer_unittest.cc |
+++ b/media/filters/ffmpeg_demuxer_unittest.cc |
@@ -72,6 +72,9 @@ class FFmpegDemuxerTest : public testing::Test { |
demuxer_->set_host(&host_); |
data_source_ = new StrictMock<MockDataSource>(); |
+ EXPECT_CALL(*data_source_, Stop(NotNull())) |
+ .WillRepeatedly(Invoke(&RunStopFilterCallback)); |
+ |
// Initialize FFmpeg fixtures. |
memset(&format_context_, 0, sizeof(format_context_)); |
memset(&input_format_, 0, sizeof(input_format_)); |
@@ -137,7 +140,8 @@ class FFmpegDemuxerTest : public testing::Test { |
base::TimeDelta::FromMicroseconds(kDurations[AV_STREAM_AUDIO]); |
EXPECT_CALL(host_, SetDuration(expected_duration)); |
- demuxer_->Initialize(data_source_.get(), NewExpectedCallback()); |
+ demuxer_->Initialize(data_source_.get(), |
+ NewExpectedStatusCallback(PIPELINE_OK)); |
message_loop_.RunAllPending(); |
} |
@@ -175,9 +179,9 @@ TEST_F(FFmpegDemuxerTest, Initialize_OpenFails) { |
// Simulate av_open_input_file() failing. |
EXPECT_CALL(mock_ffmpeg_, AVOpenInputFile(_, _, NULL, 0, NULL)) |
.WillOnce(Return(-1)); |
- EXPECT_CALL(host_, SetError(DEMUXER_ERROR_COULD_NOT_OPEN)); |
- demuxer_->Initialize(data_source_.get(), NewExpectedCallback()); |
+ demuxer_->Initialize(data_source_.get(), |
+ NewExpectedStatusCallback(DEMUXER_ERROR_COULD_NOT_OPEN)); |
message_loop_.RunAllPending(); |
} |
@@ -188,9 +192,10 @@ TEST_F(FFmpegDemuxerTest, Initialize_ParseFails) { |
EXPECT_CALL(mock_ffmpeg_, AVFindStreamInfo(&format_context_)) |
.WillOnce(Return(AVERROR_IO)); |
EXPECT_CALL(mock_ffmpeg_, AVCloseInputFile(&format_context_)); |
- EXPECT_CALL(host_, SetError(DEMUXER_ERROR_COULD_NOT_PARSE)); |
- demuxer_->Initialize(data_source_.get(), NewExpectedCallback()); |
+ demuxer_->Initialize( |
+ data_source_.get(), |
+ NewExpectedStatusCallback(DEMUXER_ERROR_COULD_NOT_PARSE)); |
message_loop_.RunAllPending(); |
} |
@@ -200,10 +205,11 @@ TEST_F(FFmpegDemuxerTest, Initialize_NoStreams) { |
SCOPED_TRACE(""); |
InitializeDemuxerMocks(); |
} |
- EXPECT_CALL(host_, SetError(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); |
format_context_.nb_streams = 0; |
- demuxer_->Initialize(data_source_.get(), NewExpectedCallback()); |
+ demuxer_->Initialize( |
+ data_source_.get(), |
+ NewExpectedStatusCallback(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); |
message_loop_.RunAllPending(); |
} |
@@ -213,11 +219,12 @@ TEST_F(FFmpegDemuxerTest, Initialize_DataStreamOnly) { |
SCOPED_TRACE(""); |
InitializeDemuxerMocks(); |
} |
- EXPECT_CALL(host_, SetError(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); |
EXPECT_EQ(format_context_.streams[0], &streams_[AV_STREAM_DATA]); |
format_context_.nb_streams = 1; |
- demuxer_->Initialize(data_source_.get(), NewExpectedCallback()); |
+ demuxer_->Initialize( |
+ data_source_.get(), |
+ NewExpectedStatusCallback(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); |
message_loop_.RunAllPending(); |
} |
@@ -553,7 +560,11 @@ TEST_F(FFmpegDemuxerTest, Stop) { |
scoped_refptr<DemuxerStream> audio = demuxer_->GetStream(DS_STREAM_AUDIO); |
ASSERT_TRUE(audio); |
- // Stop the demuxer. |
+ // Stop the demuxer, overriding the default expectation to assert that |
+ // data_source_ really is Stop()'d. |
+ EXPECT_CALL(*data_source_, Stop(_)) |
+ .WillOnce(Invoke(&RunStopFilterCallback)) |
+ .RetiresOnSaturation(); |
demuxer_->Stop(NewExpectedCallback()); |
// Expect all calls in sequence. |