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 af2cd92528527c8175c1192a5619717908838ebc..1b541646ddf92759fa772a5c2cbc7fe034dc647a 100644 |
| --- a/media/filters/ffmpeg_demuxer_unittest.cc |
| +++ b/media/filters/ffmpeg_demuxer_unittest.cc |
| @@ -58,7 +58,7 @@ static void EosOnReadDone(bool* got_eos_buffer, |
| // FFmpeg, pipeline and filter host mocks. |
| class FFmpegDemuxerTest : public testing::Test { |
| protected: |
| - FFmpegDemuxerTest() {} |
| + FFmpegDemuxerTest() : need_key_called_(0) {} |
| virtual ~FFmpegDemuxerTest() { |
| if (demuxer_) { |
| @@ -77,8 +77,12 @@ class FFmpegDemuxerTest : public testing::Test { |
| EXPECT_CALL(host_, AddBufferedTimeRange(_, _)).Times(AnyNumber()); |
| CreateDataSource(name); |
| + |
| + media::FFmpegNeedKeyCB need_key_cb = |
| + base::Bind(&FFmpegDemuxerTest::NeedKeyCB, base::Unretained(this)); |
| demuxer_ = new FFmpegDemuxer(message_loop_.message_loop_proxy(), |
| - data_source_); |
| + data_source_, |
| + need_key_cb); |
| } |
| MOCK_METHOD1(CheckPoint, void(int v)); |
| @@ -137,6 +141,7 @@ class FFmpegDemuxerTest : public testing::Test { |
| scoped_refptr<FFmpegDemuxer> demuxer_; |
| StrictMock<MockDemuxerHost> host_; |
| MessageLoop message_loop_; |
| + int need_key_called_; |
| AVFormatContext* format_context() { |
| return demuxer_->glue_->format_context(); |
| @@ -173,6 +178,11 @@ class FFmpegDemuxerTest : public testing::Test { |
| EXPECT_TRUE(data_source_->Initialize(file_path)); |
| } |
| + void NeedKeyCB(const std::string& type, |
|
ddorwin
2013/03/13 18:07:24
MOCK_METHOD...
fgalligan1
2013/03/13 19:05:26
Done.
|
| + scoped_array<uint8> init_data, int init_data_size) { |
| + need_key_called_++; |
| + } |
| + |
| DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerTest); |
| }; |
| @@ -281,6 +291,17 @@ TEST_F(FFmpegDemuxerTest, Initialize_Multitrack) { |
| EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::UNKNOWN)); |
| } |
| +// TODO(fgalligan): Enable test when code to parse encrypted WebM files lands |
| +// in Chromium's FFmpeg. crbug.com/189221 |
| +TEST_F(FFmpegDemuxerTest, DISABLED_Initialize_Encrypted) { |
| + CreateDemuxer("bear-320x240-av_enc-av.webm"); |
| + InitializeDemuxer(); |
| + |
| + // NeedKey callback should have been called twice. Once for each encrypted |
| + // stream. |
| + EXPECT_EQ(2, need_key_called_); |
|
ddorwin
2013/03/13 18:07:24
This is what mocks do well. Since this tests alrea
fgalligan1
2013/03/13 19:05:26
Done.
|
| +} |
| + |
| TEST_F(FFmpegDemuxerTest, Read_Audio) { |
| // We test that on a successful audio packet read. |
| CreateDemuxer("bear-320x240.webm"); |