| Index: media/formats/webm/webm_stream_parser_unittest.cc
|
| diff --git a/media/formats/webm/webm_stream_parser_unittest.cc b/media/formats/webm/webm_stream_parser_unittest.cc
|
| index 0386e8fb06125cc368a1664c3764bba8c4548d19..6f497166ed1037834773d70bb4cf1827700a9a28 100644
|
| --- a/media/formats/webm/webm_stream_parser_unittest.cc
|
| +++ b/media/formats/webm/webm_stream_parser_unittest.cc
|
| @@ -6,11 +6,13 @@
|
| #include "media/base/decoder_buffer.h"
|
| #include "media/base/media_tracks.h"
|
| #include "media/base/mock_media_log.h"
|
| +#include "media/base/stream_parser.h"
|
| #include "media/base/test_data_util.h"
|
| #include "media/base/text_track_config.h"
|
| #include "media/formats/webm/webm_stream_parser.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +using testing::SaveArg;
|
| using testing::_;
|
|
|
| namespace media {
|
| @@ -18,7 +20,8 @@ namespace media {
|
| class WebMStreamParserTest : public testing::Test {
|
| public:
|
| WebMStreamParserTest()
|
| - : media_log_(new testing::StrictMock<MockMediaLog>()) {}
|
| + : media_log_(new testing::StrictMock<MockMediaLog>()),
|
| + params_(base::TimeDelta()) {}
|
|
|
| protected:
|
| void ParseWebMFile(const std::string& filename) {
|
| @@ -28,7 +31,7 @@ class WebMStreamParserTest : public testing::Test {
|
| base::Bind(&WebMStreamParserTest::OnEncryptedMediaInitData,
|
| base::Unretained(this));
|
|
|
| - EXPECT_CALL(*this, InitCB(_));
|
| + EXPECT_CALL(*this, InitCB(_)).WillOnce(SaveArg<0>(¶ms_));
|
| EXPECT_CALL(*this, NewMediaSegmentCB()).Times(testing::AnyNumber());
|
| EXPECT_CALL(*this, EndMediaSegmentCB()).Times(testing::AnyNumber());
|
| EXPECT_CALL(*this, NewBuffersCB(_, _, _))
|
| @@ -38,7 +41,7 @@ class WebMStreamParserTest : public testing::Test {
|
| base::Bind(&WebMStreamParserTest::InitCB, base::Unretained(this)),
|
| base::Bind(&WebMStreamParserTest::NewConfigCB, base::Unretained(this)),
|
| base::Bind(&WebMStreamParserTest::NewBuffersCB, base::Unretained(this)),
|
| - true, // ignore_text_track
|
| + false, // don't ignore_text_track
|
| encrypted_media_init_data_cb,
|
| base::Bind(&WebMStreamParserTest::NewMediaSegmentCB,
|
| base::Unretained(this)),
|
| @@ -71,6 +74,7 @@ class WebMStreamParserTest : public testing::Test {
|
| scoped_refptr<testing::StrictMock<MockMediaLog>> media_log_;
|
| scoped_ptr<WebMStreamParser> parser_;
|
| scoped_ptr<MediaTracks> media_tracks_;
|
| + StreamParser::InitParameters params_;
|
| };
|
|
|
| TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) {
|
| @@ -96,4 +100,36 @@ TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) {
|
| EXPECT_EQ(audio_track.language(), "und");
|
| }
|
|
|
| +TEST_F(WebMStreamParserTest, VerifyDetectedTrack_AudioOnly) {
|
| + EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration"))
|
| + .Times(testing::AnyNumber());
|
| + ParseWebMFile("bear-320x240-audio-only.webm");
|
| + EXPECT_EQ(media_tracks_->tracks().size(), 1u);
|
| + EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Audio);
|
| + EXPECT_EQ(params_.detected_audio_track_count, 1);
|
| + EXPECT_EQ(params_.detected_video_track_count, 0);
|
| + EXPECT_EQ(params_.detected_text_track_count, 0);
|
| +}
|
| +
|
| +TEST_F(WebMStreamParserTest, VerifyDetectedTrack_VideoOnly) {
|
| + ParseWebMFile("bear-320x240-video-only.webm");
|
| + EXPECT_EQ(media_tracks_->tracks().size(), 1u);
|
| + EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Video);
|
| + EXPECT_EQ(params_.detected_audio_track_count, 0);
|
| + EXPECT_EQ(params_.detected_video_track_count, 1);
|
| + EXPECT_EQ(params_.detected_text_track_count, 0);
|
| +}
|
| +
|
| +TEST_F(WebMStreamParserTest, VerifyDetectedTracks_AVText) {
|
| + EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration"))
|
| + .Times(testing::AnyNumber());
|
| + ParseWebMFile("bear-vp8-webvtt.webm");
|
| + EXPECT_EQ(media_tracks_->tracks().size(), 2u);
|
| + EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Video);
|
| + EXPECT_EQ(media_tracks_->tracks()[1]->type(), MediaTrack::Audio);
|
| + EXPECT_EQ(params_.detected_audio_track_count, 1);
|
| + EXPECT_EQ(params_.detected_video_track_count, 1);
|
| + EXPECT_EQ(params_.detected_text_track_count, 1);
|
| +}
|
| +
|
| } // namespace media
|
|
|