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