Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(975)

Side by Side Diff: third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp

Issue 2800473002: Treat responses with legacy LoFi headers as LoFi images. (Closed)
Patch Set: Rebased on master Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/core/loader/resource/ImageResource.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/loader/resource/ImageResource.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698