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

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

Issue 2674953003: Only generate suggested filenames when actually dragging an image. (Closed)
Patch Set: rebase 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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 fetcher->startLoad(imageResource); 240 fetcher->startLoad(imageResource);
241 241
242 std::unique_ptr<MockImageResourceObserver> observer = 242 std::unique_ptr<MockImageResourceObserver> observer =
243 MockImageResourceObserver::create(imageResource->getContent()); 243 MockImageResourceObserver::create(imageResource->getContent());
244 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 244 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
245 245
246 // Send the multipart response. No image or data buffer is created. Note that 246 // Send the multipart response. No image or data buffer is created. Note that
247 // the response must be routed through ResourceLoader to ensure the load is 247 // the response must be routed through ResourceLoader to ensure the load is
248 // flagged as multipart. 248 // flagged as multipart.
249 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, 249 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0,
250 nullAtom, String()); 250 nullAtom);
251 multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); 251 multipartResponse.setMultipartBoundary("boundary", strlen("boundary"));
252 imageResource->loader()->didReceiveResponse( 252 imageResource->loader()->didReceiveResponse(
253 WrappedResourceResponse(multipartResponse), nullptr); 253 WrappedResourceResponse(multipartResponse), nullptr);
254 EXPECT_FALSE(imageResource->resourceBuffer()); 254 EXPECT_FALSE(imageResource->resourceBuffer());
255 EXPECT_FALSE(imageResource->getContent()->hasImage()); 255 EXPECT_FALSE(imageResource->getContent()->hasImage());
256 EXPECT_EQ(0, observer->imageChangedCount()); 256 EXPECT_EQ(0, observer->imageChangedCount());
257 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 257 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
258 EXPECT_EQ("multipart/x-mixed-replace", imageResource->response().mimeType()); 258 EXPECT_EQ("multipart/x-mixed-replace", imageResource->response().mimeType());
259 259
260 const char firstPart[] = 260 const char firstPart[] =
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 341
342 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) { 342 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) {
343 ImageResource* imageResource = ImageResource::create(ResourceRequest()); 343 ImageResource* imageResource = ImageResource::create(ResourceRequest());
344 imageResource->setStatus(ResourceStatus::Pending); 344 imageResource->setStatus(ResourceStatus::Pending);
345 345
346 std::unique_ptr<MockImageResourceObserver> observer = 346 std::unique_ptr<MockImageResourceObserver> observer =
347 MockImageResourceObserver::create(imageResource->getContent()); 347 MockImageResourceObserver::create(imageResource->getContent());
348 348
349 // Send the image response. 349 // Send the image response.
350 imageResource->responseReceived( 350 imageResource->responseReceived(
351 ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, nullAtom, 351 ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, nullAtom),
352 String()),
353 nullptr); 352 nullptr);
354 353
355 imageResource->responseReceived( 354 imageResource->responseReceived(
356 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom, 355 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom),
357 String()),
358 nullptr); 356 nullptr);
359 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage), 357 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage),
360 sizeof(kJpegImage)); 358 sizeof(kJpegImage));
361 EXPECT_NE(0u, imageResource->encodedSizeMemoryUsageForTesting()); 359 EXPECT_NE(0u, imageResource->encodedSizeMemoryUsageForTesting());
362 imageResource->finish(); 360 imageResource->finish();
363 EXPECT_EQ(0u, imageResource->encodedSizeMemoryUsageForTesting()); 361 EXPECT_EQ(0u, imageResource->encodedSizeMemoryUsageForTesting());
364 EXPECT_FALSE(imageResource->errorOccurred()); 362 EXPECT_FALSE(imageResource->errorOccurred());
365 ASSERT_TRUE(imageResource->getContent()->hasImage()); 363 ASSERT_TRUE(imageResource->getContent()->hasImage());
366 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 364 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
367 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 365 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
(...skipping 17 matching lines...) Expand all
385 383
386 TEST(ImageResourceTest, UpdateBitmapImages) { 384 TEST(ImageResourceTest, UpdateBitmapImages) {
387 ImageResource* imageResource = ImageResource::create(ResourceRequest()); 385 ImageResource* imageResource = ImageResource::create(ResourceRequest());
388 imageResource->setStatus(ResourceStatus::Pending); 386 imageResource->setStatus(ResourceStatus::Pending);
389 387
390 std::unique_ptr<MockImageResourceObserver> observer = 388 std::unique_ptr<MockImageResourceObserver> observer =
391 MockImageResourceObserver::create(imageResource->getContent()); 389 MockImageResourceObserver::create(imageResource->getContent());
392 390
393 // Send the image response. 391 // Send the image response.
394 imageResource->responseReceived( 392 imageResource->responseReceived(
395 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom, 393 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom),
396 String()),
397 nullptr); 394 nullptr);
398 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage), 395 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage),
399 sizeof(kJpegImage)); 396 sizeof(kJpegImage));
400 imageResource->finish(); 397 imageResource->finish();
401 EXPECT_FALSE(imageResource->errorOccurred()); 398 EXPECT_FALSE(imageResource->errorOccurred());
402 ASSERT_TRUE(imageResource->getContent()->hasImage()); 399 ASSERT_TRUE(imageResource->getContent()->hasImage());
403 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 400 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
404 EXPECT_EQ(2, observer->imageChangedCount()); 401 EXPECT_EQ(2, observer->imageChangedCount());
405 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 402 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
406 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 403 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
407 } 404 }
408 405
409 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { 406 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) {
410 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 407 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
411 ScopedRegisteredURL scopedRegisteredURL(testURL); 408 ScopedRegisteredURL scopedRegisteredURL(testURL);
412 ResourceRequest request = ResourceRequest(testURL); 409 ResourceRequest request = ResourceRequest(testURL);
413 request.setPreviewsState(WebURLRequest::ServerLoFiOn); 410 request.setPreviewsState(WebURLRequest::ServerLoFiOn);
414 ImageResource* imageResource = ImageResource::create(request); 411 ImageResource* imageResource = ImageResource::create(request);
415 imageResource->setStatus(ResourceStatus::Pending); 412 imageResource->setStatus(ResourceStatus::Pending);
416 413
417 std::unique_ptr<MockImageResourceObserver> observer = 414 std::unique_ptr<MockImageResourceObserver> observer =
418 MockImageResourceObserver::create(imageResource->getContent()); 415 MockImageResourceObserver::create(imageResource->getContent());
419 ResourceFetcher* fetcher = 416 ResourceFetcher* fetcher =
420 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 417 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
421 418
422 // Send the image response. 419 // Send the image response.
423 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), 420 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage),
424 nullAtom, String()); 421 nullAtom);
425 resourceResponse.addHTTPHeaderField("chrome-proxy-content-transform", 422 resourceResponse.addHTTPHeaderField("chrome-proxy-content-transform",
426 "empty-image"); 423 "empty-image");
427 424
428 imageResource->responseReceived(resourceResponse, nullptr); 425 imageResource->responseReceived(resourceResponse, nullptr);
429 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage), 426 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage),
430 sizeof(kJpegImage)); 427 sizeof(kJpegImage));
431 imageResource->finish(); 428 imageResource->finish();
432 EXPECT_FALSE(imageResource->errorOccurred()); 429 EXPECT_FALSE(imageResource->errorOccurred());
433 ASSERT_TRUE(imageResource->getContent()->hasImage()); 430 ASSERT_TRUE(imageResource->getContent()->hasImage());
434 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 431 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 request.setPreviewsState(WebURLRequest::ServerLoFiOn); 475 request.setPreviewsState(WebURLRequest::ServerLoFiOn);
479 FetchRequest fetchRequest(request, FetchInitiatorInfo()); 476 FetchRequest fetchRequest(request, FetchInitiatorInfo());
480 ResourceFetcher* fetcher = 477 ResourceFetcher* fetcher =
481 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 478 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
482 479
483 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher); 480 ImageResource* imageResource = ImageResource::fetch(fetchRequest, fetcher);
484 std::unique_ptr<MockImageResourceObserver> observer = 481 std::unique_ptr<MockImageResourceObserver> observer =
485 MockImageResourceObserver::create(imageResource->getContent()); 482 MockImageResourceObserver::create(imageResource->getContent());
486 483
487 // Send the image response. 484 // Send the image response.
488 ResourceResponse initialResourceResponse( 485 ResourceResponse initialResourceResponse(testURL, "image/jpeg",
489 testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()); 486 sizeof(kJpegImage), nullAtom);
490 initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); 487 initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low");
491 488
492 imageResource->loader()->didReceiveResponse( 489 imageResource->loader()->didReceiveResponse(
493 WrappedResourceResponse(initialResourceResponse)); 490 WrappedResourceResponse(initialResourceResponse));
494 imageResource->loader()->didReceiveData( 491 imageResource->loader()->didReceiveData(
495 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 492 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
496 493
497 EXPECT_FALSE(imageResource->errorOccurred()); 494 EXPECT_FALSE(imageResource->errorOccurred());
498 ASSERT_TRUE(imageResource->getContent()->hasImage()); 495 ASSERT_TRUE(imageResource->getContent()->hasImage());
499 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 496 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
(...skipping 11 matching lines...) Expand all
511 EXPECT_FALSE(imageResource->resourceBuffer()); 508 EXPECT_FALSE(imageResource->resourceBuffer());
512 EXPECT_FALSE(imageResource->getContent()->hasImage()); 509 EXPECT_FALSE(imageResource->getContent()->hasImage());
513 EXPECT_EQ(2, observer->imageChangedCount()); 510 EXPECT_EQ(2, observer->imageChangedCount());
514 EXPECT_EQ(0, observer->imageWidthOnLastImageChanged()); 511 EXPECT_EQ(0, observer->imageWidthOnLastImageChanged());
515 // The observer should not have been notified of completion yet, since the 512 // The observer should not have been notified of completion yet, since the
516 // image 513 // image
517 // is still loading. 514 // is still loading.
518 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 515 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
519 516
520 imageResource->loader()->didReceiveResponse( 517 imageResource->loader()->didReceiveResponse(
521 WrappedResourceResponse(ResourceResponse( 518 WrappedResourceResponse(ResourceResponse(testURL, "image/jpeg",
522 testURL, "image/jpeg", sizeof(kJpegImage2), nullAtom, String())), 519 sizeof(kJpegImage2), nullAtom)),
523 nullptr); 520 nullptr);
524 imageResource->loader()->didReceiveData( 521 imageResource->loader()->didReceiveData(
525 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2)); 522 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2));
526 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage2), 523 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage2),
527 sizeof(kJpegImage2)); 524 sizeof(kJpegImage2));
528 525
529 EXPECT_FALSE(imageResource->errorOccurred()); 526 EXPECT_FALSE(imageResource->errorOccurred());
530 ASSERT_TRUE(imageResource->getContent()->hasImage()); 527 ASSERT_TRUE(imageResource->getContent()->hasImage());
531 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull()); 528 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
532 EXPECT_EQ(kJpegImage2Width, observer->imageWidthOnLastImageChanged()); 529 EXPECT_EQ(kJpegImage2Width, observer->imageWidthOnLastImageChanged());
(...skipping 16 matching lines...) Expand all
549 request.setAllowImagePlaceholder(); 546 request.setAllowImagePlaceholder();
550 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 547 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
551 EXPECT_EQ(FetchRequest::AllowPlaceholder, 548 EXPECT_EQ(FetchRequest::AllowPlaceholder,
552 request.placeholderImageRequestType()); 549 request.placeholderImageRequestType());
553 EXPECT_EQ("bytes=0-2047", 550 EXPECT_EQ("bytes=0-2047",
554 imageResource->resourceRequest().httpHeaderField("range")); 551 imageResource->resourceRequest().httpHeaderField("range"));
555 std::unique_ptr<MockImageResourceObserver> observer = 552 std::unique_ptr<MockImageResourceObserver> observer =
556 MockImageResourceObserver::create(imageResource->getContent()); 553 MockImageResourceObserver::create(imageResource->getContent());
557 554
558 ResourceResponse response(testURL, "image/jpeg", 555 ResourceResponse response(testURL, "image/jpeg",
559 kJpegImageSubrangeWithDimensionsLength, nullAtom, 556 kJpegImageSubrangeWithDimensionsLength, nullAtom);
560 String());
561 response.setHTTPStatusCode(206); 557 response.setHTTPStatusCode(206);
562 response.setHTTPHeaderField( 558 response.setHTTPHeaderField(
563 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, 559 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength,
564 sizeof(kJpegImage))); 560 sizeof(kJpegImage)));
565 imageResource->loader()->didReceiveResponse( 561 imageResource->loader()->didReceiveResponse(
566 WrappedResourceResponse(response)); 562 WrappedResourceResponse(response));
567 imageResource->loader()->didReceiveData( 563 imageResource->loader()->didReceiveData(
568 reinterpret_cast<const char*>(kJpegImage), 564 reinterpret_cast<const char*>(kJpegImage),
569 kJpegImageSubrangeWithDimensionsLength); 565 kJpegImageSubrangeWithDimensionsLength);
570 imageResource->loader()->didFinishLoading( 566 imageResource->loader()->didFinishLoading(
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 849
854 ResourceFetcher* fetcher = 850 ResourceFetcher* fetcher =
855 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 851 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
856 FetchRequest request(testURL, FetchInitiatorInfo()); 852 FetchRequest request(testURL, FetchInitiatorInfo());
857 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 853 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
858 std::unique_ptr<MockImageResourceObserver> observer = 854 std::unique_ptr<MockImageResourceObserver> observer =
859 MockImageResourceObserver::create(imageResource->getContent()); 855 MockImageResourceObserver::create(imageResource->getContent());
860 856
861 imageResource->loader()->didReceiveResponse( 857 imageResource->loader()->didReceiveResponse(
862 WrappedResourceResponse( 858 WrappedResourceResponse(
863 ResourceResponse(testURL, "image/jpeg", 18, nullAtom, String())), 859 ResourceResponse(testURL, "image/jpeg", 18, nullAtom)),
864 nullptr); 860 nullptr);
865 861
866 EXPECT_EQ(0, observer->imageChangedCount()); 862 EXPECT_EQ(0, observer->imageChangedCount());
867 863
868 imageResource->loader()->didReceiveData("notactuallyanimage", 18); 864 imageResource->loader()->didReceiveData("notactuallyanimage", 18);
869 865
870 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 866 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
871 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 867 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
872 EXPECT_EQ(ResourceStatus::DecodeError, 868 EXPECT_EQ(ResourceStatus::DecodeError,
873 observer->statusOnImageNotifyFinished()); 869 observer->statusOnImageNotifyFinished());
874 EXPECT_EQ(2, observer->imageChangedCount()); 870 EXPECT_EQ(2, observer->imageChangedCount());
875 EXPECT_FALSE(imageResource->isLoading()); 871 EXPECT_FALSE(imageResource->isLoading());
876 } 872 }
877 873
878 TEST(ImageResourceTest, DecodeErrorWithEmptyBody) { 874 TEST(ImageResourceTest, DecodeErrorWithEmptyBody) {
879 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 875 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
880 ScopedRegisteredURL scopedRegisteredURL(testURL); 876 ScopedRegisteredURL scopedRegisteredURL(testURL);
881 877
882 ResourceFetcher* fetcher = 878 ResourceFetcher* fetcher =
883 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 879 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
884 FetchRequest request(testURL, FetchInitiatorInfo()); 880 FetchRequest request(testURL, FetchInitiatorInfo());
885 ImageResource* imageResource = ImageResource::fetch(request, fetcher); 881 ImageResource* imageResource = ImageResource::fetch(request, fetcher);
886 std::unique_ptr<MockImageResourceObserver> observer = 882 std::unique_ptr<MockImageResourceObserver> observer =
887 MockImageResourceObserver::create(imageResource->getContent()); 883 MockImageResourceObserver::create(imageResource->getContent());
888 884
889 imageResource->loader()->didReceiveResponse( 885 imageResource->loader()->didReceiveResponse(
890 WrappedResourceResponse( 886 WrappedResourceResponse(
891 ResourceResponse(testURL, "image/jpeg", 0, nullAtom, String())), 887 ResourceResponse(testURL, "image/jpeg", 0, nullAtom)),
892 nullptr); 888 nullptr);
893 889
894 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 890 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
895 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 891 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
896 EXPECT_EQ(0, observer->imageChangedCount()); 892 EXPECT_EQ(0, observer->imageChangedCount());
897 893
898 imageResource->loader()->didFinishLoading(0.0, 0, 0); 894 imageResource->loader()->didFinishLoading(0.0, 0, 0);
899 895
900 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus()); 896 EXPECT_EQ(ResourceStatus::DecodeError, imageResource->getStatus());
901 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 897 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
(...skipping 12 matching lines...) Expand all
914 request, 910 request,
915 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 911 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
916 EXPECT_EQ(FetchRequest::DisallowPlaceholder, 912 EXPECT_EQ(FetchRequest::DisallowPlaceholder,
917 request.placeholderImageRequestType()); 913 request.placeholderImageRequestType());
918 EXPECT_EQ(nullAtom, 914 EXPECT_EQ(nullAtom,
919 imageResource->resourceRequest().httpHeaderField("range")); 915 imageResource->resourceRequest().httpHeaderField("range"));
920 EXPECT_FALSE(imageResource->isPlaceholder()); 916 EXPECT_FALSE(imageResource->isPlaceholder());
921 std::unique_ptr<MockImageResourceObserver> observer = 917 std::unique_ptr<MockImageResourceObserver> observer =
922 MockImageResourceObserver::create(imageResource->getContent()); 918 MockImageResourceObserver::create(imageResource->getContent());
923 919
924 imageResource->loader()->didReceiveResponse( 920 imageResource->loader()->didReceiveResponse(WrappedResourceResponse(
925 WrappedResourceResponse(ResourceResponse( 921 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom)));
926 testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String())));
927 imageResource->loader()->didReceiveData( 922 imageResource->loader()->didReceiveData(
928 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 923 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
929 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 924 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
930 sizeof(kJpegImage)); 925 sizeof(kJpegImage));
931 926
932 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 927 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
933 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 928 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
934 EXPECT_FALSE(imageResource->isPlaceholder()); 929 EXPECT_FALSE(imageResource->isPlaceholder());
935 EXPECT_LT(0, observer->imageChangedCount()); 930 EXPECT_LT(0, observer->imageChangedCount());
936 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 931 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 ResourceFetcher::create(ImageResourceTestMockFetchContext::create())); 1004 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()));
1010 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1005 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1011 request.placeholderImageRequestType()); 1006 request.placeholderImageRequestType());
1012 EXPECT_EQ("bytes=0-2047", 1007 EXPECT_EQ("bytes=0-2047",
1013 imageResource->resourceRequest().httpHeaderField("range")); 1008 imageResource->resourceRequest().httpHeaderField("range"));
1014 EXPECT_TRUE(imageResource->isPlaceholder()); 1009 EXPECT_TRUE(imageResource->isPlaceholder());
1015 std::unique_ptr<MockImageResourceObserver> observer = 1010 std::unique_ptr<MockImageResourceObserver> observer =
1016 MockImageResourceObserver::create(imageResource->getContent()); 1011 MockImageResourceObserver::create(imageResource->getContent());
1017 1012
1018 ResourceResponse response(testURL, "image/jpeg", 1013 ResourceResponse response(testURL, "image/jpeg",
1019 kJpegImageSubrangeWithDimensionsLength, nullAtom, 1014 kJpegImageSubrangeWithDimensionsLength, nullAtom);
1020 String());
1021 response.setHTTPStatusCode(206); 1015 response.setHTTPStatusCode(206);
1022 response.setHTTPHeaderField( 1016 response.setHTTPHeaderField(
1023 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, 1017 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength,
1024 sizeof(kJpegImage))); 1018 sizeof(kJpegImage)));
1025 imageResource->loader()->didReceiveResponse( 1019 imageResource->loader()->didReceiveResponse(
1026 WrappedResourceResponse(response)); 1020 WrappedResourceResponse(response));
1027 imageResource->loader()->didReceiveData( 1021 imageResource->loader()->didReceiveData(
1028 reinterpret_cast<const char*>(kJpegImage), 1022 reinterpret_cast<const char*>(kJpegImage),
1029 kJpegImageSubrangeWithDimensionsLength); 1023 kJpegImageSubrangeWithDimensionsLength);
1030 imageResource->loader()->didFinishLoading( 1024 imageResource->loader()->didFinishLoading(
(...skipping 28 matching lines...) Expand all
1059 EXPECT_EQ(FetchRequest::AllowPlaceholder, 1053 EXPECT_EQ(FetchRequest::AllowPlaceholder,
1060 request.placeholderImageRequestType()); 1054 request.placeholderImageRequestType());
1061 EXPECT_EQ("bytes=0-2047", 1055 EXPECT_EQ("bytes=0-2047",
1062 imageResource->resourceRequest().httpHeaderField("range")); 1056 imageResource->resourceRequest().httpHeaderField("range"));
1063 EXPECT_TRUE(imageResource->isPlaceholder()); 1057 EXPECT_TRUE(imageResource->isPlaceholder());
1064 std::unique_ptr<MockImageResourceObserver> observer = 1058 std::unique_ptr<MockImageResourceObserver> observer =
1065 MockImageResourceObserver::create(imageResource->getContent()); 1059 MockImageResourceObserver::create(imageResource->getContent());
1066 1060
1067 const char kBadData[] = "notanimageresponse"; 1061 const char kBadData[] = "notanimageresponse";
1068 1062
1069 imageResource->loader()->didReceiveResponse( 1063 imageResource->loader()->didReceiveResponse(WrappedResourceResponse(
1070 WrappedResourceResponse(ResourceResponse( 1064 ResourceResponse(testURL, "image/jpeg", sizeof(kBadData), nullAtom)));
1071 testURL, "image/jpeg", sizeof(kBadData), nullAtom, String())));
1072 1065
1073 EXPECT_EQ(0, observer->imageChangedCount()); 1066 EXPECT_EQ(0, observer->imageChangedCount());
1074 1067
1075 imageResource->loader()->didReceiveData(kBadData, sizeof(kBadData)); 1068 imageResource->loader()->didReceiveData(kBadData, sizeof(kBadData));
1076 1069
1077 // The dimensions could not be extracted, so the full original image should be 1070 // The dimensions could not be extracted, so the full original image should be
1078 // loading. 1071 // loading.
1079 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus()); 1072 EXPECT_EQ(ResourceStatus::Pending, imageResource->getStatus());
1080 EXPECT_FALSE(imageResource->isPlaceholder()); 1073 EXPECT_FALSE(imageResource->isPlaceholder());
1081 EXPECT_EQ(nullAtom, 1074 EXPECT_EQ(nullAtom,
1082 imageResource->resourceRequest().httpHeaderField("range")); 1075 imageResource->resourceRequest().httpHeaderField("range"));
1083 EXPECT_EQ( 1076 EXPECT_EQ(
1084 static_cast<int>(WebCachePolicy::BypassingCache), 1077 static_cast<int>(WebCachePolicy::BypassingCache),
1085 static_cast<int>(imageResource->resourceRequest().getCachePolicy())); 1078 static_cast<int>(imageResource->resourceRequest().getCachePolicy()));
1086 EXPECT_FALSE(observer->imageNotifyFinishedCalled()); 1079 EXPECT_FALSE(observer->imageNotifyFinishedCalled());
1087 EXPECT_EQ(3, observer->imageChangedCount()); 1080 EXPECT_EQ(3, observer->imageChangedCount());
1088 1081
1089 imageResource->loader()->didReceiveResponse( 1082 imageResource->loader()->didReceiveResponse(WrappedResourceResponse(
1090 WrappedResourceResponse(ResourceResponse( 1083 ResourceResponse(testURL, "image/jpeg", sizeof(kJpegImage), nullAtom)));
1091 testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String())));
1092 imageResource->loader()->didReceiveData( 1084 imageResource->loader()->didReceiveData(
1093 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 1085 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
1094 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage), 1086 imageResource->loader()->didFinishLoading(0.0, sizeof(kJpegImage),
1095 sizeof(kJpegImage)); 1087 sizeof(kJpegImage));
1096 1088
1097 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus()); 1089 EXPECT_EQ(ResourceStatus::Cached, imageResource->getStatus());
1098 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize()); 1090 EXPECT_EQ(sizeof(kJpegImage), imageResource->encodedSize());
1099 EXPECT_FALSE(imageResource->isPlaceholder()); 1091 EXPECT_FALSE(imageResource->isPlaceholder());
1100 EXPECT_LT(3, observer->imageChangedCount()); 1092 EXPECT_LT(3, observer->imageChangedCount());
1101 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged()); 1093 EXPECT_EQ(kJpegImageWidth, observer->imageWidthOnLastImageChanged());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 ResourceFetcher* fetcher = 1137 ResourceFetcher* fetcher =
1146 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 1138 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
1147 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo()); 1139 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo());
1148 placeholderRequest.setAllowImagePlaceholder(); 1140 placeholderRequest.setAllowImagePlaceholder();
1149 ImageResource* imageResource = 1141 ImageResource* imageResource =
1150 ImageResource::fetch(placeholderRequest, fetcher); 1142 ImageResource::fetch(placeholderRequest, fetcher);
1151 std::unique_ptr<MockImageResourceObserver> observer = 1143 std::unique_ptr<MockImageResourceObserver> observer =
1152 MockImageResourceObserver::create(imageResource->getContent()); 1144 MockImageResourceObserver::create(imageResource->getContent());
1153 1145
1154 ResourceResponse response(testURL, "image/jpeg", 1146 ResourceResponse response(testURL, "image/jpeg",
1155 kJpegImageSubrangeWithDimensionsLength, nullAtom, 1147 kJpegImageSubrangeWithDimensionsLength, nullAtom);
1156 String());
1157 response.setHTTPStatusCode(206); 1148 response.setHTTPStatusCode(206);
1158 response.setHTTPHeaderField( 1149 response.setHTTPHeaderField(
1159 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength, 1150 "content-range", buildContentRange(kJpegImageSubrangeWithDimensionsLength,
1160 sizeof(kJpegImage))); 1151 sizeof(kJpegImage)));
1161 imageResource->loader()->didReceiveResponse( 1152 imageResource->loader()->didReceiveResponse(
1162 WrappedResourceResponse(response)); 1153 WrappedResourceResponse(response));
1163 imageResource->loader()->didReceiveData( 1154 imageResource->loader()->didReceiveData(
1164 reinterpret_cast<const char*>(kJpegImage), 1155 reinterpret_cast<const char*>(kJpegImage),
1165 kJpegImageSubrangeWithDimensionsLength); 1156 kJpegImageSubrangeWithDimensionsLength);
1166 imageResource->loader()->didFinishLoading( 1157 imageResource->loader()->didFinishLoading(
(...skipping 29 matching lines...) Expand all
1196 ScopedRegisteredURL scopedRegisteredURL(testURL); 1187 ScopedRegisteredURL scopedRegisteredURL(testURL);
1197 ResourceRequest request = ResourceRequest(testURL); 1188 ResourceRequest request = ResourceRequest(testURL);
1198 ImageResource* imageResource = ImageResource::create(request); 1189 ImageResource* imageResource = ImageResource::create(request);
1199 imageResource->setStatus(ResourceStatus::Pending); 1190 imageResource->setStatus(ResourceStatus::Pending);
1200 1191
1201 std::unique_ptr<MockImageResourceObserver> observer = 1192 std::unique_ptr<MockImageResourceObserver> observer =
1202 MockImageResourceObserver::create(imageResource->getContent()); 1193 MockImageResourceObserver::create(imageResource->getContent());
1203 1194
1204 // Send the image response. 1195 // Send the image response.
1205 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage2), 1196 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage2),
1206 nullAtom, String()); 1197 nullAtom);
1207 resourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); 1198 resourceResponse.addHTTPHeaderField("chrome-proxy", "q=low");
1208 1199
1209 imageResource->responseReceived(resourceResponse, nullptr); 1200 imageResource->responseReceived(resourceResponse, nullptr);
1210 1201
1211 // This is number is sufficiently large amount of bytes necessary for the 1202 // This is number is sufficiently large amount of bytes necessary for the
1212 // image to be created (since the size is known). This was determined by 1203 // image to be created (since the size is known). This was determined by
1213 // appending one byte at a time (with flushes) until the image was decoded. 1204 // appending one byte at a time (with flushes) until the image was decoded.
1214 size_t meaningfulImageSize = 280; 1205 size_t meaningfulImageSize = 280;
1215 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage2), 1206 imageResource->appendData(reinterpret_cast<const char*>(kJpegImage2),
1216 meaningfulImageSize); 1207 meaningfulImageSize);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 EXPECT_TRUE(observer->imageNotifyFinishedCalled()); 1261 EXPECT_TRUE(observer->imageNotifyFinishedCalled());
1271 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage()); 1262 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
1272 EXPECT_EQ(50, imageResource->getContent()->getImage()->width()); 1263 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
1273 EXPECT_EQ(50, imageResource->getContent()->getImage()->height()); 1264 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
1274 1265
1275 WTF::setTimeFunctionsForTesting(nullptr); 1266 WTF::setTimeFunctionsForTesting(nullptr);
1276 } 1267 }
1277 1268
1278 } // namespace 1269 } // namespace
1279 } // namespace blink 1270 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698