Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1161)

Unified Diff: media/blink/buffered_data_source_unittest.cc

Issue 1815893002: Merge M50: "Disable "pause-and-buffer" on Android, cancel suspended players." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2661
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/blink/buffered_data_source.cc ('k') | media/blink/multibuffer_data_source.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 cea05b88e9166965313b3e048b253547b9696199..6063c8cc512e61056b4e406872470500fe6eb39f 100644
--- a/media/blink/buffered_data_source_unittest.cc
+++ b/media/blink/buffered_data_source_unittest.cc
@@ -999,7 +999,7 @@ TEST_F(BufferedDataSourceTest, ExternalResource_Response206_CancelAfterDefer) {
EXPECT_TRUE(loader()->range_supported());
EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy());
- data_source_->OnBufferingHaveEnough();
+ data_source_->OnBufferingHaveEnough(false);
ASSERT_TRUE(active_loader());
@@ -1012,4 +1012,41 @@ TEST_F(BufferedDataSourceTest, ExternalResource_Response206_CancelAfterDefer) {
EXPECT_FALSE(active_loader());
}
+TEST_F(BufferedDataSourceTest, ExternalResource_Response206_CancelAfterPlay) {
+ 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());
+
+ // Marking the media as playing should prevent deferral. It also switches the
+ // data source into kCapacityDefer.
+ data_source_->MediaIsPlaying();
+ data_source_->OnBufferingHaveEnough(false);
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+ ASSERT_TRUE(active_loader());
+
+ // Read a bit from the beginning and ensure deferral hasn't happened yet.
+ ReadAt(0);
+ EXPECT_CALL(*this, ReadCallback(kDataSize));
+ EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1));
+ ReceiveData(kDataSize);
+ ASSERT_TRUE(active_loader());
+ ASSERT_FALSE(active_loader()->deferred());
+ data_source_->OnBufferingHaveEnough(true);
+
+ // 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()) {
+ ReceiveData(kDataSize);
+ bytes_received += kDataSize;
+ }
+ EXPECT_GT(bytes_received, 0);
+ EXPECT_LT(bytes_received + kDataSize, kFileSize);
+ EXPECT_FALSE(active_loader());
+}
+
} // namespace media
« no previous file with comments | « media/blink/buffered_data_source.cc ('k') | media/blink/multibuffer_data_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698