Index: media/blink/buffered_data_source_unittest.cc |
diff --git a/media/blink/buffered_data_source_unittest.cc b/media/blink/buffered_data_source_unittest.cc |
index 688a7a0e1611364b44925eca5d20e84126c24d8b..eed8674dc14bea5a80cd1a3e7adf7bb832590c77 100644 |
--- a/media/blink/buffered_data_source_unittest.cc |
+++ b/media/blink/buffered_data_source_unittest.cc |
@@ -223,6 +223,7 @@ class BufferedDataSourceTest : public testing::Test { |
BufferedResourceLoader* loader() { |
return data_source_->loader_.get(); |
} |
+ ActiveLoader* active_loader() { return loader()->active_loader_.get(); } |
WebURLLoader* url_loader() { |
return loader()->active_loader_->loader_.get(); |
} |
@@ -807,4 +808,45 @@ TEST_F(BufferedDataSourceTest, |
Stop(); |
} |
+TEST_F(BufferedDataSourceTest, ExternalResource_Response206_VerifyDefer) { |
+ set_preload(BufferedDataSource::METADATA); |
+ InitializeWith206Response(); |
+ |
+ EXPECT_EQ(BufferedDataSource::METADATA, preload()); |
+ EXPECT_FALSE(is_local_source()); |
+ EXPECT_TRUE(loader()->range_supported()); |
+ EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy()); |
+ |
+ // Read a bit from the beginning. |
+ ReadAt(0); |
+ EXPECT_CALL(*this, ReadCallback(kDataSize)); |
+ EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); |
+ ReceiveData(kDataSize); |
+ |
+ ASSERT_TRUE(active_loader()); |
+ EXPECT_TRUE(active_loader()->deferred()); |
+} |
+ |
+TEST_F(BufferedDataSourceTest, ExternalResource_Response206_CancelAfterDefer) { |
+ set_preload(BufferedDataSource::METADATA); |
+ InitializeWith206Response(); |
+ |
+ EXPECT_EQ(BufferedDataSource::METADATA, preload()); |
+ EXPECT_FALSE(is_local_source()); |
+ EXPECT_TRUE(loader()->range_supported()); |
+ EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy()); |
+ |
+ data_source_->OnBufferingHaveEnough(); |
+ |
+ ASSERT_TRUE(active_loader()); |
+ |
+ // Read a bit from the beginning. |
+ ReadAt(0); |
+ EXPECT_CALL(*this, ReadCallback(kDataSize)); |
+ EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); |
+ ReceiveData(kDataSize); |
+ |
+ EXPECT_FALSE(active_loader()); |
+} |
+ |
} // namespace media |