| Index: media/filters/fake_demuxer_stream_unittest.cc
|
| diff --git a/media/filters/fake_demuxer_stream_unittest.cc b/media/filters/fake_demuxer_stream_unittest.cc
|
| index 6ce8b39b10ae6036abac05c98e054afefb8c72dd..ced749623cfdd92a3602b9b408d1114c9582a878 100644
|
| --- a/media/filters/fake_demuxer_stream_unittest.cc
|
| +++ b/media/filters/fake_demuxer_stream_unittest.cc
|
| @@ -13,9 +13,9 @@
|
|
|
| namespace media {
|
|
|
| -static const int kNumBuffersInOneConfig = 9;
|
| -static const int kNumBuffersToReadFirst = 5;
|
| -static const int kNumConfigs = 3;
|
| +const int kNumBuffersInOneConfig = 9;
|
| +const int kNumBuffersToReadFirst = 5;
|
| +const int kNumConfigs = 3;
|
| COMPILE_ASSERT(kNumBuffersToReadFirst < kNumBuffersInOneConfig,
|
| do_not_read_too_many_buffers);
|
| COMPILE_ASSERT(kNumConfigs > 0, need_multiple_configs_to_trigger_config_change);
|
| @@ -24,7 +24,8 @@ class FakeDemuxerStreamTest : public testing::Test {
|
| public:
|
| FakeDemuxerStreamTest()
|
| : status_(DemuxerStream::kAborted),
|
| - read_pending_(false) {}
|
| + read_pending_(false),
|
| + num_buffers_received_(0) {}
|
| virtual ~FakeDemuxerStreamTest() {}
|
|
|
| void BufferReady(DemuxerStream::Status status,
|
| @@ -33,6 +34,8 @@ class FakeDemuxerStreamTest : public testing::Test {
|
| read_pending_ = false;
|
| status_ = status;
|
| buffer_ = buffer;
|
| + if (status == DemuxerStream::kOk && !buffer->end_of_stream())
|
| + num_buffers_received_++;
|
| }
|
|
|
| enum ReadResult {
|
| @@ -48,12 +51,14 @@ class FakeDemuxerStreamTest : public testing::Test {
|
| new FakeDemuxerStream(kNumConfigs, kNumBuffersInOneConfig, false));
|
| for (int i = 0; i < kNumBuffersToReadFirst; ++i)
|
| ReadAndExpect(OK);
|
| + DCHECK_EQ(kNumBuffersToReadFirst, num_buffers_received_);
|
| }
|
|
|
| void EnterBeforeEOSState() {
|
| stream_.reset(new FakeDemuxerStream(1, kNumBuffersInOneConfig, false));
|
| for (int i = 0; i < kNumBuffersInOneConfig; ++i)
|
| ReadAndExpect(OK);
|
| + DCHECK_EQ(kNumBuffersInOneConfig, num_buffers_received_);
|
| }
|
|
|
| void ExpectReadResult(ReadResult result) {
|
| @@ -128,23 +133,12 @@ class FakeDemuxerStreamTest : public testing::Test {
|
| ExpectReadResult(ABORTED);
|
| }
|
|
|
| - void TestRead(int num_configs,
|
| - int num_buffers_in_one_config,
|
| - bool is_encrypted) {
|
| - stream_.reset(new FakeDemuxerStream(
|
| - num_configs, num_buffers_in_one_config, is_encrypted));
|
| -
|
| - int num_buffers_received = 0;
|
| -
|
| - const VideoDecoderConfig& config = stream_->video_decoder_config();
|
| - EXPECT_TRUE(config.IsValidConfig());
|
| - EXPECT_EQ(is_encrypted, config.is_encrypted());
|
| -
|
| + void ReadAllBuffers(int num_configs, int num_buffers_in_one_config) {
|
| + DCHECK_EQ(0, num_buffers_received_);
|
| for (int i = 0; i < num_configs; ++i) {
|
| for (int j = 0; j < num_buffers_in_one_config; ++j) {
|
| ReadAndExpect(OK);
|
| - num_buffers_received++;
|
| - EXPECT_EQ(num_buffers_received, stream_->num_buffers_returned());
|
| + EXPECT_EQ(num_buffers_received_, stream_->num_buffers_returned());
|
| }
|
|
|
| if (i == num_configs - 1)
|
| @@ -156,7 +150,20 @@ class FakeDemuxerStreamTest : public testing::Test {
|
| // Will always get EOS after we hit EOS.
|
| ReadAndExpect(EOS);
|
|
|
| - EXPECT_EQ(num_configs * num_buffers_in_one_config, num_buffers_received);
|
| + EXPECT_EQ(num_configs * num_buffers_in_one_config, num_buffers_received_);
|
| + }
|
| +
|
| + void TestRead(int num_configs,
|
| + int num_buffers_in_one_config,
|
| + bool is_encrypted) {
|
| + stream_.reset(new FakeDemuxerStream(
|
| + num_configs, num_buffers_in_one_config, is_encrypted));
|
| +
|
| + const VideoDecoderConfig& config = stream_->video_decoder_config();
|
| + EXPECT_TRUE(config.IsValidConfig());
|
| + EXPECT_EQ(is_encrypted, config.is_encrypted());
|
| +
|
| + ReadAllBuffers(num_configs, num_buffers_in_one_config);
|
| }
|
|
|
| base::MessageLoop message_loop_;
|
| @@ -254,4 +261,25 @@ TEST_F(FakeDemuxerStreamTest, NoConfigChanges) {
|
| ReadAndExpect(EOS);
|
| }
|
|
|
| +TEST_F(FakeDemuxerStreamTest, SeekToStart_Normal) {
|
| + EnterNormalReadState();
|
| + stream_->SeekToStart();
|
| + num_buffers_received_ = 0;
|
| + ReadAllBuffers(kNumConfigs, kNumBuffersInOneConfig);
|
| +}
|
| +
|
| +TEST_F(FakeDemuxerStreamTest, SeekToStart_BeforeEOS) {
|
| + EnterBeforeEOSState();
|
| + stream_->SeekToStart();
|
| + num_buffers_received_ = 0;
|
| + ReadAllBuffers(1, kNumBuffersInOneConfig);
|
| +}
|
| +
|
| +TEST_F(FakeDemuxerStreamTest, SeekToStart_AfterEOS) {
|
| + TestRead(3, 5, false);
|
| + stream_->SeekToStart();
|
| + num_buffers_received_ = 0;
|
| + ReadAllBuffers(3, 5);
|
| +}
|
| +
|
| } // namespace media
|
|
|