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

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

Powered by Google App Engine
This is Rietveld 408576698