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 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 image_resource->NotifyStartLoad(); | 183 image_resource->NotifyStartLoad(); |
184 image_resource->ResponseReceived(response, nullptr); | 184 image_resource->ResponseReceived(response, nullptr); |
185 image_resource->AppendData(data, data_size); | 185 image_resource->AppendData(data, data_size); |
186 image_resource->Finish(); | 186 image_resource->Finish(); |
187 } | 187 } |
188 | 188 |
189 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, | 189 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, |
190 ImageResource* image_resource, | 190 ImageResource* image_resource, |
191 ImageResourceContent* content, | 191 ImageResourceContent* content, |
192 MockImageResourceObserver* observer, | 192 MockImageResourceObserver* observer, |
193 WebCachePolicy policy_for_reload) { | 193 WebCachePolicy policy_for_reload, |
| 194 bool placeholder_before_reload) { |
194 const char* data = reinterpret_cast<const char*>(kJpegImage2); | 195 const char* data = reinterpret_cast<const char*>(kJpegImage2); |
195 constexpr size_t kDataLength = sizeof(kJpegImage2); | 196 constexpr size_t kDataLength = sizeof(kJpegImage2); |
196 constexpr int kImageWidth = 50; | 197 constexpr int kImageWidth = 50; |
197 constexpr int kImageHeight = 50; | 198 constexpr int kImageHeight = 50; |
198 | 199 |
199 // Checks that |imageResource| and |content| are ready for non-placeholder | 200 // Checks that |imageResource| and |content| are ready for non-placeholder |
200 // reloading. | 201 // reloading. |
201 EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); | 202 EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); |
202 EXPECT_FALSE(image_resource->ResourceBuffer()); | 203 EXPECT_FALSE(image_resource->ResourceBuffer()); |
203 EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); | 204 EXPECT_EQ(placeholder_before_reload, image_resource->ShouldShowPlaceholder()); |
204 EXPECT_EQ(g_null_atom, | 205 EXPECT_EQ(g_null_atom, |
205 image_resource->GetResourceRequest().HttpHeaderField("range")); | 206 image_resource->GetResourceRequest().HttpHeaderField("range")); |
206 EXPECT_EQ(policy_for_reload, | 207 EXPECT_EQ(policy_for_reload, |
207 image_resource->GetResourceRequest().GetCachePolicy()); | 208 image_resource->GetResourceRequest().GetCachePolicy()); |
208 EXPECT_EQ(content, image_resource->GetContent()); | 209 EXPECT_EQ(content, image_resource->GetContent()); |
209 EXPECT_FALSE(content->HasImage()); | 210 EXPECT_FALSE(content->HasImage()); |
210 | 211 |
211 // Checks |observer| before reloading. | 212 // Checks |observer| before reloading. |
212 const int original_image_changed_count = observer->ImageChangedCount(); | 213 const int original_image_changed_count = observer->ImageChangedCount(); |
213 const bool already_notified_finish = observer->ImageNotifyFinishedCalled(); | 214 const bool already_notified_finish = observer->ImageNotifyFinishedCalled(); |
(...skipping 22 matching lines...) Expand all Loading... |
236 // response is served, then imageNotifyFinished() should be called with | 237 // response is served, then imageNotifyFinished() should be called with |
237 // the new image (of width |imageWidth|). | 238 // the new image (of width |imageWidth|). |
238 EXPECT_EQ(kImageWidth, observer->ImageWidthOnImageNotifyFinished()); | 239 EXPECT_EQ(kImageWidth, observer->ImageWidthOnImageNotifyFinished()); |
239 } | 240 } |
240 | 241 |
241 // Checks |content| receives the correct image. | 242 // Checks |content| receives the correct image. |
242 EXPECT_TRUE(content->HasImage()); | 243 EXPECT_TRUE(content->HasImage()); |
243 EXPECT_FALSE(content->GetImage()->IsNull()); | 244 EXPECT_FALSE(content->GetImage()->IsNull()); |
244 EXPECT_EQ(kImageWidth, content->GetImage()->width()); | 245 EXPECT_EQ(kImageWidth, content->GetImage()->width()); |
245 EXPECT_EQ(kImageHeight, content->GetImage()->height()); | 246 EXPECT_EQ(kImageHeight, content->GetImage()->height()); |
246 EXPECT_TRUE(content->GetImage()->IsBitmapImage()); | |
247 EXPECT_FALSE(content->GetImage()->PaintImageForCurrentFrame().is_multipart()); | 247 EXPECT_FALSE(content->GetImage()->PaintImageForCurrentFrame().is_multipart()); |
248 } | 248 } |
249 | 249 |
250 AtomicString BuildContentRange(size_t range_length, size_t total_length) { | 250 AtomicString BuildContentRange(size_t range_length, size_t total_length) { |
251 return AtomicString(String("bytes 0-" + String::Number(range_length - 1) + | 251 return AtomicString(String("bytes 0-" + String::Number(range_length - 1) + |
252 "/" + String::Number(total_length))); | 252 "/" + String::Number(total_length))); |
253 } | 253 } |
254 | 254 |
255 void TestThatIsPlaceholderRequestAndServeResponse( | 255 void TestThatIsPlaceholderRequestAndServeResponse( |
256 const KURL& url, | 256 const KURL& url, |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 EXPECT_EQ(kJpegImageHeight, | 592 EXPECT_EQ(kJpegImageHeight, |
593 image_resource->GetContent()->GetImage()->height()); | 593 image_resource->GetContent()->GetImage()->height()); |
594 | 594 |
595 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 595 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
596 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 596 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
597 Resource::kReloadAlways); | 597 Resource::kReloadAlways); |
598 | 598 |
599 EXPECT_EQ(3, observer->ImageChangedCount()); | 599 EXPECT_EQ(3, observer->ImageChangedCount()); |
600 TestThatReloadIsStartedThenServeReload( | 600 TestThatReloadIsStartedThenServeReload( |
601 test_url, image_resource, image_resource->GetContent(), observer.get(), | 601 test_url, image_resource, image_resource->GetContent(), observer.get(), |
602 WebCachePolicy::kBypassingCache); | 602 WebCachePolicy::kBypassingCache, false); |
603 } | 603 } |
604 | 604 |
605 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { | 605 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { |
606 KURL test_url(kParsedURLString, kTestURL); | 606 KURL test_url(kParsedURLString, kTestURL); |
607 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 607 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
608 ImageResource* image_resource = ImageResource::CreateForTest(test_url); | 608 ImageResource* image_resource = ImageResource::CreateForTest(test_url); |
609 image_resource->SetStatus(ResourceStatus::kPending); | 609 image_resource->SetStatus(ResourceStatus::kPending); |
610 image_resource->NotifyStartLoad(); | 610 image_resource->NotifyStartLoad(); |
611 | 611 |
612 std::unique_ptr<MockImageResourceObserver> observer = | 612 std::unique_ptr<MockImageResourceObserver> observer = |
(...skipping 22 matching lines...) Expand all Loading... |
635 EXPECT_EQ(kJpegImageHeight, | 635 EXPECT_EQ(kJpegImageHeight, |
636 image_resource->GetContent()->GetImage()->height()); | 636 image_resource->GetContent()->GetImage()->height()); |
637 | 637 |
638 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 638 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
639 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 639 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
640 Resource::kReloadAlways); | 640 Resource::kReloadAlways); |
641 | 641 |
642 EXPECT_EQ(3, observer->ImageChangedCount()); | 642 EXPECT_EQ(3, observer->ImageChangedCount()); |
643 TestThatReloadIsStartedThenServeReload( | 643 TestThatReloadIsStartedThenServeReload( |
644 test_url, image_resource, image_resource->GetContent(), observer.get(), | 644 test_url, image_resource, image_resource->GetContent(), observer.get(), |
645 WebCachePolicy::kBypassingCache); | 645 WebCachePolicy::kBypassingCache, false); |
646 } | 646 } |
647 | 647 |
648 TEST(ImageResourceTest, | 648 TEST(ImageResourceTest, |
649 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { | 649 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { |
650 KURL test_url(kParsedURLString, kTestURL); | 650 KURL test_url(kParsedURLString, kTestURL); |
651 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 651 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
652 ResourceRequest request(test_url); | 652 ResourceRequest request(test_url); |
653 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 653 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
654 request.SetFetchCredentialsMode(WebURLRequest::kFetchCredentialsModeOmit); | 654 request.SetFetchCredentialsMode(WebURLRequest::kFetchCredentialsModeOmit); |
655 ImageResource* image_resource = ImageResource::Create(request); | 655 ImageResource* image_resource = ImageResource::Create(request); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 image_resource->Loader()->DidFinishLoading( | 718 image_resource->Loader()->DidFinishLoading( |
719 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage)); | 719 0.0, sizeof(kJpegImage), sizeof(kJpegImage), sizeof(kJpegImage)); |
720 | 720 |
721 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 721 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
722 EXPECT_EQ(image_resource, fetcher->CachedResource(test_url)); | 722 EXPECT_EQ(image_resource, fetcher->CachedResource(test_url)); |
723 | 723 |
724 fetcher->ReloadLoFiImages(); | 724 fetcher->ReloadLoFiImages(); |
725 | 725 |
726 EXPECT_EQ(3, observer->ImageChangedCount()); | 726 EXPECT_EQ(3, observer->ImageChangedCount()); |
727 | 727 |
728 TestThatReloadIsStartedThenServeReload(test_url, image_resource, content, | 728 TestThatReloadIsStartedThenServeReload( |
729 observer.get(), | 729 test_url, image_resource, content, observer.get(), |
730 WebCachePolicy::kBypassingCache); | 730 WebCachePolicy::kBypassingCache, false); |
731 | 731 |
732 GetMemoryCache()->Remove(image_resource); | 732 GetMemoryCache()->Remove(image_resource); |
733 } | 733 } |
734 | 734 |
735 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { | 735 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { |
736 KURL test_url(kParsedURLString, kTestURL); | 736 KURL test_url(kParsedURLString, kTestURL); |
737 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 737 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
738 | 738 |
739 ResourceRequest request(test_url); | 739 ResourceRequest request(test_url); |
740 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 740 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
(...skipping 27 matching lines...) Expand all Loading... |
768 Resource::kReloadAlways); | 768 Resource::kReloadAlways); |
769 | 769 |
770 EXPECT_EQ(2, observer->ImageChangedCount()); | 770 EXPECT_EQ(2, observer->ImageChangedCount()); |
771 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged()); | 771 EXPECT_EQ(0, observer->ImageWidthOnLastImageChanged()); |
772 // The observer should not have been notified of completion yet, since the | 772 // The observer should not have been notified of completion yet, since the |
773 // image is still loading. | 773 // image is still loading. |
774 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 774 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
775 | 775 |
776 TestThatReloadIsStartedThenServeReload( | 776 TestThatReloadIsStartedThenServeReload( |
777 test_url, image_resource, image_resource->GetContent(), observer.get(), | 777 test_url, image_resource, image_resource->GetContent(), observer.get(), |
778 WebCachePolicy::kBypassingCache); | 778 WebCachePolicy::kBypassingCache, false); |
779 } | 779 } |
780 | 780 |
781 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { | 781 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { |
782 KURL test_url(kParsedURLString, kTestURL); | 782 KURL test_url(kParsedURLString, kTestURL); |
783 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 783 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
784 | 784 |
785 ResourceFetcher* fetcher = CreateFetcher(); | 785 ResourceFetcher* fetcher = CreateFetcher(); |
786 FetchParameters params{ResourceRequest(test_url)}; | 786 FetchParameters params{ResourceRequest(test_url)}; |
787 params.SetAllowImagePlaceholder(); | 787 params.SetAllowImagePlaceholder(); |
788 ImageResource* image_resource = ImageResource::Fetch(params, fetcher); | 788 ImageResource* image_resource = ImageResource::Fetch(params, fetcher); |
789 EXPECT_EQ(FetchParameters::kAllowPlaceholder, | 789 EXPECT_EQ(FetchParameters::kAllowPlaceholder, |
790 params.GetPlaceholderImageRequestType()); | 790 params.GetPlaceholderImageRequestType()); |
791 std::unique_ptr<MockImageResourceObserver> observer = | 791 std::unique_ptr<MockImageResourceObserver> observer = |
792 MockImageResourceObserver::Create(image_resource->GetContent()); | 792 MockImageResourceObserver::Create(image_resource->GetContent()); |
793 | 793 |
794 TestThatIsPlaceholderRequestAndServeResponse(test_url, image_resource, | 794 TestThatIsPlaceholderRequestAndServeResponse(test_url, image_resource, |
795 observer.get()); | 795 observer.get()); |
796 | 796 |
797 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 797 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
798 Resource::kReloadAlways); | 798 Resource::kReloadAlways); |
799 | 799 |
800 TestThatReloadIsStartedThenServeReload( | 800 TestThatReloadIsStartedThenServeReload( |
801 test_url, image_resource, image_resource->GetContent(), observer.get(), | 801 test_url, image_resource, image_resource->GetContent(), observer.get(), |
802 WebCachePolicy::kBypassingCache); | 802 WebCachePolicy::kBypassingCache, false); |
803 } | 803 } |
804 | 804 |
805 TEST(ImageResourceTest, SVGImage) { | 805 TEST(ImageResourceTest, SVGImage) { |
806 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo"); | 806 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo"); |
807 ImageResource* image_resource = ImageResource::CreateForTest(url); | 807 ImageResource* image_resource = ImageResource::CreateForTest(url); |
808 std::unique_ptr<MockImageResourceObserver> observer = | 808 std::unique_ptr<MockImageResourceObserver> observer = |
809 MockImageResourceObserver::Create(image_resource->GetContent()); | 809 MockImageResourceObserver::Create(image_resource->GetContent()); |
810 | 810 |
811 ReceiveResponse(image_resource, url, "image/svg+xml", kSvgImage, | 811 ReceiveResponse(image_resource, url, "image/svg+xml", kSvgImage, |
812 strlen(kSvgImage)); | 812 strlen(kSvgImage)); |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1321 image_resource->Loader()->DidReceiveResponse( | 1321 image_resource->Loader()->DidReceiveResponse( |
1322 WrappedResourceResponse(bad_response)); | 1322 WrappedResourceResponse(bad_response)); |
1323 | 1323 |
1324 EXPECT_EQ(0, observer->ImageChangedCount()); | 1324 EXPECT_EQ(0, observer->ImageChangedCount()); |
1325 | 1325 |
1326 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); | 1326 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); |
1327 | 1327 |
1328 // The dimensions could not be extracted, so the full original image should be | 1328 // The dimensions could not be extracted, so the full original image should be |
1329 // loading. | 1329 // loading. |
1330 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1330 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
| 1331 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 1332 EXPECT_FALSE(image_resource->ShouldShowPlaceholder()); |
| 1333 |
| 1334 TestThatReloadIsStartedThenServeReload( |
| 1335 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 1336 WebCachePolicy::kBypassingCache, false); |
| 1337 } |
| 1338 |
| 1339 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessfulClientLoFi) { |
| 1340 KURL test_url(kParsedURLString, kTestURL); |
| 1341 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 1342 |
| 1343 ResourceRequest request = ResourceRequest(test_url); |
| 1344 request.SetPreviewsState(WebURLRequest::kClientLoFiOn); |
| 1345 FetchParameters params{request}; |
| 1346 params.SetAllowImagePlaceholder(); |
| 1347 ImageResource* image_resource = ImageResource::Fetch(params, CreateFetcher()); |
| 1348 EXPECT_EQ(FetchParameters::kAllowPlaceholder, |
| 1349 params.GetPlaceholderImageRequestType()); |
| 1350 EXPECT_EQ("bytes=0-2047", |
| 1351 image_resource->GetResourceRequest().HttpHeaderField("range")); |
| 1352 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); |
| 1353 std::unique_ptr<MockImageResourceObserver> observer = |
| 1354 MockImageResourceObserver::Create(image_resource->GetContent()); |
| 1355 |
| 1356 const char kBadData[] = "notanimageresponse"; |
| 1357 |
| 1358 ResourceResponse bad_response(test_url, "image/jpeg", sizeof(kBadData), |
| 1359 g_null_atom); |
| 1360 bad_response.SetHTTPStatusCode(206); |
| 1361 bad_response.SetHTTPHeaderField( |
| 1362 "content-range", BuildContentRange(sizeof(kBadData), sizeof(kJpegImage))); |
| 1363 |
| 1364 image_resource->Loader()->DidReceiveResponse( |
| 1365 WrappedResourceResponse(bad_response)); |
| 1366 |
| 1367 EXPECT_EQ(0, observer->ImageChangedCount()); |
| 1368 |
| 1369 image_resource->Loader()->DidReceiveData(kBadData, sizeof(kBadData)); |
| 1370 |
| 1371 // The dimensions could not be extracted, so the full original image should be |
| 1372 // loading. |
| 1373 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
1331 EXPECT_EQ(2, observer->ImageChangedCount()); | 1374 EXPECT_EQ(2, observer->ImageChangedCount()); |
1332 | 1375 |
1333 TestThatReloadIsStartedThenServeReload( | 1376 TestThatReloadIsStartedThenServeReload( |
1334 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1377 test_url, image_resource, image_resource->GetContent(), observer.get(), |
1335 WebCachePolicy::kBypassingCache); | 1378 WebCachePolicy::kBypassingCache, true); |
| 1379 |
| 1380 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
| 1381 EXPECT_TRUE(image_resource->ShouldShowPlaceholder()); |
1336 } | 1382 } |
1337 | 1383 |
1338 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { | 1384 TEST(ImageResourceTest, FetchAllowPlaceholderPartialContentWithoutDimensions) { |
1339 const struct { | 1385 const struct { |
1340 WebURLRequest::PreviewsState initial_previews_state; | 1386 WebURLRequest::PreviewsState initial_previews_state; |
1341 WebURLRequest::PreviewsState expected_reload_previews_state; | 1387 WebURLRequest::PreviewsState expected_reload_previews_state; |
| 1388 bool placeholder_before_reload; |
| 1389 bool placeholder_after_reload; |
1342 } tests[] = { | 1390 } tests[] = { |
1343 {WebURLRequest::kPreviewsUnspecified, | 1391 {WebURLRequest::kPreviewsUnspecified, WebURLRequest::kPreviewsNoTransform, |
1344 WebURLRequest::kPreviewsNoTransform}, | 1392 false}, |
1345 {WebURLRequest::kClientLoFiOn, WebURLRequest::kPreviewsNoTransform | | 1393 {WebURLRequest::kClientLoFiOn, |
1346 WebURLRequest::kClientLoFiAutoReload}, | 1394 WebURLRequest::kPreviewsNoTransform | |
| 1395 WebURLRequest::kClientLoFiAutoReload, |
| 1396 true}, |
1347 }; | 1397 }; |
1348 | 1398 |
1349 for (const auto& test : tests) { | 1399 for (const auto& test : tests) { |
1350 KURL test_url(kParsedURLString, kTestURL); | 1400 KURL test_url(kParsedURLString, kTestURL); |
1351 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1401 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
1352 | 1402 |
1353 ResourceRequest resource_request(test_url); | 1403 ResourceRequest resource_request(test_url); |
1354 resource_request.SetPreviewsState(test.initial_previews_state); | 1404 resource_request.SetPreviewsState(test.initial_previews_state); |
1355 FetchParameters params(resource_request); | 1405 FetchParameters params(resource_request); |
1356 | 1406 |
(...skipping 30 matching lines...) Expand all Loading... |
1387 image_resource->Loader()->DidFinishLoading( | 1437 image_resource->Loader()->DidFinishLoading( |
1388 0.0, kJpegImageSubrangeWithoutDimensionsLength, | 1438 0.0, kJpegImageSubrangeWithoutDimensionsLength, |
1389 kJpegImageSubrangeWithoutDimensionsLength, | 1439 kJpegImageSubrangeWithoutDimensionsLength, |
1390 kJpegImageSubrangeWithoutDimensionsLength); | 1440 kJpegImageSubrangeWithoutDimensionsLength); |
1391 | 1441 |
1392 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1442 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
1393 EXPECT_EQ(2, observer->ImageChangedCount()); | 1443 EXPECT_EQ(2, observer->ImageChangedCount()); |
1394 | 1444 |
1395 TestThatReloadIsStartedThenServeReload( | 1445 TestThatReloadIsStartedThenServeReload( |
1396 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1446 test_url, image_resource, image_resource->GetContent(), observer.get(), |
1397 WebCachePolicy::kBypassingCache); | 1447 WebCachePolicy::kBypassingCache, test.placeholder_before_reload); |
1398 | 1448 |
1399 EXPECT_EQ(test.expected_reload_previews_state, | 1449 EXPECT_EQ(test.expected_reload_previews_state, |
1400 image_resource->GetResourceRequest().GetPreviewsState()); | 1450 image_resource->GetResourceRequest().GetPreviewsState()); |
1401 } | 1451 } |
1402 } | 1452 } |
1403 | 1453 |
1404 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { | 1454 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { |
1405 KURL test_url(kParsedURLString, kTestURL); | 1455 KURL test_url(kParsedURLString, kTestURL); |
1406 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1456 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
1407 | 1457 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 WrappedResourceResponse(response)); | 1667 WrappedResourceResponse(response)); |
1618 image_resource->Loader()->DidReceiveData(kBadImageData, | 1668 image_resource->Loader()->DidReceiveData(kBadImageData, |
1619 sizeof(kBadImageData)); | 1669 sizeof(kBadImageData)); |
1620 | 1670 |
1621 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); | 1671 EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); |
1622 | 1672 |
1623 // The dimensions could not be extracted, and the response code was a 4xx | 1673 // The dimensions could not be extracted, and the response code was a 4xx |
1624 // error, so the full original image should be loading. | 1674 // error, so the full original image should be loading. |
1625 TestThatReloadIsStartedThenServeReload( | 1675 TestThatReloadIsStartedThenServeReload( |
1626 test_url, image_resource, image_resource->GetContent(), observer.get(), | 1676 test_url, image_resource, image_resource->GetContent(), observer.get(), |
1627 WebCachePolicy::kBypassingCache); | 1677 WebCachePolicy::kBypassingCache, false); |
1628 } | 1678 } |
1629 } | 1679 } |
1630 | 1680 |
1631 TEST(ImageResourceTest, PeriodicFlushTest) { | 1681 TEST(ImageResourceTest, PeriodicFlushTest) { |
1632 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> | 1682 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> |
1633 platform; | 1683 platform; |
1634 KURL test_url(kParsedURLString, kTestURL); | 1684 KURL test_url(kParsedURLString, kTestURL); |
1635 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1685 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
1636 ImageResource* image_resource = ImageResource::CreateForTest(test_url); | 1686 ImageResource* image_resource = ImageResource::CreateForTest(test_url); |
1637 image_resource->SetStatus(ResourceStatus::kPending); | 1687 image_resource->SetStatus(ResourceStatus::kPending); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1709 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 1759 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
1710 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 1760 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
1711 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); | 1761 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); |
1712 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); | 1762 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); |
1713 | 1763 |
1714 WTF::SetTimeFunctionsForTesting(nullptr); | 1764 WTF::SetTimeFunctionsForTesting(nullptr); |
1715 } | 1765 } |
1716 | 1766 |
1717 } // namespace | 1767 } // namespace |
1718 } // namespace blink | 1768 } // namespace blink |
OLD | NEW |