OLD | NEW |
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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 | 163 |
164 void ReceiveResponse(ImageResource* image_resource, | 164 void ReceiveResponse(ImageResource* image_resource, |
165 const KURL& url, | 165 const KURL& url, |
166 const AtomicString& mime_type, | 166 const AtomicString& mime_type, |
167 const char* data, | 167 const char* data, |
168 size_t data_size) { | 168 size_t data_size) { |
169 ResourceResponse response; | 169 ResourceResponse response; |
170 response.SetURL(url); | 170 response.SetURL(url); |
171 response.SetHTTPStatusCode(200); | 171 response.SetHTTPStatusCode(200); |
172 response.SetMimeType(mime_type); | 172 response.SetMimeType(mime_type); |
| 173 image_resource->SetStatus(ResourceStatus::kPending); |
| 174 image_resource->NotifyStartLoad(); |
173 image_resource->ResponseReceived(response, nullptr); | 175 image_resource->ResponseReceived(response, nullptr); |
174 image_resource->AppendData(data, data_size); | 176 image_resource->AppendData(data, data_size); |
175 image_resource->Finish(); | 177 image_resource->Finish(); |
176 } | 178 } |
177 | 179 |
178 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, | 180 void TestThatReloadIsStartedThenServeReload(const KURL& test_url, |
179 ImageResource* image_resource, | 181 ImageResource* image_resource, |
180 ImageResourceContent* content, | 182 ImageResourceContent* content, |
181 MockImageResourceObserver* observer, | 183 MockImageResourceObserver* observer, |
182 WebCachePolicy policy_for_reload) { | 184 WebCachePolicy policy_for_reload) { |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 // Trigger the cancel timer, ensure the load was cancelled and the resource | 441 // Trigger the cancel timer, ensure the load was cancelled and the resource |
440 // was evicted from the cache. | 442 // was evicted from the cache. |
441 blink::testing::RunPendingTasks(); | 443 blink::testing::RunPendingTasks(); |
442 EXPECT_EQ(ResourceStatus::kLoadError, image_resource->GetStatus()); | 444 EXPECT_EQ(ResourceStatus::kLoadError, image_resource->GetStatus()); |
443 EXPECT_FALSE(GetMemoryCache()->ResourceForURL(test_url)); | 445 EXPECT_FALSE(GetMemoryCache()->ResourceForURL(test_url)); |
444 } | 446 } |
445 | 447 |
446 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) { | 448 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) { |
447 ImageResource* image_resource = ImageResource::Create(ResourceRequest()); | 449 ImageResource* image_resource = ImageResource::Create(ResourceRequest()); |
448 image_resource->SetStatus(ResourceStatus::kPending); | 450 image_resource->SetStatus(ResourceStatus::kPending); |
| 451 image_resource->NotifyStartLoad(); |
449 | 452 |
450 std::unique_ptr<MockImageResourceObserver> observer = | 453 std::unique_ptr<MockImageResourceObserver> observer = |
451 MockImageResourceObserver::Create(image_resource->GetContent()); | 454 MockImageResourceObserver::Create(image_resource->GetContent()); |
452 | 455 |
453 // Send the image response. | 456 // Send the image response. |
454 image_resource->ResponseReceived( | 457 image_resource->ResponseReceived( |
455 ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, g_null_atom), | 458 ResourceResponse(KURL(), "multipart/x-mixed-replace", 0, g_null_atom), |
456 nullptr); | 459 nullptr); |
457 | 460 |
458 image_resource->ResponseReceived( | 461 image_resource->ResponseReceived( |
(...skipping 22 matching lines...) Expand all Loading... |
481 image_resource->Prune(); | 484 image_resource->Prune(); |
482 EXPECT_FALSE(image_resource->IsAlive()); | 485 EXPECT_FALSE(image_resource->IsAlive()); |
483 EXPECT_TRUE(image_resource->GetContent()->HasImage()); | 486 EXPECT_TRUE(image_resource->GetContent()->HasImage()); |
484 // TODO(hajimehoshi): Should check imageResource doesn't have decoded image | 487 // TODO(hajimehoshi): Should check imageResource doesn't have decoded image |
485 // data. | 488 // data. |
486 } | 489 } |
487 | 490 |
488 TEST(ImageResourceTest, UpdateBitmapImages) { | 491 TEST(ImageResourceTest, UpdateBitmapImages) { |
489 ImageResource* image_resource = ImageResource::Create(ResourceRequest()); | 492 ImageResource* image_resource = ImageResource::Create(ResourceRequest()); |
490 image_resource->SetStatus(ResourceStatus::kPending); | 493 image_resource->SetStatus(ResourceStatus::kPending); |
| 494 image_resource->NotifyStartLoad(); |
491 | 495 |
492 std::unique_ptr<MockImageResourceObserver> observer = | 496 std::unique_ptr<MockImageResourceObserver> observer = |
493 MockImageResourceObserver::Create(image_resource->GetContent()); | 497 MockImageResourceObserver::Create(image_resource->GetContent()); |
494 | 498 |
495 // Send the image response. | 499 // Send the image response. |
496 image_resource->ResponseReceived( | 500 image_resource->ResponseReceived( |
497 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), g_null_atom), | 501 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), g_null_atom), |
498 nullptr); | 502 nullptr); |
499 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), | 503 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), |
500 sizeof(kJpegImage)); | 504 sizeof(kJpegImage)); |
501 image_resource->Finish(); | 505 image_resource->Finish(); |
502 EXPECT_FALSE(image_resource->ErrorOccurred()); | 506 EXPECT_FALSE(image_resource->ErrorOccurred()); |
503 ASSERT_TRUE(image_resource->GetContent()->HasImage()); | 507 ASSERT_TRUE(image_resource->GetContent()->HasImage()); |
504 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); | 508 EXPECT_FALSE(image_resource->GetContent()->GetImage()->IsNull()); |
505 EXPECT_EQ(2, observer->ImageChangedCount()); | 509 EXPECT_EQ(2, observer->ImageChangedCount()); |
506 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 510 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
507 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 511 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
508 } | 512 } |
509 | 513 |
510 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { | 514 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { |
511 KURL test_url(kParsedURLString, kTestURL); | 515 KURL test_url(kParsedURLString, kTestURL); |
512 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 516 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
513 ResourceRequest request = ResourceRequest(test_url); | 517 ResourceRequest request = ResourceRequest(test_url); |
514 ImageResource* image_resource = ImageResource::Create(request); | 518 ImageResource* image_resource = ImageResource::Create(request); |
515 image_resource->SetStatus(ResourceStatus::kPending); | 519 image_resource->SetStatus(ResourceStatus::kPending); |
| 520 image_resource->NotifyStartLoad(); |
516 | 521 |
517 std::unique_ptr<MockImageResourceObserver> observer = | 522 std::unique_ptr<MockImageResourceObserver> observer = |
518 MockImageResourceObserver::Create(image_resource->GetContent()); | 523 MockImageResourceObserver::Create(image_resource->GetContent()); |
519 ResourceFetcher* fetcher = CreateFetcher(); | 524 ResourceFetcher* fetcher = CreateFetcher(); |
520 | 525 |
521 // Send the image response. | 526 // Send the image response. |
522 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage), | 527 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage), |
523 g_null_atom); | 528 g_null_atom); |
524 resource_response.AddHTTPHeaderField("chrome-proxy-content-transform", | 529 resource_response.AddHTTPHeaderField("chrome-proxy-content-transform", |
525 "empty-image"); | 530 "empty-image"); |
(...skipping 24 matching lines...) Expand all Loading... |
550 test_url, image_resource, image_resource->GetContent(), observer.get(), | 555 test_url, image_resource, image_resource->GetContent(), observer.get(), |
551 WebCachePolicy::kBypassingCache); | 556 WebCachePolicy::kBypassingCache); |
552 } | 557 } |
553 | 558 |
554 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { | 559 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinishedWithOldHeaders) { |
555 KURL test_url(kParsedURLString, kTestURL); | 560 KURL test_url(kParsedURLString, kTestURL); |
556 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 561 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
557 ResourceRequest request = ResourceRequest(test_url); | 562 ResourceRequest request = ResourceRequest(test_url); |
558 ImageResource* image_resource = ImageResource::Create(request); | 563 ImageResource* image_resource = ImageResource::Create(request); |
559 image_resource->SetStatus(ResourceStatus::kPending); | 564 image_resource->SetStatus(ResourceStatus::kPending); |
| 565 image_resource->NotifyStartLoad(); |
560 | 566 |
561 std::unique_ptr<MockImageResourceObserver> observer = | 567 std::unique_ptr<MockImageResourceObserver> observer = |
562 MockImageResourceObserver::Create(image_resource->GetContent()); | 568 MockImageResourceObserver::Create(image_resource->GetContent()); |
563 ResourceFetcher* fetcher = CreateFetcher(); | 569 ResourceFetcher* fetcher = CreateFetcher(); |
564 | 570 |
565 // Send the image response. | 571 // Send the image response. |
566 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage), | 572 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage), |
567 g_null_atom); | 573 g_null_atom); |
568 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); | 574 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); |
569 | 575 |
(...skipping 25 matching lines...) Expand all Loading... |
595 } | 601 } |
596 | 602 |
597 TEST(ImageResourceTest, | 603 TEST(ImageResourceTest, |
598 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { | 604 ReloadIfLoFiOrPlaceholderAfterFinishedWithoutLoFiHeaders) { |
599 KURL test_url(kParsedURLString, kTestURL); | 605 KURL test_url(kParsedURLString, kTestURL); |
600 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 606 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
601 ResourceRequest request = ResourceRequest(test_url); | 607 ResourceRequest request = ResourceRequest(test_url); |
602 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); | 608 request.SetPreviewsState(WebURLRequest::kServerLoFiOn); |
603 ImageResource* image_resource = ImageResource::Create(request); | 609 ImageResource* image_resource = ImageResource::Create(request); |
604 image_resource->SetStatus(ResourceStatus::kPending); | 610 image_resource->SetStatus(ResourceStatus::kPending); |
| 611 image_resource->NotifyStartLoad(); |
605 | 612 |
606 std::unique_ptr<MockImageResourceObserver> observer = | 613 std::unique_ptr<MockImageResourceObserver> observer = |
607 MockImageResourceObserver::Create(image_resource->GetContent()); | 614 MockImageResourceObserver::Create(image_resource->GetContent()); |
608 ResourceFetcher* fetcher = CreateFetcher(); | 615 ResourceFetcher* fetcher = CreateFetcher(); |
609 | 616 |
610 // Send the image response, without any LoFi image response headers. | 617 // Send the image response, without any LoFi image response headers. |
611 image_resource->ResponseReceived( | 618 image_resource->ResponseReceived( |
612 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), g_null_atom), | 619 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), g_null_atom), |
613 nullptr); | 620 nullptr); |
614 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), | 621 image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), |
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1516 } | 1523 } |
1517 | 1524 |
1518 TEST(ImageResourceTest, PeriodicFlushTest) { | 1525 TEST(ImageResourceTest, PeriodicFlushTest) { |
1519 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> | 1526 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler> |
1520 platform; | 1527 platform; |
1521 KURL test_url(kParsedURLString, kTestURL); | 1528 KURL test_url(kParsedURLString, kTestURL); |
1522 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); | 1529 ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); |
1523 ResourceRequest request = ResourceRequest(test_url); | 1530 ResourceRequest request = ResourceRequest(test_url); |
1524 ImageResource* image_resource = ImageResource::Create(request); | 1531 ImageResource* image_resource = ImageResource::Create(request); |
1525 image_resource->SetStatus(ResourceStatus::kPending); | 1532 image_resource->SetStatus(ResourceStatus::kPending); |
| 1533 image_resource->NotifyStartLoad(); |
1526 | 1534 |
1527 std::unique_ptr<MockImageResourceObserver> observer = | 1535 std::unique_ptr<MockImageResourceObserver> observer = |
1528 MockImageResourceObserver::Create(image_resource->GetContent()); | 1536 MockImageResourceObserver::Create(image_resource->GetContent()); |
1529 | 1537 |
1530 // Send the image response. | 1538 // Send the image response. |
1531 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage2), | 1539 ResourceResponse resource_response(KURL(), "image/jpeg", sizeof(kJpegImage2), |
1532 g_null_atom); | 1540 g_null_atom); |
1533 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); | 1541 resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); |
1534 | 1542 |
1535 image_resource->ResponseReceived(resource_response, nullptr); | 1543 image_resource->ResponseReceived(resource_response, nullptr); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1596 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); | 1604 EXPECT_TRUE(observer->ImageNotifyFinishedCalled()); |
1597 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); | 1605 EXPECT_TRUE(image_resource->GetContent()->GetImage()->IsBitmapImage()); |
1598 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); | 1606 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->width()); |
1599 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); | 1607 EXPECT_EQ(50, image_resource->GetContent()->GetImage()->height()); |
1600 | 1608 |
1601 WTF::SetTimeFunctionsForTesting(nullptr); | 1609 WTF::SetTimeFunctionsForTesting(nullptr); |
1602 } | 1610 } |
1603 | 1611 |
1604 } // namespace | 1612 } // namespace |
1605 } // namespace blink | 1613 } // namespace blink |
OLD | NEW |