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

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

Issue 2680723002: Generalize ScopedRegisteredURL as ScoedMockedURL* (Closed)
Patch Set: 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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 bool shouldLoadNewResource(Resource::Type) const override { return true; } 190 bool shouldLoadNewResource(Resource::Type) const override { return true; }
191 RefPtr<WebTaskRunner> loadingTaskRunner() const override { return m_runner; } 191 RefPtr<WebTaskRunner> loadingTaskRunner() const override { return m_runner; }
192 192
193 private: 193 private:
194 ImageResourceTestMockFetchContext() 194 ImageResourceTestMockFetchContext()
195 : m_runner(adoptRef(new scheduler::FakeWebTaskRunner)) {} 195 : m_runner(adoptRef(new scheduler::FakeWebTaskRunner)) {}
196 196
197 RefPtr<scheduler::FakeWebTaskRunner> m_runner; 197 RefPtr<scheduler::FakeWebTaskRunner> m_runner;
198 }; 198 };
199 199
200 // Convenience class that registers a mocked URL load on construction, and 200 WebURL registerURLLoad(const KURL& url) {
201 // unregisters it on destruction. This allows for a test to use constructs like 201 return URLTestHelpers::registerMockedURLLoad(
202 // ASSERT_TRUE() without needing to worry about unregistering the mocked URL 202 url, testing::webTestDataPath("cancelTest.html"), "text/html");
203 // load to avoid putting other tests into inconsistent states in case the 203 }
204 // assertion fails.
205 // TODO(toyoshim): Generalize and move to platform/testing/URLTestHelpers.
206 class ScopedRegisteredURL {
207 public:
208 ScopedRegisteredURL(const KURL& url,
209 const String& fileName = "cancelTest.html",
210 const String& mimeType = "text/html")
211 : m_url(url) {
212 URLTestHelpers::registerMockedURLLoad(
213 m_url, testing::webTestDataPath(fileName.utf8().data()), mimeType);
214 }
215
216 ~ScopedRegisteredURL() {
217 Platform::current()->getURLLoaderMockFactory()->unregisterURL(m_url);
218 }
219
220 private:
221 KURL m_url;
222 };
223 204
224 AtomicString buildContentRange(size_t rangeLength, size_t totalLength) { 205 AtomicString buildContentRange(size_t rangeLength, size_t totalLength) {
225 return AtomicString(String("bytes 0-" + String::number(rangeLength) + "/" + 206 return AtomicString(String("bytes 0-" + String::number(rangeLength) + "/" +
226 String::number(totalLength))); 207 String::number(totalLength)));
227 } 208 }
228 209
229 TEST(ImageResourceTest, MultipartImage) { 210 TEST(ImageResourceTest, MultipartImage) {
230 ResourceFetcher* fetcher = 211 ResourceFetcher* fetcher =
231 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 212 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
232 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 213 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
233 ScopedRegisteredURL scopedRegisteredURL(testURL); 214 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
234 215
235 // Emulate starting a real load, but don't expect any "real" 216 // Emulate starting a real load, but don't expect any "real"
236 // WebURLLoaderClient callbacks. 217 // WebURLLoaderClient callbacks.
237 ImageResource* imageResource = 218 ImageResource* imageResource =
238 ImageResource::create(ResourceRequest(testURL)); 219 ImageResource::create(ResourceRequest(testURL));
239 imageResource->setIdentifier(createUniqueIdentifier()); 220 imageResource->setIdentifier(createUniqueIdentifier());
240 fetcher->startLoad(imageResource); 221 fetcher->startLoad(imageResource);
241 222
242 std::unique_ptr<MockImageResourceObserver> observer = 223 std::unique_ptr<MockImageResourceObserver> observer =
243 MockImageResourceObserver::create(imageResource->getContent()); 224 MockImageResourceObserver::create(imageResource->getContent());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 283 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
303 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 284 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
304 EXPECT_EQ(1, observer->imageChangedCount()); 285 EXPECT_EQ(1, observer->imageChangedCount());
305 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 286 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
306 EXPECT_EQ(1, observer2->imageChangedCount()); 287 EXPECT_EQ(1, observer2->imageChangedCount());
307 EXPECT_TRUE(observer2->imageNotifyFinishedCalled()); 288 EXPECT_TRUE(observer2->imageNotifyFinishedCalled());
308 } 289 }
309 290
310 TEST(ImageResourceTest, CancelOnRemoveObserver) { 291 TEST(ImageResourceTest, CancelOnRemoveObserver) {
311 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 292 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
312 ScopedRegisteredURL scopedRegisteredURL(testURL); 293 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
313 294
314 ResourceFetcher* fetcher = 295 ResourceFetcher* fetcher =
315 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 296 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
316 297
317 // Emulate starting a real load. 298 // Emulate starting a real load.
318 ImageResource* imageResource = 299 ImageResource* imageResource =
319 ImageResource::create(ResourceRequest(testURL)); 300 ImageResource::create(ResourceRequest(testURL));
320 imageResource->setIdentifier(createUniqueIdentifier()); 301 imageResource->setIdentifier(createUniqueIdentifier());
321 302
322 fetcher->startLoad(imageResource); 303 fetcher->startLoad(imageResource);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 EXPECT_FALSE(imageResource->errorOccurred()); 382 EXPECT_FALSE(imageResource->errorOccurred());
402 ASSERT_TRUE(imageResource->getContent()->hasImage()); 383 ASSERT_TRUE(imageResource->getContent()->hasImage());
403 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 384 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
404 EXPECT_EQ(2, observer->imageChangedCount()); 385 EXPECT_EQ(2, observer->imageChangedCount());
405 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 386 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
406 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 387 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
407 } 388 }
408 389
409 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { 390 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) {
410 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 391 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
411 ScopedRegisteredURL scopedRegisteredURL(testURL); 392 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
412 ResourceRequest request = ResourceRequest(testURL); 393 ResourceRequest request = ResourceRequest(testURL);
413 request.setPreviewsState(WebURLRequest::ServerLoFiOn); 394 request.setPreviewsState(WebURLRequest::ServerLoFiOn);
414 ImageResource* imageResource = ImageResource::create(request); 395 ImageResource* imageResource = ImageResource::create(request);
415 imageResource->setStatus(ResourceStatus::Pending); 396 imageResource->setStatus(ResourceStatus::Pending);
416 397
417 std::unique_ptr<MockImageResourceObserver> observer = 398 std::unique_ptr<MockImageResourceObserver> observer =
418 MockImageResourceObserver::create(imageResource->getContent()); 399 MockImageResourceObserver::create(imageResource->getContent());
419 ResourceFetcher* fetcher = 400 ResourceFetcher* fetcher =
420 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 401 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
421 402
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 // The observer should not have been notified of completion again. 446 // The observer should not have been notified of completion again.
466 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 447 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
467 448
468 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 449 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
469 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 450 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
470 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 451 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
471 } 452 }
472 453
473 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { 454 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) {
474 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 455 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
475 ScopedRegisteredURL scopedRegisteredURL(testURL); 456 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
476 457
477 ResourceRequest request(testURL); 458 ResourceRequest request(testURL);
478 request.setPreviewsState(WebURLRequest::ServerLoFiOn); 459 request.setPreviewsState(WebURLRequest::ServerLoFiOn);
479 FetchRequest fetchRequest(request, FetchInitiatorInfo()); 460 FetchRequest fetchRequest(request, FetchInitiatorInfo());
480 ResourceFetcher* fetcher = 461 ResourceFetcher* fetcher =
481 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 462 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
482 463
483 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); 464 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher);
484 std::unique_ptr<MockImageResourceObserver> observer = 465 std::unique_ptr<MockImageResourceObserver> observer =
485 MockImageResourceObserver::create(imageResource->getContent()); 466 MockImageResourceObserver::create(imageResource->getContent());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 // completed. 515 // completed.
535 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 516 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
536 EXPECT_EQ(kJpegImage2Width, observer->imageWidthOnImageNotifyFinished()); 517 EXPECT_EQ(kJpegImage2Width, observer->imageWidthOnImageNotifyFinished());
537 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 518 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
538 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 519 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
539 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 520 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
540 } 521 }
541 522
542 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { 523 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) {
543 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 524 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
544 ScopedRegisteredURL scopedRegisteredURL(testURL); 525 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
545 526
546 ResourceFetcher* fetcher = 527 ResourceFetcher* fetcher =
547 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 528 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
548 FetchRequest request(testURL, FetchInitiatorInfo()); 529 FetchRequest request(testURL, FetchInitiatorInfo());
549 request.setAllowImagePlaceholder(); 530 request.setAllowImagePlaceholder();
550 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 531 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
551 EXPECT_EQ(FetchRequest::AllowPlaceholder, 532 EXPECT_EQ(FetchRequest::AllowPlaceholder,
552 request.placeholderImageRequestType()); 533 request.placeholderImageRequestType());
553 EXPECT_EQ("bytes=0-2047", 534 EXPECT_EQ("bytes=0-2047",
554 imageResource->resourceRequest().httpHeaderField("range")); 535 imageResource->resourceRequest().httpHeaderField("range"));
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 823
843 ASSERT_TRUE(imageResource->getContent()->hasImage()); 824 ASSERT_TRUE(imageResource->getContent()->hasImage());
844 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 825 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
845 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 826 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
846 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 827 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
847 EXPECT_TRUE(client2->notifyFinishedCalled()); 828 EXPECT_TRUE(client2->notifyFinishedCalled());
848 } 829 }
849 830
850 TEST(ImageResourceTest, CancelOnDecodeError) { 831 TEST(ImageResourceTest, CancelOnDecodeError) {
851 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 832 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
852 ScopedRegisteredURL scopedRegisteredURL(testURL); 833 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
853 834
854 ResourceFetcher* fetcher = 835 ResourceFetcher* fetcher =
855 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 836 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
856 FetchRequest request(testURL, FetchInitiatorInfo()); 837 FetchRequest request(testURL, FetchInitiatorInfo());
857 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 838 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
858 std::unique_ptr<MockImageResourceObserver> observer = 839 std::unique_ptr<MockImageResourceObserver> observer =
859 MockImageResourceObserver::create(imageResource->getContent()); 840 MockImageResourceObserver::create(imageResource->getContent());
860 841
861 imageResource->loader()->didReceiveResponse( 842 imageResource->loader()->didReceiveResponse(
862 WrappedResourceResponse( 843 WrappedResourceResponse(
863 ResourceResponse(testURL, "image/jpeg", 18, nullAtom, String())), 844 ResourceResponse(testURL, "image/jpeg", 18, nullAtom, String())),
864 nullptr); 845 nullptr);
865 846
866 EXPECT_EQ(0, observer->imageChangedCount()); 847 EXPECT_EQ(0, observer->imageChangedCount());
867 848
868 imageResource->loader()->didReceiveData("notactuallyanimage", 18); 849 imageResource->loader()->didReceiveData("notactuallyanimage", 18);
869 850
870 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 851 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
871 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 852 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
872 EXPECT_EQ(ResourceStatus::DecodeError, 853 EXPECT_EQ(ResourceStatus::DecodeError,
873 observer->statusOnImageNotifyFinished()); 854 observer->statusOnImageNotifyFinished());
874 EXPECT_EQ(2, observer->imageChangedCount()); 855 EXPECT_EQ(2, observer->imageChangedCount());
875 EXPECT_FALSE(imageResource->isLoading()); 856 EXPECT_FALSE(imageResource->isLoading());
876 } 857 }
877 858
878 TEST(ImageResourceTest, DecodeErrorWithEmptyBody) { 859 TEST(ImageResourceTest, DecodeErrorWithEmptyBody) {
879 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 860 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
880 ScopedRegisteredURL scopedRegisteredURL(testURL); 861 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
881 862
882 ResourceFetcher* fetcher = 863 ResourceFetcher* fetcher =
883 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 864 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
884 FetchRequest request(testURL, FetchInitiatorInfo()); 865 FetchRequest request(testURL, FetchInitiatorInfo());
885 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 866 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
886 std::unique_ptr<MockImageResourceObserver> observer = 867 std::unique_ptr<MockImageResourceObserver> observer =
887 MockImageResourceObserver::create(imageResource->getContent()); 868 MockImageResourceObserver::create(imageResource->getContent());
888 869
889 imageResource->loader()->didReceiveResponse( 870 imageResource->loader()->didReceiveResponse(
890 WrappedResourceResponse( 871 WrappedResourceResponse(
891 ResourceResponse(testURL, "image/jpeg", 0, nullAtom, String())), 872 ResourceResponse(testURL, "image/jpeg", 0, nullAtom, String())),
892 nullptr); 873 nullptr);
893 874
894 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 875 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
895 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 876 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
896 EXPECT_EQ(0, observer->imageChangedCount()); 877 EXPECT_EQ(0, observer->imageChangedCount());
897 878
898 imageResource->loader()->didFinishLoading(0.0, 0, 0); 879 imageResource->loader()->didFinishLoading(0.0, 0, 0);
899 880
900 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 881 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
901 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 882 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
902 EXPECT_EQ(ResourceStatus::DecodeError, 883 EXPECT_EQ(ResourceStatus::DecodeError,
903 observer->statusOnImageNotifyFinished()); 884 observer->statusOnImageNotifyFinished());
904 EXPECT_EQ(1, observer->imageChangedCount()); 885 EXPECT_EQ(1, observer->imageChangedCount());
905 EXPECT_FALSE(imageResource->isLoading()); 886 EXPECT_FALSE(imageResource->isLoading());
906 } 887 }
907 888
908 TEST(ImageResourceTest, FetchDisallowPlaceholder) { 889 TEST(ImageResourceTest, FetchDisallowPlaceholder) {
909 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 890 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
910 ScopedRegisteredURL scopedRegisteredURL(testURL); 891 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
911 892
912 FetchRequest request(testURL, FetchInitiatorInfo()); 893 FetchRequest request(testURL, FetchInitiatorInfo());
913 ImageResource* imageResource = ImageResource::fetch( 894 ImageResource* imageResource = ImageResource::fetch(
914 request, 895 request,
915 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 896 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
916 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 897 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
917 request.placeholderImageRequestType()); 898 request.placeholderImageRequestType());
918 EXPECT_EQ(nullAtom, 899 EXPECT_EQ(nullAtom,
919 imageResource->resourceRequest().httpHeaderField("range")); 900 imageResource->resourceRequest().httpHeaderField("range"));
920 EXPECT_FALSE(imageResource->isPlaceholder()); 901 EXPECT_FALSE(imageResource->isPlaceholder());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 936 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
956 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 937 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
957 request.placeholderImageRequestType()); 938 request.placeholderImageRequestType());
958 EXPECT_EQ(nullAtom, 939 EXPECT_EQ(nullAtom,
959 imageResource->resourceRequest().httpHeaderField("range")); 940 imageResource->resourceRequest().httpHeaderField("range"));
960 EXPECT_FALSE(imageResource->isPlaceholder()); 941 EXPECT_FALSE(imageResource->isPlaceholder());
961 } 942 }
962 943
963 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) { 944 TEST(ImageResourceTest, FetchAllowPlaceholderPostRequest) {
964 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 945 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
965 ScopedRegisteredURL scopedRegisteredURL(testURL); 946 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
966 ResourceRequest resourceRequest(testURL); 947 ResourceRequest resourceRequest(testURL);
967 resourceRequest.setHTTPMethod("POST"); 948 resourceRequest.setHTTPMethod("POST");
968 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 949 FetchRequest request(resourceRequest, FetchInitiatorInfo());
969 request.setAllowImagePlaceholder(); 950 request.setAllowImagePlaceholder();
970 ImageResource* imageResource = ImageResource::fetch( 951 ImageResource* imageResource = ImageResource::fetch(
971 request, 952 request,
972 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 953 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
973 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 954 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
974 request.placeholderImageRequestType()); 955 request.placeholderImageRequestType());
975 EXPECT_EQ(nullAtom, 956 EXPECT_EQ(nullAtom,
976 imageResource->resourceRequest().httpHeaderField("range")); 957 imageResource->resourceRequest().httpHeaderField("range"));
977 EXPECT_FALSE(imageResource->isPlaceholder()); 958 EXPECT_FALSE(imageResource->isPlaceholder());
978 959
979 imageResource->loader()->cancel(); 960 imageResource->loader()->cancel();
980 } 961 }
981 962
982 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) { 963 TEST(ImageResourceTest, FetchAllowPlaceholderExistingRangeHeader) {
983 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 964 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
984 ScopedRegisteredURL scopedRegisteredURL(testURL); 965 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
985 ResourceRequest resourceRequest(testURL); 966 ResourceRequest resourceRequest(testURL);
986 resourceRequest.setHTTPHeaderField("range", "bytes=128-255"); 967 resourceRequest.setHTTPHeaderField("range", "bytes=128-255");
987 FetchRequest request(resourceRequest, FetchInitiatorInfo()); 968 FetchRequest request(resourceRequest, FetchInitiatorInfo());
988 request.setAllowImagePlaceholder(); 969 request.setAllowImagePlaceholder();
989 ImageResource* imageResource = ImageResource::fetch( 970 ImageResource* imageResource = ImageResource::fetch(
990 request, 971 request,
991 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 972 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
992 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 973 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
993 request.placeholderImageRequestType()); 974 request.placeholderImageRequestType());
994 EXPECT_EQ("bytes=128-255", 975 EXPECT_EQ("bytes=128-255",
995 imageResource->resourceRequest().httpHeaderField("range")); 976 imageResource->resourceRequest().httpHeaderField("range"));
996 EXPECT_FALSE(imageResource->isPlaceholder()); 977 EXPECT_FALSE(imageResource->isPlaceholder());
997 978
998 imageResource->loader()->cancel(); 979 imageResource->loader()->cancel();
999 } 980 }
1000 981
1001 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) { 982 TEST(ImageResourceTest, FetchAllowPlaceholderSuccessful) {
1002 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 983 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1003 ScopedRegisteredURL scopedRegisteredURL(testURL); 984 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
1004 985
1005 FetchRequest request(testURL, FetchInitiatorInfo()); 986 FetchRequest request(testURL, FetchInitiatorInfo());
1006 request.setAllowImagePlaceholder(); 987 request.setAllowImagePlaceholder();
1007 ImageResource* imageResource = ImageResource::fetch( 988 ImageResource* imageResource = ImageResource::fetch(
1008 request, 989 request,
1009 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 990 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1010 EXPECT_EQ(FetchRequest::AllowPlaceholder, 991 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1011 request.placeholderImageRequestType()); 992 request.placeholderImageRequestType());
1012 EXPECT_EQ("bytes=0-2047", 993 EXPECT_EQ("bytes=0-2047",
1013 imageResource->resourceRequest().httpHeaderField("range")); 994 imageResource->resourceRequest().httpHeaderField("range"));
(...skipping 28 matching lines...) Expand all
1042 1023
1043 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1024 ASSERT_TRUE(imageResource->getContent()->hasImage());
1044 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1025 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1045 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1026 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1046 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage()); 1027 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
1047 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage()); 1028 EXPECT_FALSE(imageResource->getContent()->getImage()->isSVGImage());
1048 } 1029 }
1049 1030
1050 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) { 1031 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) {
1051 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1032 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1052 ScopedRegisteredURL scopedRegisteredURL(testURL); 1033 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
1053 1034
1054 FetchRequest request(testURL, FetchInitiatorInfo()); 1035 FetchRequest request(testURL, FetchInitiatorInfo());
1055 request.setAllowImagePlaceholder(); 1036 request.setAllowImagePlaceholder();
1056 ImageResource* imageResource = ImageResource::fetch( 1037 ImageResource* imageResource = ImageResource::fetch(
1057 request, 1038 request,
1058 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1039 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1059 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1040 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1060 request.placeholderImageRequestType()); 1041 request.placeholderImageRequestType());
1061 EXPECT_EQ("bytes=0-2047", 1042 EXPECT_EQ("bytes=0-2047",
1062 imageResource->resourceRequest().httpHeaderField("range")); 1043 imageResource->resourceRequest().httpHeaderField("range"));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished()); 1084 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnImageNotifyFinished());
1104 1085
1105 ASSERT_TRUE(imageResource->getContent()->hasImage()); 1086 ASSERT_TRUE(imageResource->getContent()->hasImage());
1106 EXPECT_EQ(1, imageResource->getContent()->getImage()->width()); 1087 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
1107 EXPECT_EQ(1, imageResource->getContent()->getImage()->height()); 1088 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
1108 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1089 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1109 } 1090 }
1110 1091
1111 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { 1092 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) {
1112 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1093 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1113 ScopedRegisteredURL scopedRegisteredURL(testURL); 1094 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
1114 1095
1115 ResourceFetcher* fetcher = 1096 ResourceFetcher* fetcher =
1116 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 1097 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
1117 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo()); 1098 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo());
1118 placeholderRequest.setAllowImagePlaceholder(); 1099 placeholderRequest.setAllowImagePlaceholder();
1119 ImageResource* imageResource = 1100 ImageResource* imageResource =
1120 ImageResource::fetch(placeholderRequest, fetcher); 1101 ImageResource::fetch(placeholderRequest, fetcher);
1121 std::unique_ptr<MockImageResourceObserver> observer = 1102 std::unique_ptr<MockImageResourceObserver> observer =
1122 MockImageResourceObserver::create(imageResource->getContent()); 1103 MockImageResourceObserver::create(imageResource->getContent());
1123 1104
1124 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo()); 1105 FetchRequest nonPlaceholderRequest(testURL, FetchInitiatorInfo());
1125 ImageResource* secondImageResource = 1106 ImageResource* secondImageResource =
1126 ImageResource::fetch(nonPlaceholderRequest, fetcher); 1107 ImageResource::fetch(nonPlaceholderRequest, fetcher);
1127 EXPECT_EQ(imageResource, secondImageResource); 1108 EXPECT_EQ(imageResource, secondImageResource);
1128 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 1109 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
1129 EXPECT_FALSE(imageResource->isPlaceholder()); 1110 EXPECT_FALSE(imageResource->isPlaceholder());
1130 EXPECT_EQ(nullAtom, 1111 EXPECT_EQ(nullAtom,
1131 imageResource->resourceRequest().httpHeaderField("range")); 1112 imageResource->resourceRequest().httpHeaderField("range"));
1132 EXPECT_EQ( 1113 EXPECT_EQ(
1133 static_cast<int>(WebCachePolicy::UseProtocolCachePolicy), 1114 static_cast<int>(WebCachePolicy::UseProtocolCachePolicy),
1134 static_cast<int>(imageResource->resourceRequest().getCachePolicy())); 1115 static_cast<int>(imageResource->resourceRequest().getCachePolicy()));
1135 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 1116 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
1136 1117
1137 imageResource->loader()->cancel(); 1118 imageResource->loader()->cancel();
1138 } 1119 }
1139 1120
1140 TEST(ImageResourceTest, 1121 TEST(ImageResourceTest,
1141 FetchAllowPlaceholderThenDisallowPlaceholderAfterLoaded) { 1122 FetchAllowPlaceholderThenDisallowPlaceholderAfterLoaded) {
1142 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1123 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1143 ScopedRegisteredURL scopedRegisteredURL(testURL); 1124 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
1144 1125
1145 ResourceFetcher* fetcher = 1126 ResourceFetcher* fetcher =
1146 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 1127 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
1147 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo()); 1128 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo());
1148 placeholderRequest.setAllowImagePlaceholder(); 1129 placeholderRequest.setAllowImagePlaceholder();
1149 ImageResource* imageResource = 1130 ImageResource* imageResource =
1150 ImageResource::fetch(placeholderRequest, fetcher); 1131 ImageResource::fetch(placeholderRequest, fetcher);
1151 std::unique_ptr<MockImageResourceObserver> observer = 1132 std::unique_ptr<MockImageResourceObserver> observer =
1152 MockImageResourceObserver::create(imageResource->getContent()); 1133 MockImageResourceObserver::create(imageResource->getContent());
1153 1134
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 static_cast<int>(WebCachePolicy::UseProtocolCachePolicy), 1167 static_cast<int>(WebCachePolicy::UseProtocolCachePolicy),
1187 static_cast<int>(imageResource->resourceRequest().getCachePolicy())); 1168 static_cast<int>(imageResource->resourceRequest().getCachePolicy()));
1188 1169
1189 imageResource->loader()->cancel(); 1170 imageResource->loader()->cancel();
1190 } 1171 }
1191 1172
1192 TEST(ImageResourceTest, PeriodicFlushTest) { 1173 TEST(ImageResourceTest, PeriodicFlushTest) {
1193 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> 1174 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler>
1194 platform; 1175 platform;
1195 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1176 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1196 ScopedRegisteredURL scopedRegisteredURL(testURL); 1177 ScopedMockedURL scopedMockedURL(registerURLLoad(testURL));
1197 ResourceRequest request = ResourceRequest(testURL); 1178 ResourceRequest request = ResourceRequest(testURL);
1198 ImageResource* imageResource = ImageResource::create(request); 1179 ImageResource* imageResource = ImageResource::create(request);
1199 imageResource->setStatus(ResourceStatus::Pending); 1180 imageResource->setStatus(ResourceStatus::Pending);
1200 1181
1201 std::unique_ptr<MockImageResourceObserver> observer = 1182 std::unique_ptr<MockImageResourceObserver> observer =
1202 MockImageResourceObserver::create(imageResource->getContent()); 1183 MockImageResourceObserver::create(imageResource->getContent());
1203 1184
1204 // Send the image response. 1185 // Send the image response.
1205 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage2), 1186 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage2),
1206 nullAtom, String()); 1187 nullAtom, String());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1251 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1271 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1252 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1272 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 1253 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
1273 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 1254 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
1274 1255
1275 WTF::setTimeFunctionsForTesting(nullptr); 1256 WTF::setTimeFunctionsForTesting(nullptr);
1276 } 1257 }
1277 1258
1278 } // namespace 1259 } // namespace
1279 } // namespace blink 1260 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698