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 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); | 500 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); |
501 EXPECT_EQ(2, observer->imageChangedCount()); | 501 EXPECT_EQ(2, observer->imageChangedCount()); |
502 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); | 502 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); |
503 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); | 503 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); |
504 } | 504 } |
505 | 505 |
506 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { | 506 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { |
507 KURL testURL(ParsedURLString, kTestURL); | 507 KURL testURL(ParsedURLString, kTestURL); |
508 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); | 508 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); |
509 ResourceRequest request = ResourceRequest(testURL); | 509 ResourceRequest request = ResourceRequest(testURL); |
510 request.setPreviewsState(WebURLRequest::ServerLoFiOn); | |
511 ImageResource* imageResource = ImageResource::create(request); | 510 ImageResource* imageResource = ImageResource::create(request); |
512 imageResource->setStatus(ResourceStatus::Pending); | 511 imageResource->setStatus(ResourceStatus::Pending); |
513 | 512 |
514 std::unique_ptr<MockImageResourceObserver> observer = | 513 std::unique_ptr<MockImageResourceObserver> observer = |
515 MockImageResourceObserver::create(imageResource->getContent()); | 514 MockImageResourceObserver::create(imageResource->getContent()); |
516 ResourceFetcher* fetcher = createFetcher(); | 515 ResourceFetcher* fetcher = createFetcher(); |
517 | 516 |
518 // Send the image response. | 517 // Send the image response. |
519 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), | 518 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), |
520 nullAtom); | 519 nullAtom); |
(...skipping 20 matching lines...) Expand all Loading... |
541 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. | 540 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
542 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher, | 541 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher, |
543 Resource::kReloadAlways); | 542 Resource::kReloadAlways); |
544 | 543 |
545 EXPECT_EQ(3, observer->imageChangedCount()); | 544 EXPECT_EQ(3, observer->imageChangedCount()); |
546 testThatReloadIsStartedThenServeReload( | 545 testThatReloadIsStartedThenServeReload( |
547 testURL, imageResource, imageResource->getContent(), observer.get(), | 546 testURL, imageResource, imageResource->getContent(), observer.get(), |
548 WebCachePolicy::BypassingCache); | 547 WebCachePolicy::BypassingCache); |
549 } | 548 } |
550 | 549 |
| 550 TEST(ImageResourceTest, |
| 551 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { |
| 552 KURL testURL(ParsedURLString, kTestURL); |
| 553 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); |
| 554 ResourceRequest request = ResourceRequest(testURL); |
| 555 request.setPreviewsState(WebURLRequest::ServerLoFiOn); |
| 556 ImageResource* imageResource = ImageResource::create(request); |
| 557 imageResource->setStatus(ResourceStatus::Pending); |
| 558 |
| 559 std::unique_ptr<MockImageResourceObserver> observer = |
| 560 MockImageResourceObserver::create(imageResource->getContent()); |
| 561 ResourceFetcher* fetcher = createFetcher(); |
| 562 |
| 563 // Send the image response, without any LoFi image response headers. |
| 564 imageResource->responseReceived( |
| 565 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom), |
| 566 nullptr); |
| 567 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage), |
| 568 sizeof(kJpegImage)); |
| 569 imageResource->finish(); |
| 570 EXPECT_FALSE(imageResource->errorOccurred()); |
| 571 ASSERT_TRUE(imageResource->getContent()->hasImage()); |
| 572 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); |
| 573 EXPECT_EQ(2, observer->imageChangedCount()); |
| 574 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); |
| 575 // The observer should have been notified that the image load completed. |
| 576 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); |
| 577 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); |
| 578 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); |
| 579 EXPECT_EQ(kJpegImageWidth, imageResource->getContent()->getImage()->width()); |
| 580 EXPECT_EQ(kJpegImageHeight, |
| 581 imageResource->getContent()->getImage()->height()); |
| 582 |
| 583 // Call reloadIfLoFiOrPlaceholderImage() after the image has finished loading. |
| 584 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher, |
| 585 Resource::kReloadAlways); |
| 586 |
| 587 // The image should not have been reloaded, since it didn't have the LoFi |
| 588 // image response headers. |
| 589 EXPECT_EQ(2, observer->imageChangedCount()); |
| 590 EXPECT_TRUE(imageResource->isLoaded()); |
| 591 } |
| 592 |
551 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderViaResourceFetcher) { | 593 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderViaResourceFetcher) { |
552 ResourceFetcher* fetcher = createFetcher(); | 594 ResourceFetcher* fetcher = createFetcher(); |
553 | 595 |
554 KURL testURL(ParsedURLString, kTestURL); | 596 KURL testURL(ParsedURLString, kTestURL); |
555 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); | 597 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); |
556 | 598 |
557 ResourceRequest request = ResourceRequest(testURL); | 599 ResourceRequest request = ResourceRequest(testURL); |
558 request.setPreviewsState(WebURLRequest::ServerLoFiOn); | 600 request.setPreviewsState(WebURLRequest::ServerLoFiOn); |
559 FetchRequest fetchRequest(request, FetchInitiatorInfo()); | 601 FetchRequest fetchRequest(request, FetchInitiatorInfo()); |
560 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); | 602 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 ResourceRequest request(testURL); | 639 ResourceRequest request(testURL); |
598 request.setPreviewsState(WebURLRequest::ServerLoFiOn); | 640 request.setPreviewsState(WebURLRequest::ServerLoFiOn); |
599 FetchRequest fetchRequest(request, FetchInitiatorInfo()); | 641 FetchRequest fetchRequest(request, FetchInitiatorInfo()); |
600 ResourceFetcher* fetcher = createFetcher(); | 642 ResourceFetcher* fetcher = createFetcher(); |
601 | 643 |
602 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); | 644 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); |
603 std::unique_ptr<MockImageResourceObserver> observer = | 645 std::unique_ptr<MockImageResourceObserver> observer = |
604 MockImageResourceObserver::create(imageResource->getContent()); | 646 MockImageResourceObserver::create(imageResource->getContent()); |
605 | 647 |
606 // Send the image response. | 648 // Send the image response. |
607 ResourceResponse initialResourceResponse(testURL, "image/jpeg", | 649 imageResource->loader()->didReceiveResponse(WrappedResourceResponse( |
608 sizeof(kJpegImage), nullAtom); | 650 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom))); |
609 initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); | |
610 | |
611 imageResource->loader()->didReceiveResponse( | |
612 WrappedResourceResponse(initialResourceResponse)); | |
613 imageResource->loader()->didReceiveData( | 651 imageResource->loader()->didReceiveData( |
614 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); | 652 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); |
615 | 653 |
616 EXPECT_FALSE(imageResource->errorOccurred()); | 654 EXPECT_FALSE(imageResource->errorOccurred()); |
617 ASSERT_TRUE(imageResource->getContent()->hasImage()); | 655 ASSERT_TRUE(imageResource->getContent()->hasImage()); |
618 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); | 656 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); |
619 EXPECT_EQ(1, observer->imageChangedCount()); | 657 EXPECT_EQ(1, observer->imageChangedCount()); |
620 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); | 658 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); |
621 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); | 659 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); |
622 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); | 660 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); |
(...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1503 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); | 1541 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); |
1504 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); | 1542 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); |
1505 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); | 1543 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); |
1506 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); | 1544 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); |
1507 | 1545 |
1508 WTF::setTimeFunctionsForTesting(nullptr); | 1546 WTF::setTimeFunctionsForTesting(nullptr); |
1509 } | 1547 } |
1510 | 1548 |
1511 } // namespace | 1549 } // namespace |
1512 } // namespace blink | 1550 } // namespace blink |
OLD | NEW |