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

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

Issue 2650113002: Phase II Step 2: Remove setIsPlaceholder() in updateImage() (Closed)
Patch Set: Rebase. Created 3 years, 9 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/ImageResourceInfo.h ('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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 WebCachePolicy policyForReload) { 181 WebCachePolicy policyForReload) {
182 const char* data = reinterpret_cast<const char*>(kJpegImage2); 182 const char* data = reinterpret_cast<const char*>(kJpegImage2);
183 constexpr size_t dataLength = sizeof(kJpegImage2); 183 constexpr size_t dataLength = sizeof(kJpegImage2);
184 constexpr int imageWidth = 50; 184 constexpr int imageWidth = 50;
185 constexpr int imageHeight = 50; 185 constexpr int imageHeight = 50;
186 186
187 // Checks that |imageResource| and |content| are ready for non-placeholder 187 // Checks that |imageResource| and |content| are ready for non-placeholder
188 // reloading. 188 // reloading.
189 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 189 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
190 EXPECT_FALSE(imageResource->resourceBuffer()); 190 EXPECT_FALSE(imageResource->resourceBuffer());
191 EXPECT_FALSE(imageResource->isPlaceholder()); 191 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
192 EXPECT_EQ(nullAtom, 192 EXPECT_EQ(nullAtom,
193 imageResource->resourceRequest().httpHeaderField("range")); 193 imageResource->resourceRequest().httpHeaderField("range"));
194 EXPECT_EQ(policyForReload, imageResource->resourceRequest().getCachePolicy()); 194 EXPECT_EQ(policyForReload, imageResource->resourceRequest().getCachePolicy());
195 EXPECT_EQ(content, imageResource->getContent()); 195 EXPECT_EQ(content, imageResource->getContent());
196 EXPECT_FALSE(content->hasImage()); 196 EXPECT_FALSE(content->hasImage());
197 197
198 // Checks |observer| before reloading. 198 // Checks |observer| before reloading.
199 const int originalImageChangedCount = observer->imageChangedCount(); 199 const int originalImageChangedCount = observer->imageChangedCount();
200 const bool alreadyNotifiedFinish = observer->imageNotifyFinishedCalled(); 200 const bool alreadyNotifiedFinish = observer->imageNotifyFinishedCalled();
201 const int imageWidthOnImageNotifyFinished = 201 const int imageWidthOnImageNotifyFinished =
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 imageResource->loader()->didReceiveResponse( 575 imageResource->loader()->didReceiveResponse(
576 WrappedResourceResponse(response)); 576 WrappedResourceResponse(response));
577 imageResource->loader()->didReceiveData( 577 imageResource->loader()->didReceiveData(
578 reinterpret_cast<const char*>(kJpegImage), 578 reinterpret_cast<const char*>(kJpegImage),
579 kJpegImageSubrangeWithDimensionsLength); 579 kJpegImageSubrangeWithDimensionsLength);
580 imageResource->loader()->didFinishLoading( 580 imageResource->loader()->didFinishLoading(
581 0.0, kJpegImageSubrangeWithDimensionsLength, 581 0.0, kJpegImageSubrangeWithDimensionsLength,
582 kJpegImageSubrangeWithDimensionsLength); 582 kJpegImageSubrangeWithDimensionsLength);
583 583
584 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 584 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
585 EXPECT_TRUE(imageResource->isPlaceholder()); 585 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
586 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 586 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
587 587
588 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher, 588 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher,
589 Resource::kReloadAlways); 589 Resource::kReloadAlways);
590 590
591 testThatReloadIsStartedThenServeReload( 591 testThatReloadIsStartedThenServeReload(
592 testURL, imageResource, imageResource->getContent(), observer.get(), 592 testURL, imageResource, imageResource->getContent(), observer.get(),
593 WebCachePolicy::BypassingCache); 593 WebCachePolicy::BypassingCache);
594 } 594 }
595 595
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 TEST(ImageResourceTest, FetchDisallowPlaceholder) { 956 TEST(ImageResourceTest, FetchDisallowPlaceholder) {
957 KURL testURL(ParsedURLString, kTestURL); 957 KURL testURL(ParsedURLString, kTestURL);
958 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 958 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
959 959
960 FetchRequest request(testURL, FetchInitiatorInfo()); 960 FetchRequest request(testURL, FetchInitiatorInfo());
961 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 961 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
962 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 962 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
963 request.placeholderImageRequestType()); 963 request.placeholderImageRequestType());
964 EXPECT_EQ(nullAtom, 964 EXPECT_EQ(nullAtom,
965 imageResource->resourceRequest().httpHeaderField("range")); 965 imageResource->resourceRequest().httpHeaderField("range"));
966 EXPECT_FALSE(imageResource->isPlaceholder()); 966 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
967 std::unique_ptr<MockImageResourceObserver> observer = 967 std::unique_ptr<MockImageResourceObserver> observer =
968 MockImageResourceObserver::create(imageResource->getContent()); 968 MockImageResourceObserver::create(imageResource->getContent());
969 969
970 imageResource->loader()->didReceiveResponse(WrappedResourceResponse( 970 imageResource->loader()->didReceiveResponse(WrappedResourceResponse(
971 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom))); 971 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom)));
972 imageResource->loader()->didReceiveData( 972 imageResource->loader()->didReceiveData(
973 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 973 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
974 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 974 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
975 sizeof(kJpegImage)); 975 sizeof(kJpegImage));
976 976
977 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 977 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
978 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 978 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
979 EXPECT_FALSE(imageResource->isPlaceholder()); 979 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
980 EXPECT_LT(0, observer->imageChangedCount()); 980 EXPECT_LT(0, observer->imageChangedCount());
981 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 981 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
982 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 982 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
983 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 983 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
984 984
985 ASSERT_TRUE(imageResource->getContent()->hasImage()); 985 ASSERT_TRUE(imageResource->getContent()->hasImage());
986 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 986 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
987 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 987 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
988 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 988 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
989 } 989 }
990 990
991 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) { 991 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) {
992 KURL testURL(ParsedURLString, 992 KURL testURL(ParsedURLString,
993 "data:image/jpeg;base64," + 993 "data:image/jpeg;base64," +
994 base64Encode(reinterpret_cast<const char*>(kJpegImage), 994 base64Encode(reinterpret_cast<const char*>(kJpegImage),
995 sizeof(kJpegImage))); 995 sizeof(kJpegImage)));
996 FetchRequest request(testURL, FetchInitiatorInfo()); 996 FetchRequest request(testURL, FetchInitiatorInfo());
997 request.setAllowImagePlaceholder(); 997 request.setAllowImagePlaceholder();
998 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 998 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
999 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 999 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1000 request.placeholderImageRequestType()); 1000 request.placeholderImageRequestType());
1001 EXPECT_EQ(nullAtom, 1001 EXPECT_EQ(nullAtom,
1002 imageResource->resourceRequest().httpHeaderField("range")); 1002 imageResource->resourceRequest().httpHeaderField("range"));
1003 EXPECT_FALSE(imageResource->isPlaceholder()); 1003 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1004 } 1004 }
1005 1005
1006 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) { 1006 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) {
1007 KURL testURL(ParsedURLString, kTestURL); 1007 KURL testURL(ParsedURLString, kTestURL);
1008 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1008 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1009 ResourceRequest resourceRequest(testURL); 1009 ResourceRequest resourceRequest(testURL);
1010 resourceRequest.setHTTPMethod("POST"); 1010 resourceRequest.setHTTPMethod("POST");
1011 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 1011 FetchRequest request(resourceRequest, FetchInitiatorInfo());
1012 request.setAllowImagePlaceholder(); 1012 request.setAllowImagePlaceholder();
1013 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 1013 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
1014 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 1014 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1015 request.placeholderImageRequestType()); 1015 request.placeholderImageRequestType());
1016 EXPECT_EQ(nullAtom, 1016 EXPECT_EQ(nullAtom,
1017 imageResource->resourceRequest().httpHeaderField("range")); 1017 imageResource->resourceRequest().httpHeaderField("range"));
1018 EXPECT_FALSE(imageResource->isPlaceholder()); 1018 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1019 1019
1020 imageResource->loader()->cancel(); 1020 imageResource->loader()->cancel();
1021 } 1021 }
1022 1022
1023 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) { 1023 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) {
1024 KURL testURL(ParsedURLString, kTestURL); 1024 KURL testURL(ParsedURLString, kTestURL);
1025 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1025 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1026 ResourceRequest resourceRequest(testURL); 1026 ResourceRequest resourceRequest(testURL);
1027 resourceRequest.setHTTPHeaderField("range", "bytes=128-255"); 1027 resourceRequest.setHTTPHeaderField("range", "bytes=128-255");
1028 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 1028 FetchRequest request(resourceRequest, FetchInitiatorInfo());
1029 request.setAllowImagePlaceholder(); 1029 request.setAllowImagePlaceholder();
1030 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 1030 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
1031 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 1031 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1032 request.placeholderImageRequestType()); 1032 request.placeholderImageRequestType());
1033 EXPECT_EQ("bytes=128-255", 1033 EXPECT_EQ("bytes=128-255",
1034 imageResource->resourceRequest().httpHeaderField("range")); 1034 imageResource->resourceRequest().httpHeaderField("range"));
1035 EXPECT_FALSE(imageResource->isPlaceholder()); 1035 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1036 1036
1037 imageResource->loader()->cancel(); 1037 imageResource->loader()->cancel();
1038 } 1038 }
1039 1039
1040 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) { 1040 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) {
1041 KURL testURL(ParsedURLString, kTestURL); 1041 KURL testURL(ParsedURLString, kTestURL);
1042 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1042 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1043 1043
1044 FetchRequest request(testURL, FetchInitiatorInfo()); 1044 FetchRequest request(testURL, FetchInitiatorInfo());
1045 request.setAllowImagePlaceholder(); 1045 request.setAllowImagePlaceholder();
1046 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 1046 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
1047 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1047 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1048 request.placeholderImageRequestType()); 1048 request.placeholderImageRequestType());
1049 EXPECT_EQ("bytes=0-2047", 1049 EXPECT_EQ("bytes=0-2047",
1050 imageResource->resourceRequest().httpHeaderField("range")); 1050 imageResource->resourceRequest().httpHeaderField("range"));
1051 EXPECT_TRUE(imageResource->isPlaceholder()); 1051 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1052 std::unique_ptr<MockImageResourceObserver> observer = 1052 std::unique_ptr<MockImageResourceObserver> observer =
1053 MockImageResourceObserver::create(imageResource->getContent()); 1053 MockImageResourceObserver::create(imageResource->getContent());
1054 1054
1055 ResourceResponse response(testURL, "image/jpeg", 1055 ResourceResponse response(testURL, "image/jpeg",
1056 kJpegImageSubrangeWithDimensionsLength, nullAtom); 1056 kJpegImageSubrangeWithDimensionsLength, nullAtom);
1057 response.setHTTPStatusCode(206); 1057 response.setHTTPStatusCode(206);
1058 response.setHTTPHeaderField( 1058 response.setHTTPHeaderField(
1059 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, 1059 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength,
1060 sizeof(kJpegImage))); 1060 sizeof(kJpegImage)));
1061 imageResource->loader()->didReceiveResponse( 1061 imageResource->loader()->didReceiveResponse(
1062 WrappedResourceResponse(response)); 1062 WrappedResourceResponse(response));
1063 imageResource->loader()->didReceiveData( 1063 imageResource->loader()->didReceiveData(
1064 reinterpret_cast<const char*>(kJpegImage), 1064 reinterpret_cast<const char*>(kJpegImage),
1065 kJpegImageSubrangeWithDimensionsLength); 1065 kJpegImageSubrangeWithDimensionsLength);
1066 imageResource->loader()->didFinishLoading( 1066 imageResource->loader()->didFinishLoading(
1067 0.0, kJpegImageSubrangeWithDimensionsLength, 1067 0.0, kJpegImageSubrangeWithDimensionsLength,
1068 kJpegImageSubrangeWithDimensionsLength); 1068 kJpegImageSubrangeWithDimensionsLength);
1069 1069
1070 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1070 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1071 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 1071 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
1072 imageResource->encodedSize()); 1072 imageResource->encodedSize());
1073 EXPECT_TRUE(imageResource->isPlaceholder()); 1073 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1074 EXPECT_LT(0, observer->imageChangedCount()); 1074 EXPECT_LT(0, observer->imageChangedCount());
1075 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1075 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
1076 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1076 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1077 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1077 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1078 1078
1079 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1079 ASSERT_TRUE(imageResource->getContent()->hasImage());
1080 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1080 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1081 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1081 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1082 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage()); 1082 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
1083 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage()); 1083 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage());
1084 } 1084 }
1085 1085
1086 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) { 1086 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) {
1087 KURL testURL(ParsedURLString, kTestURL); 1087 KURL testURL(ParsedURLString, kTestURL);
1088 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1088 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1089 1089
1090 FetchRequest request(testURL, FetchInitiatorInfo()); 1090 FetchRequest request(testURL, FetchInitiatorInfo());
1091 request.setAllowImagePlaceholder(); 1091 request.setAllowImagePlaceholder();
1092 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 1092 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
1093 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1093 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1094 request.placeholderImageRequestType()); 1094 request.placeholderImageRequestType());
1095 EXPECT_EQ("bytes=0-2047", 1095 EXPECT_EQ("bytes=0-2047",
1096 imageResource->resourceRequest().httpHeaderField("range")); 1096 imageResource->resourceRequest().httpHeaderField("range"));
1097 EXPECT_TRUE(imageResource->isPlaceholder()); 1097 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1098 std::unique_ptr<MockImageResourceObserver> observer = 1098 std::unique_ptr<MockImageResourceObserver> observer =
1099 MockImageResourceObserver::create(imageResource->getContent()); 1099 MockImageResourceObserver::create(imageResource->getContent());
1100 1100
1101 const char kBadData[] = "notanimageresponse"; 1101 const char kBadData[] = "notanimageresponse";
1102 1102
1103 ResourceResponse badResponse(testURL, "image/jpeg", sizeof(kBadData), 1103 ResourceResponse badResponse(testURL, "image/jpeg", sizeof(kBadData),
1104 nullAtom); 1104 nullAtom);
1105 badResponse.setHTTPStatusCode(206); 1105 badResponse.setHTTPStatusCode(206);
1106 badResponse.setHTTPHeaderField( 1106 badResponse.setHTTPHeaderField(
1107 "content-range", buildContentRange(sizeof(kBadData), sizeof(kJpegImage))); 1107 "content-range", buildContentRange(sizeof(kBadData), sizeof(kJpegImage)));
(...skipping 19 matching lines...) Expand all
1127 KURL testURL(ParsedURLString, kTestURL); 1127 KURL testURL(ParsedURLString, kTestURL);
1128 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1128 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1129 1129
1130 FetchRequest request(testURL, FetchInitiatorInfo()); 1130 FetchRequest request(testURL, FetchInitiatorInfo());
1131 request.setAllowImagePlaceholder(); 1131 request.setAllowImagePlaceholder();
1132 ImageResource* imageResource = ImageResource::fetch(request, createFetcher()); 1132 ImageResource* imageResource = ImageResource::fetch(request, createFetcher());
1133 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1133 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1134 request.placeholderImageRequestType()); 1134 request.placeholderImageRequestType());
1135 EXPECT_EQ("bytes=0-2047", 1135 EXPECT_EQ("bytes=0-2047",
1136 imageResource->resourceRequest().httpHeaderField("range")); 1136 imageResource->resourceRequest().httpHeaderField("range"));
1137 EXPECT_TRUE(imageResource->isPlaceholder()); 1137 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1138 std::unique_ptr<MockImageResourceObserver> observer = 1138 std::unique_ptr<MockImageResourceObserver> observer =
1139 MockImageResourceObserver::create(imageResource->getContent()); 1139 MockImageResourceObserver::create(imageResource->getContent());
1140 1140
1141 // TODO(hiroshige): Make the range request header and partial content length 1141 // TODO(hiroshige): Make the range request header and partial content length
1142 // consistent. https://crbug.com/689760. 1142 // consistent. https://crbug.com/689760.
1143 ResourceResponse partialResponse(testURL, "image/jpeg", 1143 ResourceResponse partialResponse(testURL, "image/jpeg",
1144 kJpegImageSubrangeWithoutDimensionsLength, 1144 kJpegImageSubrangeWithoutDimensionsLength,
1145 nullAtom); 1145 nullAtom);
1146 partialResponse.setHTTPStatusCode(206); 1146 partialResponse.setHTTPStatusCode(206);
1147 partialResponse.setHTTPHeaderField( 1147 partialResponse.setHTTPHeaderField(
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 imageResource->loader()->didReceiveData( 1217 imageResource->loader()->didReceiveData(
1218 reinterpret_cast<const char*>(kJpegImage), 1218 reinterpret_cast<const char*>(kJpegImage),
1219 kJpegImageSubrangeWithDimensionsLength); 1219 kJpegImageSubrangeWithDimensionsLength);
1220 imageResource->loader()->didFinishLoading( 1220 imageResource->loader()->didFinishLoading(
1221 0.0, kJpegImageSubrangeWithDimensionsLength, 1221 0.0, kJpegImageSubrangeWithDimensionsLength,
1222 kJpegImageSubrangeWithDimensionsLength); 1222 kJpegImageSubrangeWithDimensionsLength);
1223 1223
1224 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1224 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1225 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 1225 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
1226 imageResource->encodedSize()); 1226 imageResource->encodedSize());
1227 EXPECT_TRUE(imageResource->isPlaceholder()); 1227 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1228 EXPECT_LT(0, observer->imageChangedCount()); 1228 EXPECT_LT(0, observer->imageChangedCount());
1229 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1229 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1230 1230
1231 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo()); 1231 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo());
1232 ImageResource* secondImageResource = 1232 ImageResource* secondImageResource =
1233 ImageResource::fetch(nonPlaceholderRequest, fetcher); 1233 ImageResource::fetch(nonPlaceholderRequest, fetcher);
1234 EXPECT_EQ(imageResource, secondImageResource); 1234 EXPECT_EQ(imageResource, secondImageResource);
1235 1235
1236 testThatReloadIsStartedThenServeReload( 1236 testThatReloadIsStartedThenServeReload(
1237 testURL, imageResource, imageResource->getContent(), observer.get(), 1237 testURL, imageResource, imageResource->getContent(), observer.get(),
(...skipping 14 matching lines...) Expand all
1252 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1252 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1253 1253
1254 FetchRequest request(testURL, FetchInitiatorInfo()); 1254 FetchRequest request(testURL, FetchInitiatorInfo());
1255 request.setAllowImagePlaceholder(); 1255 request.setAllowImagePlaceholder();
1256 ImageResource* imageResource = 1256 ImageResource* imageResource =
1257 ImageResource::fetch(request, createFetcher()); 1257 ImageResource::fetch(request, createFetcher());
1258 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1258 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1259 request.placeholderImageRequestType()); 1259 request.placeholderImageRequestType());
1260 EXPECT_EQ("bytes=0-2047", 1260 EXPECT_EQ("bytes=0-2047",
1261 imageResource->resourceRequest().httpHeaderField("range")); 1261 imageResource->resourceRequest().httpHeaderField("range"));
1262 EXPECT_TRUE(imageResource->isPlaceholder()); 1262 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1263 std::unique_ptr<MockImageResourceObserver> observer = 1263 std::unique_ptr<MockImageResourceObserver> observer =
1264 MockImageResourceObserver::create(imageResource->getContent()); 1264 MockImageResourceObserver::create(imageResource->getContent());
1265 1265
1266 ResourceResponse response(testURL, "image/jpeg", sizeof(kJpegImage), 1266 ResourceResponse response(testURL, "image/jpeg", sizeof(kJpegImage),
1267 nullAtom); 1267 nullAtom);
1268 response.setHTTPStatusCode(test.statusCode); 1268 response.setHTTPStatusCode(test.statusCode);
1269 if (test.contentRange != nullAtom) 1269 if (test.contentRange != nullAtom)
1270 response.setHTTPHeaderField("content-range", test.contentRange); 1270 response.setHTTPHeaderField("content-range", test.contentRange);
1271 imageResource->loader()->didReceiveResponse( 1271 imageResource->loader()->didReceiveResponse(
1272 WrappedResourceResponse(response)); 1272 WrappedResourceResponse(response));
1273 imageResource->loader()->didReceiveData( 1273 imageResource->loader()->didReceiveData(
1274 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 1274 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1275 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 1275 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
1276 sizeof(kJpegImage)); 1276 sizeof(kJpegImage));
1277 1277
1278 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1278 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1279 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 1279 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
1280 EXPECT_FALSE(imageResource->isPlaceholder()); 1280 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1281 EXPECT_LT(0, observer->imageChangedCount()); 1281 EXPECT_LT(0, observer->imageChangedCount());
1282 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1282 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
1283 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1283 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1284 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1284 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1285 1285
1286 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1286 ASSERT_TRUE(imageResource->getContent()->hasImage());
1287 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1287 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1288 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1288 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1289 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1289 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1290 } 1290 }
(...skipping 18 matching lines...) Expand all
1309 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1309 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1310 1310
1311 FetchRequest request(testURL, FetchInitiatorInfo()); 1311 FetchRequest request(testURL, FetchInitiatorInfo());
1312 request.setAllowImagePlaceholder(); 1312 request.setAllowImagePlaceholder();
1313 ImageResource* imageResource = 1313 ImageResource* imageResource =
1314 ImageResource::fetch(request, createFetcher()); 1314 ImageResource::fetch(request, createFetcher());
1315 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1315 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1316 request.placeholderImageRequestType()); 1316 request.placeholderImageRequestType());
1317 EXPECT_EQ("bytes=0-2047", 1317 EXPECT_EQ("bytes=0-2047",
1318 imageResource->resourceRequest().httpHeaderField("range")); 1318 imageResource->resourceRequest().httpHeaderField("range"));
1319 EXPECT_TRUE(imageResource->isPlaceholder()); 1319 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1320 std::unique_ptr<MockImageResourceObserver> observer = 1320 std::unique_ptr<MockImageResourceObserver> observer =
1321 MockImageResourceObserver::create(imageResource->getContent()); 1321 MockImageResourceObserver::create(imageResource->getContent());
1322 1322
1323 ResourceResponse response(testURL, "image/jpeg", test.dataSize, nullAtom); 1323 ResourceResponse response(testURL, "image/jpeg", test.dataSize, nullAtom);
1324 response.setHTTPStatusCode(test.statusCode); 1324 response.setHTTPStatusCode(test.statusCode);
1325 if (test.contentRange != nullAtom) 1325 if (test.contentRange != nullAtom)
1326 response.setHTTPHeaderField("content-range", test.contentRange); 1326 response.setHTTPHeaderField("content-range", test.contentRange);
1327 imageResource->loader()->didReceiveResponse( 1327 imageResource->loader()->didReceiveResponse(
1328 WrappedResourceResponse(response)); 1328 WrappedResourceResponse(response));
1329 imageResource->loader()->didReceiveData(kBadImageData, test.dataSize); 1329 imageResource->loader()->didReceiveData(kBadImageData, test.dataSize);
1330 1330
1331 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 1331 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
1332 EXPECT_FALSE(imageResource->isPlaceholder()); 1332 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1333 } 1333 }
1334 } 1334 }
1335 1335
1336 TEST(ImageResourceTest, 1336 TEST(ImageResourceTest,
1337 FetchAllowPlaceholderFullResponseDecodeFailureWithReload) { 1337 FetchAllowPlaceholderFullResponseDecodeFailureWithReload) {
1338 const int kStatusCodes[] = {404, 500}; 1338 const int kStatusCodes[] = {404, 500};
1339 for (int statusCode : kStatusCodes) { 1339 for (int statusCode : kStatusCodes) {
1340 KURL testURL(ParsedURLString, kTestURL); 1340 KURL testURL(ParsedURLString, kTestURL);
1341 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1341 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1342 1342
1343 FetchRequest request(testURL, FetchInitiatorInfo()); 1343 FetchRequest request(testURL, FetchInitiatorInfo());
1344 request.setAllowImagePlaceholder(); 1344 request.setAllowImagePlaceholder();
1345 ImageResource* imageResource = 1345 ImageResource* imageResource =
1346 ImageResource::fetch(request, createFetcher()); 1346 ImageResource::fetch(request, createFetcher());
1347 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1347 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1348 request.placeholderImageRequestType()); 1348 request.placeholderImageRequestType());
1349 EXPECT_EQ("bytes=0-2047", 1349 EXPECT_EQ("bytes=0-2047",
1350 imageResource->resourceRequest().httpHeaderField("range")); 1350 imageResource->resourceRequest().httpHeaderField("range"));
1351 EXPECT_TRUE(imageResource->isPlaceholder()); 1351 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1352 std::unique_ptr<MockImageResourceObserver> observer = 1352 std::unique_ptr<MockImageResourceObserver> observer =
1353 MockImageResourceObserver::create(imageResource->getContent()); 1353 MockImageResourceObserver::create(imageResource->getContent());
1354 1354
1355 static const char kBadImageData[] = "bad image data"; 1355 static const char kBadImageData[] = "bad image data";
1356 1356
1357 ResourceResponse response(testURL, "image/jpeg", sizeof(kBadImageData), 1357 ResourceResponse response(testURL, "image/jpeg", sizeof(kBadImageData),
1358 nullAtom); 1358 nullAtom);
1359 response.setHTTPStatusCode(statusCode); 1359 response.setHTTPStatusCode(statusCode);
1360 imageResource->loader()->didReceiveResponse( 1360 imageResource->loader()->didReceiveResponse(
1361 WrappedResourceResponse(response)); 1361 WrappedResourceResponse(response));
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1453 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1454 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1454 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1455 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 1455 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
1456 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 1456 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
1457 1457
1458 WTF::setTimeFunctionsForTesting(nullptr); 1458 WTF::setTimeFunctionsForTesting(nullptr);
1459 } 1459 }
1460 1460
1461 } // namespace 1461 } // namespace
1462 } // namespace blink 1462 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/loader/resource/ImageResourceInfo.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698