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

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: compile fix Created 3 years, 10 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
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 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 imageResource->loader()->didReceiveResponse( 606 imageResource->loader()->didReceiveResponse(
607 WrappedResourceResponse(response)); 607 WrappedResourceResponse(response));
608 imageResource->loader()->didReceiveData( 608 imageResource->loader()->didReceiveData(
609 reinterpret_cast<const char*>(kJpegImage), 609 reinterpret_cast<const char*>(kJpegImage),
610 kJpegImageSubrangeWithDimensionsLength); 610 kJpegImageSubrangeWithDimensionsLength);
611 imageResource->loader()->didFinishLoading( 611 imageResource->loader()->didFinishLoading(
612 0.0, kJpegImageSubrangeWithDimensionsLength, 612 0.0, kJpegImageSubrangeWithDimensionsLength,
613 kJpegImageSubrangeWithDimensionsLength); 613 kJpegImageSubrangeWithDimensionsLength);
614 614
615 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 615 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
616 EXPECT_TRUE(imageResource->isPlaceholder()); 616 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
617 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 617 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
618 618
619 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher, 619 imageResource->reloadIfLoFiOrPlaceholderImage(fetcher,
620 Resource::kReloadAlways); 620 Resource::kReloadAlways);
621 621
622 testThatReloadIsStartedThenServeReload( 622 testThatReloadIsStartedThenServeReload(
623 testURL, imageResource, imageResource->getContent(), observer.get(), 623 testURL, imageResource, imageResource->getContent(), observer.get(),
624 WebCachePolicy::BypassingCache); 624 WebCachePolicy::BypassingCache);
625 } 625 }
626 626
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 992 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
993 993
994 FetchRequest request(testURL, FetchInitiatorInfo()); 994 FetchRequest request(testURL, FetchInitiatorInfo());
995 ImageResource* imageResource = ImageResource::fetch( 995 ImageResource* imageResource = ImageResource::fetch(
996 request, 996 request,
997 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 997 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
998 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 998 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
999 request.placeholderImageRequestType()); 999 request.placeholderImageRequestType());
1000 EXPECT_EQ(nullAtom, 1000 EXPECT_EQ(nullAtom,
1001 imageResource->resourceRequest().httpHeaderField("range")); 1001 imageResource->resourceRequest().httpHeaderField("range"));
1002 EXPECT_FALSE(imageResource->isPlaceholder()); 1002 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1003 std::unique_ptr<MockImageResourceObserver> observer = 1003 std::unique_ptr<MockImageResourceObserver> observer =
1004 MockImageResourceObserver::create(imageResource->getContent()); 1004 MockImageResourceObserver::create(imageResource->getContent());
1005 1005
1006 imageResource->loader()->didReceiveResponse(WrappedResourceResponse( 1006 imageResource->loader()->didReceiveResponse(WrappedResourceResponse(
1007 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom))); 1007 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom)));
1008 imageResource->loader()->didReceiveData( 1008 imageResource->loader()->didReceiveData(
1009 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 1009 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1010 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 1010 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
1011 sizeof(kJpegImage)); 1011 sizeof(kJpegImage));
1012 1012
1013 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1013 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1014 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 1014 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
1015 EXPECT_FALSE(imageResource->isPlaceholder()); 1015 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1016 EXPECT_LT(0, observer->imageChangedCount()); 1016 EXPECT_LT(0, observer->imageChangedCount());
1017 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1017 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
1018 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1018 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1019 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1019 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1020 1020
1021 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1021 ASSERT_TRUE(imageResource->getContent()->hasImage());
1022 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1022 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1023 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1023 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1024 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1024 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1025 } 1025 }
1026 1026
1027 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) { 1027 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) {
1028 KURL testURL(ParsedURLString, 1028 KURL testURL(ParsedURLString,
1029 "data:image/jpeg;base64," + 1029 "data:image/jpeg;base64," +
1030 base64Encode(reinterpret_cast<const char*>(kJpegImage), 1030 base64Encode(reinterpret_cast<const char*>(kJpegImage),
1031 sizeof(kJpegImage))); 1031 sizeof(kJpegImage)));
1032 FetchRequest request(testURL, FetchInitiatorInfo()); 1032 FetchRequest request(testURL, FetchInitiatorInfo());
1033 request.setAllowImagePlaceholder(); 1033 request.setAllowImagePlaceholder();
1034 ImageResource* imageResource = ImageResource::fetch( 1034 ImageResource* imageResource = ImageResource::fetch(
1035 request, 1035 request,
1036 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1036 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1037 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 1037 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1038 request.placeholderImageRequestType()); 1038 request.placeholderImageRequestType());
1039 EXPECT_EQ(nullAtom, 1039 EXPECT_EQ(nullAtom,
1040 imageResource->resourceRequest().httpHeaderField("range")); 1040 imageResource->resourceRequest().httpHeaderField("range"));
1041 EXPECT_FALSE(imageResource->isPlaceholder()); 1041 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1042 } 1042 }
1043 1043
1044 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) { 1044 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) {
1045 KURL testURL(ParsedURLString, kTestURL); 1045 KURL testURL(ParsedURLString, kTestURL);
1046 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1046 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1047 ResourceRequest resourceRequest(testURL); 1047 ResourceRequest resourceRequest(testURL);
1048 resourceRequest.setHTTPMethod("POST"); 1048 resourceRequest.setHTTPMethod("POST");
1049 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 1049 FetchRequest request(resourceRequest, FetchInitiatorInfo());
1050 request.setAllowImagePlaceholder(); 1050 request.setAllowImagePlaceholder();
1051 ImageResource* imageResource = ImageResource::fetch( 1051 ImageResource* imageResource = ImageResource::fetch(
1052 request, 1052 request,
1053 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1053 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1054 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 1054 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1055 request.placeholderImageRequestType()); 1055 request.placeholderImageRequestType());
1056 EXPECT_EQ(nullAtom, 1056 EXPECT_EQ(nullAtom,
1057 imageResource->resourceRequest().httpHeaderField("range")); 1057 imageResource->resourceRequest().httpHeaderField("range"));
1058 EXPECT_FALSE(imageResource->isPlaceholder()); 1058 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1059 1059
1060 imageResource->loader()->cancel(); 1060 imageResource->loader()->cancel();
1061 } 1061 }
1062 1062
1063 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) { 1063 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) {
1064 KURL testURL(ParsedURLString, kTestURL); 1064 KURL testURL(ParsedURLString, kTestURL);
1065 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1065 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1066 ResourceRequest resourceRequest(testURL); 1066 ResourceRequest resourceRequest(testURL);
1067 resourceRequest.setHTTPHeaderField("range", "bytes=128-255"); 1067 resourceRequest.setHTTPHeaderField("range", "bytes=128-255");
1068 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 1068 FetchRequest request(resourceRequest, FetchInitiatorInfo());
1069 request.setAllowImagePlaceholder(); 1069 request.setAllowImagePlaceholder();
1070 ImageResource* imageResource = ImageResource::fetch( 1070 ImageResource* imageResource = ImageResource::fetch(
1071 request, 1071 request,
1072 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1072 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1073 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 1073 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
1074 request.placeholderImageRequestType()); 1074 request.placeholderImageRequestType());
1075 EXPECT_EQ("bytes=128-255", 1075 EXPECT_EQ("bytes=128-255",
1076 imageResource->resourceRequest().httpHeaderField("range")); 1076 imageResource->resourceRequest().httpHeaderField("range"));
1077 EXPECT_FALSE(imageResource->isPlaceholder()); 1077 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1078 1078
1079 imageResource->loader()->cancel(); 1079 imageResource->loader()->cancel();
1080 } 1080 }
1081 1081
1082 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) { 1082 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) {
1083 KURL testURL(ParsedURLString, kTestURL); 1083 KURL testURL(ParsedURLString, kTestURL);
1084 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1084 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1085 1085
1086 FetchRequest request(testURL, FetchInitiatorInfo()); 1086 FetchRequest request(testURL, FetchInitiatorInfo());
1087 request.setAllowImagePlaceholder(); 1087 request.setAllowImagePlaceholder();
1088 ImageResource* imageResource = ImageResource::fetch( 1088 ImageResource* imageResource = ImageResource::fetch(
1089 request, 1089 request,
1090 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1090 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1091 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1091 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1092 request.placeholderImageRequestType()); 1092 request.placeholderImageRequestType());
1093 EXPECT_EQ("bytes=0-2047", 1093 EXPECT_EQ("bytes=0-2047",
1094 imageResource->resourceRequest().httpHeaderField("range")); 1094 imageResource->resourceRequest().httpHeaderField("range"));
1095 EXPECT_TRUE(imageResource->isPlaceholder()); 1095 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1096 std::unique_ptr<MockImageResourceObserver> observer = 1096 std::unique_ptr<MockImageResourceObserver> observer =
1097 MockImageResourceObserver::create(imageResource->getContent()); 1097 MockImageResourceObserver::create(imageResource->getContent());
1098 1098
1099 ResourceResponse response(testURL, "image/jpeg", 1099 ResourceResponse response(testURL, "image/jpeg",
1100 kJpegImageSubrangeWithDimensionsLength, nullAtom); 1100 kJpegImageSubrangeWithDimensionsLength, nullAtom);
1101 response.setHTTPStatusCode(206); 1101 response.setHTTPStatusCode(206);
1102 response.setHTTPHeaderField( 1102 response.setHTTPHeaderField(
1103 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, 1103 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength,
1104 sizeof(kJpegImage))); 1104 sizeof(kJpegImage)));
1105 imageResource->loader()->didReceiveResponse( 1105 imageResource->loader()->didReceiveResponse(
1106 WrappedResourceResponse(response)); 1106 WrappedResourceResponse(response));
1107 imageResource->loader()->didReceiveData( 1107 imageResource->loader()->didReceiveData(
1108 reinterpret_cast<const char*>(kJpegImage), 1108 reinterpret_cast<const char*>(kJpegImage),
1109 kJpegImageSubrangeWithDimensionsLength); 1109 kJpegImageSubrangeWithDimensionsLength);
1110 imageResource->loader()->didFinishLoading( 1110 imageResource->loader()->didFinishLoading(
1111 0.0, kJpegImageSubrangeWithDimensionsLength, 1111 0.0, kJpegImageSubrangeWithDimensionsLength,
1112 kJpegImageSubrangeWithDimensionsLength); 1112 kJpegImageSubrangeWithDimensionsLength);
1113 1113
1114 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1114 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1115 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 1115 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
1116 imageResource->encodedSize()); 1116 imageResource->encodedSize());
1117 EXPECT_TRUE(imageResource->isPlaceholder()); 1117 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1118 EXPECT_LT(0, observer->imageChangedCount()); 1118 EXPECT_LT(0, observer->imageChangedCount());
1119 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1119 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
1120 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1120 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1121 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1121 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1122 1122
1123 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1123 ASSERT_TRUE(imageResource->getContent()->hasImage());
1124 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1124 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1125 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1125 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1126 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage()); 1126 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
1127 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage()); 1127 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage());
1128 } 1128 }
1129 1129
1130 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) { 1130 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) {
1131 KURL testURL(ParsedURLString, kTestURL); 1131 KURL testURL(ParsedURLString, kTestURL);
1132 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1132 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1133 1133
1134 FetchRequest request(testURL, FetchInitiatorInfo()); 1134 FetchRequest request(testURL, FetchInitiatorInfo());
1135 request.setAllowImagePlaceholder(); 1135 request.setAllowImagePlaceholder();
1136 ImageResource* imageResource = ImageResource::fetch( 1136 ImageResource* imageResource = ImageResource::fetch(
1137 request, 1137 request,
1138 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1138 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1139 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1139 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1140 request.placeholderImageRequestType()); 1140 request.placeholderImageRequestType());
1141 EXPECT_EQ("bytes=0-2047", 1141 EXPECT_EQ("bytes=0-2047",
1142 imageResource->resourceRequest().httpHeaderField("range")); 1142 imageResource->resourceRequest().httpHeaderField("range"));
1143 EXPECT_TRUE(imageResource->isPlaceholder()); 1143 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1144 std::unique_ptr<MockImageResourceObserver> observer = 1144 std::unique_ptr<MockImageResourceObserver> observer =
1145 MockImageResourceObserver::create(imageResource->getContent()); 1145 MockImageResourceObserver::create(imageResource->getContent());
1146 1146
1147 const char kBadData[] = "notanimageresponse"; 1147 const char kBadData[] = "notanimageresponse";
1148 1148
1149 ResourceResponse badResponse(testURL, "image/jpeg", sizeof(kBadData), 1149 ResourceResponse badResponse(testURL, "image/jpeg", sizeof(kBadData),
1150 nullAtom); 1150 nullAtom);
1151 badResponse.setHTTPStatusCode(206); 1151 badResponse.setHTTPStatusCode(206);
1152 badResponse.setHTTPHeaderField( 1152 badResponse.setHTTPHeaderField(
1153 "content-range", buildContentRange(sizeof(kBadData), sizeof(kJpegImage))); 1153 "content-range", buildContentRange(sizeof(kBadData), sizeof(kJpegImage)));
(...skipping 21 matching lines...) Expand all
1175 1175
1176 FetchRequest request(testURL, FetchInitiatorInfo()); 1176 FetchRequest request(testURL, FetchInitiatorInfo());
1177 request.setAllowImagePlaceholder(); 1177 request.setAllowImagePlaceholder();
1178 ImageResource* imageResource = ImageResource::fetch( 1178 ImageResource* imageResource = ImageResource::fetch(
1179 request, 1179 request,
1180 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1180 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1181 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1181 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1182 request.placeholderImageRequestType()); 1182 request.placeholderImageRequestType());
1183 EXPECT_EQ("bytes=0-2047", 1183 EXPECT_EQ("bytes=0-2047",
1184 imageResource->resourceRequest().httpHeaderField("range")); 1184 imageResource->resourceRequest().httpHeaderField("range"));
1185 EXPECT_TRUE(imageResource->isPlaceholder()); 1185 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1186 std::unique_ptr<MockImageResourceObserver> observer = 1186 std::unique_ptr<MockImageResourceObserver> observer =
1187 MockImageResourceObserver::create(imageResource->getContent()); 1187 MockImageResourceObserver::create(imageResource->getContent());
1188 1188
1189 // TODO(hiroshige): Make the range request header and partial content length 1189 // TODO(hiroshige): Make the range request header and partial content length
1190 // consistent. https://crbug.com/689760. 1190 // consistent. https://crbug.com/689760.
1191 ResourceResponse partialResponse(testURL, "image/jpeg", 1191 ResourceResponse partialResponse(testURL, "image/jpeg",
1192 kJpegImageSubrangeWithoutDimensionsLength, 1192 kJpegImageSubrangeWithoutDimensionsLength,
1193 nullAtom); 1193 nullAtom);
1194 partialResponse.setHTTPStatusCode(206); 1194 partialResponse.setHTTPStatusCode(206);
1195 partialResponse.setHTTPHeaderField( 1195 partialResponse.setHTTPHeaderField(
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1267 imageResource->loader()->didReceiveData( 1267 imageResource->loader()->didReceiveData(
1268 reinterpret_cast<const char*>(kJpegImage), 1268 reinterpret_cast<const char*>(kJpegImage),
1269 kJpegImageSubrangeWithDimensionsLength); 1269 kJpegImageSubrangeWithDimensionsLength);
1270 imageResource->loader()->didFinishLoading( 1270 imageResource->loader()->didFinishLoading(
1271 0.0, kJpegImageSubrangeWithDimensionsLength, 1271 0.0, kJpegImageSubrangeWithDimensionsLength,
1272 kJpegImageSubrangeWithDimensionsLength); 1272 kJpegImageSubrangeWithDimensionsLength);
1273 1273
1274 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1274 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1275 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 1275 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
1276 imageResource->encodedSize()); 1276 imageResource->encodedSize());
1277 EXPECT_TRUE(imageResource->isPlaceholder()); 1277 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1278 EXPECT_LT(0, observer->imageChangedCount()); 1278 EXPECT_LT(0, observer->imageChangedCount());
1279 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1279 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1280 1280
1281 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo()); 1281 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo());
1282 ImageResource* secondImageResource = 1282 ImageResource* secondImageResource =
1283 ImageResource::fetch(nonPlaceholderRequest, fetcher); 1283 ImageResource::fetch(nonPlaceholderRequest, fetcher);
1284 EXPECT_EQ(imageResource, secondImageResource); 1284 EXPECT_EQ(imageResource, secondImageResource);
1285 1285
1286 testThatReloadIsStartedThenServeReload( 1286 testThatReloadIsStartedThenServeReload(
1287 testURL, imageResource, imageResource->getContent(), observer.get(), 1287 testURL, imageResource, imageResource->getContent(), observer.get(),
(...skipping 15 matching lines...) Expand all
1303 1303
1304 FetchRequest request(testURL, FetchInitiatorInfo()); 1304 FetchRequest request(testURL, FetchInitiatorInfo());
1305 request.setAllowImagePlaceholder(); 1305 request.setAllowImagePlaceholder();
1306 ImageResource* imageResource = ImageResource::fetch( 1306 ImageResource* imageResource = ImageResource::fetch(
1307 request, 1307 request,
1308 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1308 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1309 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1309 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1310 request.placeholderImageRequestType()); 1310 request.placeholderImageRequestType());
1311 EXPECT_EQ("bytes=0-2047", 1311 EXPECT_EQ("bytes=0-2047",
1312 imageResource->resourceRequest().httpHeaderField("range")); 1312 imageResource->resourceRequest().httpHeaderField("range"));
1313 EXPECT_TRUE(imageResource->isPlaceholder()); 1313 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1314 std::unique_ptr<MockImageResourceObserver> observer = 1314 std::unique_ptr<MockImageResourceObserver> observer =
1315 MockImageResourceObserver::create(imageResource->getContent()); 1315 MockImageResourceObserver::create(imageResource->getContent());
1316 1316
1317 ResourceResponse response(testURL, "image/jpeg", sizeof(kJpegImage), 1317 ResourceResponse response(testURL, "image/jpeg", sizeof(kJpegImage),
1318 nullAtom); 1318 nullAtom);
1319 response.setHTTPStatusCode(test.statusCode); 1319 response.setHTTPStatusCode(test.statusCode);
1320 if (test.contentRange != nullAtom) 1320 if (test.contentRange != nullAtom)
1321 response.setHTTPHeaderField("content-range", test.contentRange); 1321 response.setHTTPHeaderField("content-range", test.contentRange);
1322 imageResource->loader()->didReceiveResponse( 1322 imageResource->loader()->didReceiveResponse(
1323 WrappedResourceResponse(response)); 1323 WrappedResourceResponse(response));
1324 imageResource->loader()->didReceiveData( 1324 imageResource->loader()->didReceiveData(
1325 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 1325 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1326 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 1326 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
1327 sizeof(kJpegImage)); 1327 sizeof(kJpegImage));
1328 1328
1329 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1329 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1330 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 1330 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
1331 EXPECT_FALSE(imageResource->isPlaceholder()); 1331 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1332 EXPECT_LT(0, observer->imageChangedCount()); 1332 EXPECT_LT(0, observer->imageChangedCount());
1333 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1333 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
1334 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1334 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1335 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1335 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1336 1336
1337 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1337 ASSERT_TRUE(imageResource->getContent()->hasImage());
1338 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1338 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1339 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1339 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1340 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1340 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1341 } 1341 }
(...skipping 19 matching lines...) Expand all
1361 1361
1362 FetchRequest request(testURL, FetchInitiatorInfo()); 1362 FetchRequest request(testURL, FetchInitiatorInfo());
1363 request.setAllowImagePlaceholder(); 1363 request.setAllowImagePlaceholder();
1364 ImageResource* imageResource = ImageResource::fetch( 1364 ImageResource* imageResource = ImageResource::fetch(
1365 request, 1365 request,
1366 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1366 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1367 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1367 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1368 request.placeholderImageRequestType()); 1368 request.placeholderImageRequestType());
1369 EXPECT_EQ("bytes=0-2047", 1369 EXPECT_EQ("bytes=0-2047",
1370 imageResource->resourceRequest().httpHeaderField("range")); 1370 imageResource->resourceRequest().httpHeaderField("range"));
1371 EXPECT_TRUE(imageResource->isPlaceholder()); 1371 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1372 std::unique_ptr<MockImageResourceObserver> observer = 1372 std::unique_ptr<MockImageResourceObserver> observer =
1373 MockImageResourceObserver::create(imageResource->getContent()); 1373 MockImageResourceObserver::create(imageResource->getContent());
1374 1374
1375 ResourceResponse response(testURL, "image/jpeg", test.dataSize, nullAtom); 1375 ResourceResponse response(testURL, "image/jpeg", test.dataSize, nullAtom);
1376 response.setHTTPStatusCode(test.statusCode); 1376 response.setHTTPStatusCode(test.statusCode);
1377 if (test.contentRange != nullAtom) 1377 if (test.contentRange != nullAtom)
1378 response.setHTTPHeaderField("content-range", test.contentRange); 1378 response.setHTTPHeaderField("content-range", test.contentRange);
1379 imageResource->loader()->didReceiveResponse( 1379 imageResource->loader()->didReceiveResponse(
1380 WrappedResourceResponse(response)); 1380 WrappedResourceResponse(response));
1381 imageResource->loader()->didReceiveData(kBadImageData, test.dataSize); 1381 imageResource->loader()->didReceiveData(kBadImageData, test.dataSize);
1382 1382
1383 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 1383 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
1384 EXPECT_FALSE(imageResource->isPlaceholder()); 1384 EXPECT_FALSE(imageResource->shouldShowPlaceholder());
1385 } 1385 }
1386 } 1386 }
1387 1387
1388 TEST(ImageResourceTest, 1388 TEST(ImageResourceTest,
1389 FetchAllowPlaceholderFullResponseDecodeFailureWithReload) { 1389 FetchAllowPlaceholderFullResponseDecodeFailureWithReload) {
1390 const int kStatusCodes[] = {404, 500}; 1390 const int kStatusCodes[] = {404, 500};
1391 for (int statusCode : kStatusCodes) { 1391 for (int statusCode : kStatusCodes) {
1392 KURL testURL(ParsedURLString, kTestURL); 1392 KURL testURL(ParsedURLString, kTestURL);
1393 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath()); 1393 ScopedMockedURLLoad scopedMockedURLLoad(testURL, GetTestFilePath());
1394 1394
1395 FetchRequest request(testURL, FetchInitiatorInfo()); 1395 FetchRequest request(testURL, FetchInitiatorInfo());
1396 request.setAllowImagePlaceholder(); 1396 request.setAllowImagePlaceholder();
1397 ImageResource* imageResource = ImageResource::fetch( 1397 ImageResource* imageResource = ImageResource::fetch(
1398 request, 1398 request,
1399 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1399 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1400 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1400 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1401 request.placeholderImageRequestType()); 1401 request.placeholderImageRequestType());
1402 EXPECT_EQ("bytes=0-2047", 1402 EXPECT_EQ("bytes=0-2047",
1403 imageResource->resourceRequest().httpHeaderField("range")); 1403 imageResource->resourceRequest().httpHeaderField("range"));
1404 EXPECT_TRUE(imageResource->isPlaceholder()); 1404 EXPECT_TRUE(imageResource->shouldShowPlaceholder());
1405 std::unique_ptr<MockImageResourceObserver> observer = 1405 std::unique_ptr<MockImageResourceObserver> observer =
1406 MockImageResourceObserver::create(imageResource->getContent()); 1406 MockImageResourceObserver::create(imageResource->getContent());
1407 1407
1408 static const char kBadImageData[] = "bad image data"; 1408 static const char kBadImageData[] = "bad image data";
1409 1409
1410 ResourceResponse response(testURL, "image/jpeg", sizeof(kBadImageData), 1410 ResourceResponse response(testURL, "image/jpeg", sizeof(kBadImageData),
1411 nullAtom); 1411 nullAtom);
1412 response.setHTTPStatusCode(statusCode); 1412 response.setHTTPStatusCode(statusCode);
1413 imageResource->loader()->didReceiveResponse( 1413 imageResource->loader()->didReceiveResponse(
1414 WrappedResourceResponse(response)); 1414 WrappedResourceResponse(response));
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1506 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1506 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1507 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1507 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1508 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 1508 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
1509 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 1509 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
1510 1510
1511 WTF::setTimeFunctionsForTesting(nullptr); 1511 WTF::setTimeFunctionsForTesting(nullptr);
1512 } 1512 }
1513 1513
1514 } // namespace 1514 } // namespace
1515 } // namespace blink 1515 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698