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 57cf31006a1a1d0815b9ebb12486b4521f434d00..218bde31b5d5cc05876a274ab2993a33f9b78b1c 100644 |
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp |
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp |
| @@ -215,33 +215,47 @@ TEST_F(ResourceFetcherTest, VaryImage) |
| Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); |
| } |
| -TEST_F(ResourceFetcherTest, RevalidateWhileLoading) |
| +class RequestSameResourceOnComplete : public RawResourceClient { |
| +public: |
| + RequestSameResourceOnComplete(Resource* resource) |
| + : m_resource(resource) |
| + { |
| + } |
| + |
| + void notifyFinished(Resource* resource) override |
| + { |
| + ASSERT_EQ(m_resource, resource); |
| + ResourceFetcherTestMockFetchContext* context = ResourceFetcherTestMockFetchContext::create(); |
| + context->setCachePolicy(CachePolicyRevalidate); |
| + ResourceFetcher* fetcher2 = ResourceFetcher::create(context); |
| + FetchRequest fetchRequest2(m_resource->url(), FetchInitiatorInfo()); |
| + Resource* resource2 = fetcher2->requestResource(fetchRequest2, TestResourceFactory(Resource::Image)); |
| + EXPECT_EQ(m_resource, resource2); |
| + } |
| + String debugName() const override { return "RequestSameResourceOnComplete"; } |
| + |
| +private: |
| + Persistent<Resource> m_resource; |
| +}; |
| + |
| +TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) |
|
Nate Chapin
2016/04/27 19:48:30
This is probably how this test should have been wr
|
| { |
| KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); |
| - Platform::current()->getURLLoaderMockFactory()->registerURL(url, WebURLResponse(), ""); |
| - |
| - ResourceFetcher* fetcher1 = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create()); |
| - ResourceRequest request1(url); |
| - request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache"); |
| - FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo()); |
| - Resource* resource1 = fetcher1->requestResource(fetchRequest1, TestResourceFactory(Resource::Image)); |
| ResourceResponse response; |
| response.setURL(url); |
| response.setHTTPStatusCode(200); |
| response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); |
| response.setHTTPHeaderField(HTTPNames::ETag, "1234567890"); |
| - resource1->responseReceived(response, nullptr); |
| - resource1->finish(); |
| + Platform::current()->getURLLoaderMockFactory()->registerURL(url, WrappedResourceResponse(response), ""); |
| - ResourceFetcherTestMockFetchContext* context = ResourceFetcherTestMockFetchContext::create(); |
| - context->setCachePolicy(CachePolicyRevalidate); |
| - ResourceFetcher* fetcher2 = ResourceFetcher::create(context); |
| - FetchRequest fetchRequest2(url, FetchInitiatorInfo()); |
| - Resource* resource2 = fetcher2->requestResource(fetchRequest2, TestResourceFactory(Resource::Image)); |
| - EXPECT_EQ(resource1, resource2); |
| - |
| - // Tidily(?) shut down the ResourceLoader. |
| - resource1->loader()->cancel(); |
| + ResourceFetcher* fetcher1 = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create()); |
| + ResourceRequest request1(url); |
| + request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache"); |
| + FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo()); |
| + Resource* resource1 = fetcher1->requestResource(fetchRequest1, TestResourceFactory(Resource::Image)); |
| + RequestSameResourceOnComplete client(resource1); |
| + resource1->addClient(&client); |
| + Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); |
| Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); |
| } |