| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1238 // loading. | 1238 // loading. |
| 1239 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1239 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1240 EXPECT_EQ(2, observer->ImageChangedCount()); | 1240 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 1241 | 1241 |
| 1242 TestThatReloadIsStartedThenServeReload( | 1242 TestThatReloadIsStartedThenServeReload( |
| 1243 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1243 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1244 WebCachePolicy::kBypassingCache); | 1244 WebCachePolicy::kBypassingCache); |
| 1245 } | 1245 } |
| 1246 | 1246 |
| 1247 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { | 1247 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { |
| 1248 KURL test_url(kParsedURLString, kTestURL); | 1248 const struct { |
| 1249 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1249 WebURLRequest::PreviewsState initial_previews_state; |
| 1250 WebURLRequest::PreviewsState expected_reload_previews_state; |
| 1251 } tests[] = { |
| 1252 {WebURLRequest::kPreviewsUnspecified, |
| 1253 WebURLRequest::kPreviewsNoTransform}, |
| 1254 {WebURLRequest::kClientLoFiOn, WebURLRequest::kPreviewsNoTransform | |
| 1255 WebURLRequest::kClientLoFiAutoReload}, |
| 1256 }; |
| 1250 | 1257 |
| 1251 FetchParameters params{ResourceRequest(test_url), FetchInitiatorInfo()}; | 1258 for (const auto& test : tests) { |
| 1252 params.SetAllowImagePlaceholder(); | 1259 KURL test_url(kParsedURLString, kTestURL); |
| 1253 ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher()); | 1260 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1254 EXPECT_EQ(FetchParameters::kAllowPlaceholder, | |
| 1255 params.GetPlaceholderImageRequestType()); | |
| 1256 EXPECT_EQ("bytes=0-2047", | |
| 1257 image_resource->GetResourceRequest().HttpHeaderField("range")); | |
| 1258 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); | |
| 1259 std::unique_ptr<MockImageResourceObserver> observer = | |
| 1260 MockImageResourceObserver::Create(image_resource->GetContent()); | |
| 1261 | 1261 |
| 1262 // TODO(hiroshige): Make the range request header and partial content length | 1262 ResourceRequest resource_request(test_url); |
| 1263 // consistent. https://crbug.com/689760. | 1263 resource_request.SetPreviewsState(test.initial_previews_state); |
| 1264 ResourceResponse partial_response(test_url, "image/jpeg", | 1264 FetchParameters params{resource_request, FetchInitiatorInfo()}; |
| 1265 kJpegImageSubrangeWithoutDimensionsLength, | |
| 1266 g_null_atom); | |
| 1267 partial_response.SetHTTPStatusCode(206); | |
| 1268 partial_response.SetHTTPHeaderField( | |
| 1269 "content-range", | |
| 1270 BuildContentRange(kJpegImageSubrangeWithoutDimensionsLength, | |
| 1271 sizeof(kJpegImage))); | |
| 1272 | 1265 |
| 1273 image_resource->Loader()->DidReceiveResponse( | 1266 params.SetAllowImagePlaceholder(); |
| 1274 WrappedResourceResponse(partial_response)); | 1267 ImageResource* image_resource = |
| 1275 image_resource->Loader()->DidReceiveData( | 1268 ImageResource::Fetch(params, CreateFetcher()); |
| 1276 reinterpret_cast<const char*>(kJpegImage), | 1269 EXPECT_EQ(FetchParameters::kAllowPlaceholder, |
| 1277 kJpegImageSubrangeWithoutDimensionsLength); | 1270 params.GetPlaceholderImageRequestType()); |
| 1271 EXPECT_EQ("bytes=0-2047", |
| 1272 image_resource->GetResourceRequest().HttpHeaderField("range")); |
| 1273 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); |
| 1274 std::unique_ptr<MockImageResourceObserver> observer = |
| 1275 MockImageResourceObserver::Create(image_resource->GetContent()); |
| 1278 | 1276 |
| 1279 EXPECT_EQ(0, observer->ImageChangedCount()); | 1277 // TODO(hiroshige): Make the range request header and partial content length |
| 1278 // consistent. https://crbug.com/689760. |
| 1279 ResourceResponse partial_response(test_url, "image/jpeg", |
| 1280 kJpegImageSubrangeWithoutDimensionsLength, |
| 1281 g_null_atom); |
| 1282 partial_response.SetHTTPStatusCode(206); |
| 1283 partial_response.SetHTTPHeaderField( |
| 1284 "content-range", |
| 1285 BuildContentRange(kJpegImageSubrangeWithoutDimensionsLength, |
| 1286 sizeof(kJpegImage))); |
| 1280 | 1287 |
| 1281 image_resource->Loader()->DidFinishLoading( | 1288 image_resource->Loader()->DidReceiveResponse( |
| 1282 0.0, kJpegImageSubrangeWithoutDimensionsLength, | 1289 WrappedResourceResponse(partial_response)); |
| 1283 kJpegImageSubrangeWithoutDimensionsLength, | 1290 image_resource->Loader()->DidReceiveData( |
| 1284 kJpegImageSubrangeWithoutDimensionsLength); | 1291 reinterpret_cast<const char*>(kJpegImage), |
| 1292 kJpegImageSubrangeWithoutDimensionsLength); |
| 1285 | 1293 |
| 1286 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1294 EXPECT_EQ(0, observer->ImageChangedCount()); |
| 1287 EXPECT_EQ(2, observer->ImageChangedCount()); | |
| 1288 | 1295 |
| 1289 TestThatReloadIsStartedThenServeReload( | 1296 image_resource->Loader()->DidFinishLoading( |
| 1290 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1297 0.0, kJpegImageSubrangeWithoutDimensionsLength, |
| 1291 WebCachePolicy::kBypassingCache); | 1298 kJpegImageSubrangeWithoutDimensionsLength, |
| 1299 kJpegImageSubrangeWithoutDimensionsLength); |
| 1300 |
| 1301 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1302 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 1303 |
| 1304 TestThatReloadIsStartedThenServeReload( |
| 1305 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1306 WebCachePolicy::kBypassingCache); |
| 1307 |
| 1308 EXPECT_EQ(test.expected_reload_previews_state, |
| 1309 image_resource->GetResourceRequest().GetPreviewsState()); |
| 1310 } |
| 1292 } | 1311 } |
| 1293 | 1312 |
| 1294 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { | 1313 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { |
| 1295 KURL test_url(kParsedURLString, kTestURL); | 1314 KURL test_url(kParsedURLString, kTestURL); |
| 1296 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1315 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1297 | 1316 |
| 1298 ResourceFetcher* fetcher = CreateFetcher(); | 1317 ResourceFetcher* fetcher = CreateFetcher(); |
| 1299 | 1318 |
| 1300 FetchParameters placeholder_params{ResourceRequest(test_url), | 1319 FetchParameters placeholder_params{ResourceRequest(test_url), |
| 1301 FetchInitiatorInfo()}; | 1320 FetchInitiatorInfo()}; |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1604 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 1623 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
| 1605 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 1624 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
| 1606 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); | 1625 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); |
| 1607 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); | 1626 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); |
| 1608 | 1627 |
| 1609 WTF::SetTimeFunctionsForTesting(nullptr); | 1628 WTF::SetTimeFunctionsForTesting(nullptr); |
| 1610 } | 1629 } |
| 1611 | 1630 |
| 1612 } // namespace | 1631 } // namespace |
| 1613 } // namespace blink | 1632 } // namespace blink |
| OLD | NEW |