Chromium Code Reviews| Index: media/filters/ffmpeg_demuxer_unittest.cc |
| diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc |
| index 2c468942ddf90fc0e46dcc50471d7a1e8dcacc39..dfdc1fa5cd19033aaabdb1caab094a103adb03c8 100644 |
| --- a/media/filters/ffmpeg_demuxer_unittest.cc |
| +++ b/media/filters/ffmpeg_demuxer_unittest.cc |
| @@ -491,18 +491,31 @@ TEST_F(FFmpegDemuxerTest, DisableAudioStream) { |
| ASSERT_TRUE(video); |
| ASSERT_TRUE(audio); |
| - // Attempt a read from the video stream and run the message loop until done. |
| + // Attempt a read from the video stream: it should return valid data. |
| scoped_refptr<DemuxerStreamReader> reader(new DemuxerStreamReader()); |
| reader->Read(video); |
| message_loop_.RunAllPending(); |
| - EXPECT_TRUE(reader->called()); |
| + ASSERT_TRUE(reader->called()); |
| ValidateBuffer(FROM_HERE, reader->buffer(), 22084, 0); |
| + // We should have read a little bit into the file. |
| + int64 position = 0; |
| + int64 size = 0; |
| + EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| + EXPECT_TRUE(demuxer_->GetSize(&size)); |
| + EXPECT_LT(position, size); |
| + |
| + // Attempt a read from the audio stream: it should immediately return end of |
| + // stream without requiring the message loop to read data. |
| reader->Reset(); |
| reader->Read(audio); |
| - message_loop_.RunAllPending(); |
| - EXPECT_TRUE(reader->called()); |
| + ASSERT_TRUE(reader->called()); |
| EXPECT_TRUE(reader->buffer()->IsEndOfStream()); |
| + |
| + // As a sanity check, verify that while we're getting end of stream packets |
| + // we aren't at the end of the file. |
| + EXPECT_TRUE(demuxer_->GetPosition(&position)); |
|
acolwell GONE FROM CHROMIUM
2011/12/13 16:45:44
This feels fragile & too indirect. What about just
scherkus (not reviewing)
2011/12/13 17:24:56
I'll give it a shot.
|
| + EXPECT_LT(position, size); |
| } |
| class MockFFmpegDemuxer : public FFmpegDemuxer { |