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 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 542 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
543 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, | 543 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
544 Resource::kReloadAlways); | 544 Resource::kReloadAlways); |
545 | 545 |
546 EXPECT_EQ(3, observer->ImageChangedCount()); | 546 EXPECT_EQ(3, observer->ImageChangedCount()); |
547 TestThatReloadIsStartedThenServeReload( | 547 TestThatReloadIsStartedThenServeReload( |
548 test_url, image_resource, image_resource->GetContent(), observer.get(), | 548 test_url, image_resource, image_resource->GetContent(), observer.get(), |
549 WebCachePolicy::kBypassingCache); | 549 WebCachePolicy::kBypassingCache); |
550 } | 550 } |
551 | 551 |
| 552 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { |
| 553 KURL test_url(kParsedURLString, kTestURL); |
| 554 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
| 555 ResourceRequest request = ResourceRequest(test_url); |
| 556 ImageResource* image_resource = ImageResource::Create(request); |
| 557 image_resource->SetStatus(ResourceStatus::kPending); |
| 558 |
| 559 std::unique_ptr<MockImageResourceObserver> observer = |
| 560 MockImageResourceObserver::Create(image_resource->GetContent()); |
| 561 ResourceFetcher* fetcher = CreateFetcher(); |
| 562 |
| 563 // Send the image response. |
| 564 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage), |
| 565 g_null_atom); |
| 566 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); |
| 567 |
| 568 image_resource->ResponseReceived(resource_response, nullptr); |
| 569 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), |
| 570 sizeof(kJpegImage)); |
| 571 image_resource->Finish(); |
| 572 EXPECT_FALSE(image_resource->ErrorOccurred()); |
| 573 ASSERT_TRUE(image_resource->GetContent()->HasImage()); |
| 574 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); |
| 575 EXPECT_EQ(2, observer->ImageChangedCount()); |
| 576 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnLastImageChanged()); |
| 577 // The observer should have been notified that the image load completed. |
| 578 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
| 579 EXPECT_EQ(kJpegImageWidth, observer->ImageWidthOnImageNotifyFinished()); |
| 580 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
| 581 EXPECT_EQ(kJpegImageWidth, image_resource->GetContent()->GetImage()->width()); |
| 582 EXPECT_EQ(kJpegImageHeight, |
| 583 image_resource->GetContent()->GetImage()->height()); |
| 584 |
| 585 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
| 586 image_resource->ReloadIfLoFiOrPlaceholderImage(fetcher, |
| 587 Resource::kReloadAlways); |
| 588 |
| 589 EXPECT_EQ(3, observer->ImageChangedCount()); |
| 590 TestThatReloadIsStartedThenServeReload( |
| 591 test_url, image_resource, image_resource->GetContent(), observer.get(), |
| 592 WebCachePolicy::kBypassingCache); |
| 593 } |
| 594 |
552 TEST(ImageResourceTest, | 595 TEST(ImageResourceTest, |
553 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { | 596 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { |
554 KURL test_url(kParsedURLString, kTestURL); | 597 KURL test_url(kParsedURLString, kTestURL); |
555 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 598 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
556 ResourceRequest request = ResourceRequest(test_url); | 599 ResourceRequest request = ResourceRequest(test_url); |
557 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 600 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
558 ImageResource* image_resource = ImageResource::Create(request); | 601 ImageResource* image_resource = ImageResource::Create(request); |
559 image_resource->SetStatus(ResourceStatus::kPending); | 602 image_resource->SetStatus(ResourceStatus::kPending); |
560 | 603 |
561 std::unique_ptr<MockImageResourceObserver> observer = | 604 std::unique_ptr<MockImageResourceObserver> observer = |
(...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 1595 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
1553 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 1596 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
1554 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); | 1597 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); |
1555 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); | 1598 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); |
1556 | 1599 |
1557 WTF::SetTimeFunctionsForTesting(nullptr); | 1600 WTF::SetTimeFunctionsForTesting(nullptr); |
1558 } | 1601 } |
1559 | 1602 |
1560 } // namespace | 1603 } // namespace |
1561 } // namespace blink | 1604 } // namespace blink |
OLD | NEW |