| Index: third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
|
| index 9f748b065c1532afcb9df30f011593bba130eb7c..3b22949c1db07054d4a068b17a5c31f4e57981b6 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
|
| @@ -516,4 +516,70 @@ TEST_F(ResourceFetcherTest, SynchronousRequest)
|
| memoryCache()->remove(resource);
|
| }
|
|
|
| +TEST_F(ResourceFetcherTest, PreloadImageTwice)
|
| +{
|
| + ResourceFetcher* fetcher = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create());
|
| +
|
| + KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
|
| + ResourceResponse response;
|
| + response.setURL(url);
|
| + response.setHTTPStatusCode(200);
|
| + URLTestHelpers::registerMockedURLLoadWithCustomResponse(url, testImageFilename, WebString::fromUTF8(""), WrappedResourceResponse(response));
|
| +
|
| + FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
|
| + Resource* resource = fetcher->requestResource(fetchRequestOriginal, TestResourceFactory(Resource::Image));
|
| + ASSERT_TRUE(resource);
|
| + Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
|
| + fetcher->preloadStarted(resource);
|
| +
|
| + FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
|
| + Resource* newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
|
| + EXPECT_EQ(resource, newResource);
|
| + fetcher->preloadStarted(resource);
|
| +
|
| + fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads);
|
| + Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
|
| + EXPECT_FALSE(memoryCache()->contains(resource));
|
| + EXPECT_FALSE(resource->isPreloaded());
|
| +}
|
| +
|
| +
|
| +TEST_F(ResourceFetcherTest, LinkPreloadImageAndUse)
|
| +{
|
| + ResourceFetcher* fetcher = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create());
|
| +
|
| + KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
|
| + ResourceResponse response;
|
| + response.setURL(url);
|
| + response.setHTTPStatusCode(200);
|
| + URLTestHelpers::registerMockedURLLoadWithCustomResponse(url, testImageFilename, WebString::fromUTF8(""), WrappedResourceResponse(response));
|
| +
|
| + // Link preload preload scanner
|
| + FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
|
| + fetchRequestOriginal.setLinkPreload(true);
|
| + Resource* resource = fetcher->requestResource(fetchRequestOriginal, TestResourceFactory(Resource::Image));
|
| + ASSERT_TRUE(resource);
|
| + EXPECT_TRUE(resource->isLinkPreload());
|
| + Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
|
| + fetcher->preloadStarted(resource);
|
| +
|
| + // Image preload scanner
|
| + FetchRequest fetchRequestPreloadScanner = FetchRequest(url, FetchInitiatorInfo());
|
| + Resource* imgPreloadScannerResource = fetcher->requestResource(fetchRequestPreloadScanner, TestResourceFactory(Resource::Image));
|
| + EXPECT_EQ(resource, imgPreloadScannerResource);
|
| + EXPECT_FALSE(resource->isLinkPreload());
|
| + fetcher->preloadStarted(resource);
|
| +
|
| + // Image created by parser
|
| + FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
|
| + Resource* newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
|
| + EXPECT_EQ(resource, newResource);
|
| + EXPECT_FALSE(resource->isLinkPreload());
|
| +
|
| + // DCL reached
|
| + fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads);
|
| + Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
|
| + EXPECT_FALSE(memoryCache()->contains(resource));
|
| + EXPECT_FALSE(resource->isPreloaded());
|
| +}
|
| } // namespace blink
|
|
|