Chromium Code Reviews| 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 05646be376de3df3f056119a39d446eed5078488..2c453820cea319739fdda6155a6801af2633faf5 100644 |
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp |
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp |
| @@ -604,6 +604,7 @@ TEST_F(ResourceFetcherTest, LinkPreloadImageMultipleFetchersAndUse) |
| EXPECT_TRUE(resource->isLinkPreload()); |
| Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); |
| fetcher->preloadStarted(resource); |
| + EXPECT_TRUE(fetcher->hasUnusedLinkPreloads()); |
| FetchRequest fetchRequestSecond = FetchRequest(url, FetchInitiatorInfo()); |
| fetchRequestSecond.setLinkPreload(true); |
| @@ -612,6 +613,17 @@ TEST_F(ResourceFetcherTest, LinkPreloadImageMultipleFetchersAndUse) |
| EXPECT_TRUE(secondResource->isLinkPreload()); |
| Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); |
| fetcher2->preloadStarted(secondResource); |
| + EXPECT_TRUE(fetcher2->hasUnusedLinkPreloads()); |
| + |
| + // Link rel preload scanner |
| + FetchRequest fetchRequestLinkPreloadScanner = FetchRequest(url, FetchInitiatorInfo()); |
| + fetchRequestLinkPreloadScanner.setLinkPreload(true); |
| + Resource* linkPreloadScannerResource = fetcher->requestResource(fetchRequestLinkPreloadScanner, TestResourceFactory(Resource::Image)); |
| + EXPECT_EQ(resource, linkPreloadScannerResource); |
| + EXPECT_TRUE(resource->isLinkPreload()); |
| + fetcher->preloadStarted(resource); |
| + EXPECT_TRUE(fetcher->hasUnusedLinkPreloads()); |
| + EXPECT_TRUE(fetcher2->hasUnusedLinkPreloads()); |
| // Image preload scanner |
| FetchRequest fetchRequestPreloadScanner = FetchRequest(url, FetchInitiatorInfo()); |
| @@ -619,6 +631,17 @@ TEST_F(ResourceFetcherTest, LinkPreloadImageMultipleFetchersAndUse) |
| EXPECT_EQ(resource, imgPreloadScannerResource); |
| EXPECT_FALSE(resource->isLinkPreload()); |
| fetcher->preloadStarted(resource); |
| + EXPECT_FALSE(fetcher->hasUnusedLinkPreloads()); |
| + EXPECT_TRUE(fetcher2->hasUnusedLinkPreloads()); |
| + |
| + // Image preload scanner on the second fetcher |
| + FetchRequest fetchRequestPreloadScanner2 = FetchRequest(url, FetchInitiatorInfo()); |
| + Resource* imgPreloadScannerResource2 = fetcher2->requestResource(fetchRequestPreloadScanner2, TestResourceFactory(Resource::Image)); |
| + EXPECT_EQ(resource, imgPreloadScannerResource2); |
| + EXPECT_FALSE(resource->isLinkPreload()); |
| + fetcher2->preloadStarted(resource); |
| + EXPECT_FALSE(fetcher->hasUnusedLinkPreloads()); |
| + EXPECT_TRUE(fetcher2->hasUnusedLinkPreloads()); |
| // Image created by parser |
| FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); |
| @@ -626,7 +649,17 @@ TEST_F(ResourceFetcherTest, LinkPreloadImageMultipleFetchersAndUse) |
| Persistent<MockResourceClient> client = new MockResourceClient(newResource); |
| EXPECT_EQ(resource, newResource); |
| EXPECT_FALSE(resource->isLinkPreload()); |
| - |
| + EXPECT_FALSE(fetcher->hasUnusedLinkPreloads()); |
| + EXPECT_TRUE(fetcher2->hasUnusedLinkPreloads()); |
| + |
| + // Image created by parser on the second fetcher |
| + FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo()); |
| + Resource* newResource2 = fetcher2->requestResource(fetchRequest, TestResourceFactory(Resource::Image)); |
| + Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2); |
| + EXPECT_EQ(resource, newResource2); |
| + EXPECT_FALSE(resource->isLinkPreload()); |
| + EXPECT_FALSE(fetcher->hasUnusedLinkPreloads()); |
| + EXPECT_FALSE(fetcher2->hasUnusedLinkPreloads()); |
|
Yoav Weiss
2016/09/19 10:57:41
This fails because the resource->isLinkPreload() i
Charlie Harrison
2016/09/19 14:06:45
Yeah you're right. Good thing this test showed tha
|
| // DCL reached on first fetcher |
| EXPECT_TRUE(resource->isPreloaded()); |
| fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads); |