Chromium Code Reviews| Index: media/blink/multibuffer_data_source_unittest.cc |
| diff --git a/media/blink/multibuffer_data_source_unittest.cc b/media/blink/multibuffer_data_source_unittest.cc |
| index a52700cde0ceba8f351ce6da8ba000f60cee7026..bd8112ebc238b08b3c9530dd9d7126f889ed0c78 100644 |
| --- a/media/blink/multibuffer_data_source_unittest.cc |
| +++ b/media/blink/multibuffer_data_source_unittest.cc |
| @@ -1203,7 +1203,7 @@ TEST_F(MultibufferDataSourceTest, |
| ReadAt(kDataSize); |
| - data_source_->OnBufferingHaveEnough(); |
| + data_source_->OnBufferingHaveEnough(false); |
| ASSERT_TRUE(active_loader()); |
| EXPECT_CALL(*this, ReadCallback(kDataSize)); |
| @@ -1213,6 +1213,47 @@ TEST_F(MultibufferDataSourceTest, |
| EXPECT_FALSE(active_loader_allownull()); |
| } |
| +TEST_F(MultibufferDataSourceTest, |
| + ExternalResource_Response206_CancelAfterPlay) { |
| + set_preload(BufferedDataSource::METADATA); |
| + InitializeWith206Response(); |
| + |
| + EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| + EXPECT_FALSE(is_local_source()); |
| + |
| + EXPECT_TRUE(data_source_->range_supported()); |
| + CheckReadThenDefer(); |
| + |
| + ReadAt(kDataSize); |
| + |
| + // Marking the media as playing should prevent deferral. It also tells the |
| + // data source to start buffering beyond the initial load. |
| + data_source_->MediaIsPlaying(); |
| + data_source_->OnBufferingHaveEnough(false); |
| + CheckCapacityDefer(); |
| + ASSERT_TRUE(active_loader()); |
| + |
| + // Read a bit from the beginning and ensure deferral hasn't happened yet. |
| + EXPECT_CALL(*this, ReadCallback(kDataSize)); |
| + EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize * 2)); |
| + ReceiveData(kDataSize); |
| + ASSERT_TRUE(active_loader()); |
| + data_source_->OnBufferingHaveEnough(true); |
| + ASSERT_TRUE(active_loader()); |
| + ASSERT_FALSE(active_loader()->deferred()); |
| + |
| + // Deliver data until capacity is reached and verify deferral. |
| + int bytes_received = 0; |
| + EXPECT_CALL(host_, AddBufferedByteRange(_, _)).Times(testing::AtLeast(1)); |
| + while (active_loader() && !active_loader()->deferred()) { |
|
hubbe
2016/03/14 23:16:05
You probably want active_loader_allownull() here.
DaleCurtis
2016/03/14 23:24:38
Thanks! That was the issue. True, unfortunately CH
|
| + ReceiveData(kDataSize); |
| + bytes_received += kDataSize; |
| + } |
| + EXPECT_GT(bytes_received, 0); |
| + EXPECT_LT(bytes_received + kDataSize, kFileSize); |
| + EXPECT_FALSE(active_loader_allownull()); |
| +} |
| + |
| TEST_F(MultibufferDataSourceTest, SeekPastEOF) { |
| GURL gurl(kHttpUrl); |
| data_source_.reset(new MockMultibufferDataSource( |