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

Unified Diff: content/renderer/media/buffered_data_source_unittest.cc

Issue 302553006: Suppress pause and buffer for local resources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding tests for local, 206 and 200 repsonses Created 6 years, 7 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
Index: content/renderer/media/buffered_data_source_unittest.cc
diff --git a/content/renderer/media/buffered_data_source_unittest.cc b/content/renderer/media/buffered_data_source_unittest.cc
index 6cf7ef42b6e5114bc4a474c5ea5c46bbdb5447ea..397fa7497450490952a0f7037d2f7a0f74abe340 100644
--- a/content/renderer/media/buffered_data_source_unittest.cc
+++ b/content/renderer/media/buffered_data_source_unittest.cc
@@ -137,6 +137,14 @@ class BufferedDataSourceTest : public testing::Test {
EXPECT_EQ(data_source_->downloading(), is_http);
}
+ // Helper to initialize tests with a valid 200 response.
+ void InitializeWith200Response() {
+ Initialize(kHttpUrl, true);
+
+ EXPECT_CALL(host_, SetTotalBytes(response_generator_->content_length()));
+ Respond(response_generator_->Generate200());
+ }
+
// Helper to initialize tests with a valid 206 response.
void InitializeWith206Response() {
Initialize(kHttpUrl, true);
@@ -219,6 +227,10 @@ class BufferedDataSourceTest : public testing::Test {
int data_source_playback_rate() { return data_source_->playback_rate_; }
int loader_bitrate() { return loader()->bitrate_; }
int loader_playback_rate() { return loader()->playback_rate_; }
+ bool is_local_source() { return data_source_->assume_fully_buffered_; }
+ void set_might_be_reused_from_cache_in_future(bool value) {
amogh.bihani 2014/06/03 10:15:43 I have explained why we need it here in comments i
+ loader()->might_be_reused_from_cache_in_future_ = value;
+ }
scoped_ptr<MockBufferedDataSource> data_source_;
@@ -238,10 +250,7 @@ class BufferedDataSourceTest : public testing::Test {
};
TEST_F(BufferedDataSourceTest, Range_Supported) {
- Initialize(kHttpUrl, true);
-
- EXPECT_CALL(host_, SetTotalBytes(response_generator_->content_length()));
- Respond(response_generator_->Generate206(0));
+ InitializeWith206Response();
EXPECT_TRUE(data_source_->loading());
EXPECT_FALSE(data_source_->IsStreaming());
@@ -268,9 +277,7 @@ TEST_F(BufferedDataSourceTest, Range_NotFound) {
}
TEST_F(BufferedDataSourceTest, Range_NotSupported) {
- Initialize(kHttpUrl, true);
- EXPECT_CALL(host_, SetTotalBytes(response_generator_->content_length()));
- Respond(response_generator_->Generate200());
+ InitializeWith200Response();
EXPECT_TRUE(data_source_->loading());
EXPECT_TRUE(data_source_->IsStreaming());
@@ -669,4 +676,121 @@ TEST_F(BufferedDataSourceTest, File_FinishLoading) {
Stop();
}
+TEST_F(BufferedDataSourceTest, LocalResource_DeferStrategy) {
+ InitializeWithFileResponse();
+
+ EXPECT_EQ(AUTO, preload());
+ EXPECT_TRUE(is_local_source());
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest, LocalResource_PreloadMetadata_DeferStrategy) {
+ data_source_->SetPreload(METADATA);
+ InitializeWithFileResponse();
+
+ EXPECT_EQ(METADATA, preload());
+ EXPECT_TRUE(is_local_source());
+ EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest, ExternalResource_Reponse200_DeferStrategy) {
+ InitializeWith200Response();
+
+ EXPECT_EQ(AUTO, preload());
+ EXPECT_FALSE(is_local_source());
+ EXPECT_FALSE(loader()->range_supported());
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest,
+ ExternalResource_Response200_PreloadMetadata_DeferStrategy) {
+ data_source_->SetPreload(METADATA);
+ InitializeWith200Response();
+
+ EXPECT_EQ(METADATA, preload());
+ EXPECT_FALSE(is_local_source());
+ EXPECT_FALSE(loader()->range_supported());
+ EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest, ExternalResource_Reponse206_DeferStrategy) {
+ InitializeWith206Response();
+
+ EXPECT_EQ(AUTO, preload());
+ EXPECT_FALSE(is_local_source());
+ EXPECT_TRUE(loader()->range_supported());
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+ set_might_be_reused_from_cache_in_future(true);
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kNeverDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+ set_might_be_reused_from_cache_in_future(false);
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest,
+ ExternalResource_Response206_PreloadMetadata_DeferStrategy) {
+ data_source_->SetPreload(METADATA);
+ InitializeWith206Response();
+
+ EXPECT_EQ(METADATA, preload());
+ EXPECT_FALSE(is_local_source());
+ EXPECT_TRUE(loader()->range_supported());
+ EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+ set_might_be_reused_from_cache_in_future(true);
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kNeverDefer, defer_strategy());
+
+ data_source_->MediaIsPlaying();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+ set_might_be_reused_from_cache_in_future(false);
+ data_source_->MediaIsPaused();
+ EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy());
+
+ Stop();
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698