| 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) {
|
|
|