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

Unified Diff: third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp

Issue 2873793002: Record Data Savings for Client-Side LoFi (Closed)
Patch Set: fix crash in DRPNetworkDelegate when lofi_ui_service is null. Created 3 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: third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
index 67a803a9126ce8adb662f87d411fcc275863bbda..065b2d2ddcf80928dfa8c7e92efa8c124da9b00e 100644
--- a/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
@@ -1245,50 +1245,69 @@ TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) {
}
TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) {
- KURL test_url(kParsedURLString, kTestURL);
- ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
+ const struct {
+ WebURLRequest::PreviewsState initial_previews_state;
+ WebURLRequest::PreviewsState expected_reload_previews_state;
+ } tests[] = {
+ {WebURLRequest::kPreviewsUnspecified,
+ WebURLRequest::kPreviewsNoTransform},
+ {WebURLRequest::kClientLoFiOn, WebURLRequest::kPreviewsNoTransform |
+ WebURLRequest::kClientLoFiAutoReload},
+ };
- FetchParameters params{ResourceRequest(test_url), FetchInitiatorInfo()};
- params.SetAllowImagePlaceholder();
- ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher());
- EXPECT_EQ(FetchParameters::kAllowPlaceholder,
- params.GetPlaceholderImageRequestType());
- EXPECT_EQ("bytes=0-2047",
- image_resource->GetResourceRequest().HttpHeaderField("range"));
- EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
- std::unique_ptr<MockImageResourceObserver> observer =
- MockImageResourceObserver::Create(image_resource->GetContent());
+ for (const auto& test : tests) {
+ KURL test_url(kParsedURLString, kTestURL);
+ ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
- // TODO(hiroshige): Make the range request header and partial content length
- // consistent. https://crbug.com/689760.
- ResourceResponse partial_response(test_url, "image/jpeg",
- kJpegImageSubrangeWithoutDimensionsLength,
- g_null_atom);
- partial_response.SetHTTPStatusCode(206);
- partial_response.SetHTTPHeaderField(
- "content-range",
- BuildContentRange(kJpegImageSubrangeWithoutDimensionsLength,
- sizeof(kJpegImage)));
+ ResourceRequest resource_request(test_url);
+ resource_request.SetPreviewsState(test.initial_previews_state);
+ FetchParameters params{resource_request, FetchInitiatorInfo()};
- image_resource->Loader()->DidReceiveResponse(
- WrappedResourceResponse(partial_response));
- image_resource->Loader()->DidReceiveData(
- reinterpret_cast<const char*>(kJpegImage),
- kJpegImageSubrangeWithoutDimensionsLength);
+ params.SetAllowImagePlaceholder();
+ ImageResource* image_resource =
+ ImageResource::Fetch(params, CreateFetcher());
+ EXPECT_EQ(FetchParameters::kAllowPlaceholder,
+ params.GetPlaceholderImageRequestType());
+ EXPECT_EQ("bytes=0-2047",
+ image_resource->GetResourceRequest().HttpHeaderField("range"));
+ EXPECT_TRUE(image_resource->ShouldShowPlaceholder());
+ std::unique_ptr<MockImageResourceObserver> observer =
+ MockImageResourceObserver::Create(image_resource->GetContent());
- EXPECT_EQ(0, observer->ImageChangedCount());
+ // TODO(hiroshige): Make the range request header and partial content length
+ // consistent. https://crbug.com/689760.
+ ResourceResponse partial_response(test_url, "image/jpeg",
+ kJpegImageSubrangeWithoutDimensionsLength,
+ g_null_atom);
+ partial_response.SetHTTPStatusCode(206);
+ partial_response.SetHTTPHeaderField(
+ "content-range",
+ BuildContentRange(kJpegImageSubrangeWithoutDimensionsLength,
+ sizeof(kJpegImage)));
- image_resource->Loader()->DidFinishLoading(
- 0.0, kJpegImageSubrangeWithoutDimensionsLength,
- kJpegImageSubrangeWithoutDimensionsLength,
- kJpegImageSubrangeWithoutDimensionsLength);
+ image_resource->Loader()->DidReceiveResponse(
+ WrappedResourceResponse(partial_response));
+ image_resource->Loader()->DidReceiveData(
+ reinterpret_cast<const char*>(kJpegImage),
+ kJpegImageSubrangeWithoutDimensionsLength);
- EXPECT_FALSE(observer->ImageNotifyFinishedCalled());
- EXPECT_EQ(2, observer->ImageChangedCount());
+ EXPECT_EQ(0, observer->ImageChangedCount());
- TestThatReloadIsStartedThenServeReload(
- test_url, image_resource, image_resource->GetContent(), observer.get(),
- WebCachePolicy::kBypassingCache);
+ image_resource->Loader()->DidFinishLoading(
+ 0.0, kJpegImageSubrangeWithoutDimensionsLength,
+ kJpegImageSubrangeWithoutDimensionsLength,
+ kJpegImageSubrangeWithoutDimensionsLength);
+
+ EXPECT_FALSE(observer->ImageNotifyFinishedCalled());
+ EXPECT_EQ(2, observer->ImageChangedCount());
+
+ TestThatReloadIsStartedThenServeReload(
+ test_url, image_resource, image_resource->GetContent(), observer.get(),
+ WebCachePolicy::kBypassingCache);
+
+ EXPECT_EQ(test.expected_reload_previews_state,
+ image_resource->GetResourceRequest().GetPreviewsState());
+ }
}
TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) {

Powered by Google App Engine
This is Rietveld 408576698