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

Unified Diff: media/blink/buffered_data_source_unittest.cc

Issue 1947693003: BufferedDataSource now caches redirects for subsequent requests on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2704
Patch Set: Created 4 years, 8 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') | no next file » | 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 6063c8cc512e61056b4e406872470500fe6eb39f..015246b506986523fdec262ea2e5d29facd7d2a2 100644
--- a/media/blink/buffered_data_source_unittest.cc
+++ b/media/blink/buffered_data_source_unittest.cc
@@ -8,6 +8,7 @@
#include "base/macros.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
+#include "build/build_config.h"
#include "media/base/media_log.h"
#include "media/base/mock_filters.h"
#include "media/base/test_helpers.h"
@@ -296,6 +297,7 @@ class BufferedDataSourceTest : public testing::Test {
void set_might_be_reused_from_cache_in_future(bool value) {
loader()->might_be_reused_from_cache_in_future_ = value;
}
+ GURL url() { return data_source_->url_; }
scoped_ptr<MockBufferedDataSource> data_source_;
@@ -499,6 +501,67 @@ TEST_F(BufferedDataSourceTest, Http_RetryOnError) {
Stop();
}
+#if defined(OS_ANDROID)
+// If the initial response is a redirect, BDS saves it and uses it for future
+// requests.
+TEST_F(BufferedDataSourceTest, Http_InitialReponseRedirectsAreCached) {
+ Initialize(kHttpUrl, true);
+
+ WebURLResponse redirect =
+ response_generator_->GeneratePartial206(0, kDataSize - 1);
+ redirect.setURL(GURL(kHttpDifferentPathUrl));
+
+ EXPECT_CALL(host_, SetTotalBytes(kFileSize));
+ Respond(redirect);
+ ASSERT_TRUE(url() == GURL(kHttpDifferentPathUrl));
+}
+
+TEST_F(BufferedDataSourceTest,
+ Http_RedirectsAfterTheInitialReponseAreNotCached) {
+ Initialize(kHttpUrl, true);
+
+ WebURLResponse response =
+ response_generator_->GeneratePartial206(0, kDataSize - 1);
+ response.setURL(GURL(kHttpUrl));
+
+ EXPECT_CALL(host_, SetTotalBytes(kFileSize));
+ EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1));
+ EXPECT_CALL(host_, AddBufferedByteRange(kDataSize, kDataSize * 2 - 1));
+ EXPECT_CALL(*this, ReadCallback(kDataSize)).Times(2);
+
+ Respond(response);
+ ReadAt(0);
+ ReceiveData(kDataSize);
+
+ WebURLResponse redirect =
+ response_generator_->GeneratePartial206(kDataSize, kDataSize * 2 - 1);
+ redirect.setURL(GURL(kHttpDifferentPathUrl));
+
+ ExpectCreateResourceLoader();
+ FinishLoading();
+ ReadAt(kDataSize);
+ Respond(redirect);
+ // The redirect isn't cached.
+ ASSERT_TRUE(url() == GURL(kHttpUrl));
+ ReceiveData(kDataSize);
+ FinishLoading();
+ Stop();
+}
+
+TEST_F(BufferedDataSourceTest, Http_ServiceWorkerRedirectsAreNotCached) {
+ Initialize(kHttpUrl, true);
+
+ WebURLResponse redirect =
+ response_generator_->GeneratePartial206(0, kDataSize - 1);
+ redirect.setURL(GURL(kHttpDifferentPathUrl));
+ redirect.setWasFetchedViaServiceWorker(true);
+
+ EXPECT_CALL(host_, SetTotalBytes(kFileSize));
+ Respond(redirect);
+ ASSERT_TRUE(url() == GURL(kHttpUrl));
+}
+#endif // defined(OS_ANDROID)
+
TEST_F(BufferedDataSourceTest, Http_PartialResponse) {
Initialize(kHttpUrl, true);
WebURLResponse response1 =
« no previous file with comments | « media/blink/buffered_data_source.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698