| 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 |