Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp

Issue 2584423002: Loading: move core/fetch to platform/loader/fetch (Closed)
Patch Set: rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 10 matching lines...) Expand all
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "core/fetch/ResourceFetcher.h" 31 #include "platform/loader/fetch/ResourceFetcher.h"
32 32
33 #include "core/fetch/FetchInitiatorInfo.h"
34 #include "core/fetch/FetchInitiatorTypeNames.h"
35 #include "core/fetch/FetchRequest.h"
36 #include "core/fetch/MemoryCache.h"
37 #include "core/fetch/MockFetchContext.h"
38 #include "core/fetch/MockResource.h"
39 #include "core/fetch/MockResourceClient.h"
40 #include "core/fetch/RawResource.h"
41 #include "core/fetch/ResourceLoader.h"
42 #include "platform/WebTaskRunner.h" 33 #include "platform/WebTaskRunner.h"
43 #include "platform/exported/WrappedResourceResponse.h" 34 #include "platform/exported/WrappedResourceResponse.h"
44 #include "platform/heap/Handle.h" 35 #include "platform/heap/Handle.h"
45 #include "platform/heap/HeapAllocator.h" 36 #include "platform/heap/HeapAllocator.h"
46 #include "platform/heap/Member.h" 37 #include "platform/heap/Member.h"
38 #include "platform/loader/fetch/FetchInitiatorInfo.h"
39 #include "platform/loader/fetch/FetchInitiatorTypeNames.h"
40 #include "platform/loader/fetch/FetchRequest.h"
41 #include "platform/loader/fetch/MemoryCache.h"
42 #include "platform/loader/fetch/MockFetchContext.h"
43 #include "platform/loader/fetch/MockResource.h"
44 #include "platform/loader/fetch/MockResourceClient.h"
45 #include "platform/loader/fetch/RawResource.h"
46 #include "platform/loader/fetch/ResourceLoader.h"
47 #include "platform/network/ResourceError.h"
47 #include "platform/network/ResourceRequest.h" 48 #include "platform/network/ResourceRequest.h"
48 #include "platform/network/ResourceTimingInfo.h" 49 #include "platform/network/ResourceTimingInfo.h"
49 #include "platform/scheduler/test/fake_web_task_runner.h" 50 #include "platform/scheduler/test/fake_web_task_runner.h"
51 #include "platform/testing/TestingPlatformSupport.h"
50 #include "platform/testing/URLTestHelpers.h" 52 #include "platform/testing/URLTestHelpers.h"
51 #include "platform/testing/weburl_loader_mock.h" 53 #include "platform/testing/weburl_loader_mock.h"
52 #include "platform/weborigin/KURL.h" 54 #include "platform/weborigin/KURL.h"
53 #include "public/platform/Platform.h" 55 #include "public/platform/Platform.h"
56 #include "public/platform/WebURLLoader.h"
54 #include "public/platform/WebURLLoaderMockFactory.h" 57 #include "public/platform/WebURLLoaderMockFactory.h"
55 #include "public/platform/WebURLResponse.h" 58 #include "public/platform/WebURLResponse.h"
56 #include "testing/gtest/include/gtest/gtest.h" 59 #include "testing/gtest/include/gtest/gtest.h"
57 #include "wtf/Allocator.h" 60 #include "wtf/Allocator.h"
58 #include "wtf/PtrUtil.h" 61 #include "wtf/PtrUtil.h"
59 #include "wtf/Vector.h" 62 #include "wtf/Vector.h"
60 #include <memory> 63 #include <memory>
61 64
62 namespace blink { 65 namespace blink {
63 66
64 namespace { 67 namespace {
65 constexpr char kTestResourceFilename[] = "white-1x1.png"; 68 constexpr char kTestResourceFilename[] = "white-1x1.png";
66 constexpr char kTestResourceMimeType[] = "image/png"; 69 constexpr char kTestResourceMimeType[] = "image/png";
67 constexpr int kTestResourceSize = 103; // size of web/tests/data/white-1x1.png 70 constexpr int kTestResourceSize = 103; // size of web/tests/data/white-1x1.png
68 } 71 }
69 72
70 class ResourceFetcherTest : public ::testing::Test {}; 73 class MockDefaultWebURLLoader : public WebURLLoader {
74 public:
75 ~MockDefaultWebURLLoader() override {}
76 void loadSynchronously(const WebURLRequest&,
77 WebURLResponse&,
78 WebURLError&,
79 WebData&,
80 int64_t& encodedDataLength,
81 int64_t& encodedBodyLength) override {}
82 void loadAsynchronously(const WebURLRequest&, WebURLLoaderClient*) override {}
83 void cancel() override {}
84 void setDefersLoading(bool) override {}
85 void didChangePriority(WebURLRequest::Priority newPriority) override {}
86 void didChangePriority(WebURLRequest::Priority newPriority,
87 int intraPriorityValue) override {}
88 void setLoadingTaskRunner(base::SingleThreadTaskRunner*) override {}
89 };
90
91 class FetchTestingPlatform : public TestingPlatformSupportWithMockScheduler {
92 public:
93 WebURLError cancelledError(const WebURL& url) const override {
94 return ResourceError::ResourceError(errorDomainBlinkInternal, -1,
95 url.string(),
96 "cancelledError for testing");
97 }
98 WebURLLoaderMockFactory* getURLLoaderMockFactory() override {
99 if (!m_urlLoaderMockFactory.get())
100 m_urlLoaderMockFactory = WebURLLoaderMockFactory::create();
101 return m_urlLoaderMockFactory.get();
102 }
103 WebURLLoader* createURLLoader() override {
104 return getURLLoaderMockFactory()->createURLLoader(
105 new MockDefaultWebURLLoader);
106 }
107
108 private:
109 std::unique_ptr<WebURLLoaderMockFactory> m_urlLoaderMockFactory;
110 };
111
112 using ResourceFetcherTest = ::testing::Test;
71 113
72 TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach) { 114 TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach) {
115 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
116
73 KURL secureURL(ParsedURLString, "https://secureorigin.test/image.png"); 117 KURL secureURL(ParsedURLString, "https://secureorigin.test/image.png");
74 // Try to request a url. The request should fail, and a resource in an error 118 // Try to request a url. The request should fail, and a resource in an error
75 // state should be returned, and no resource should be present in the cache. 119 // state should be returned, and no resource should be present in the cache.
76 ResourceFetcher* fetcher = ResourceFetcher::create(nullptr); 120 ResourceFetcher* fetcher = ResourceFetcher::create(nullptr);
77 ResourceRequest resourceRequest(secureURL); 121 ResourceRequest resourceRequest(secureURL);
78 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 122 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
79 FetchRequest fetchRequest = 123 FetchRequest fetchRequest =
80 FetchRequest(resourceRequest, FetchInitiatorInfo()); 124 FetchRequest(resourceRequest, FetchInitiatorInfo());
81 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 125 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
82 ASSERT_TRUE(resource); 126 ASSERT_TRUE(resource);
83 EXPECT_TRUE(resource->errorOccurred()); 127 EXPECT_TRUE(resource->errorOccurred());
84 EXPECT_TRUE(resource->resourceError().isAccessCheck()); 128 EXPECT_TRUE(resource->resourceError().isAccessCheck());
85 EXPECT_FALSE(memoryCache()->resourceForURL(secureURL)); 129 EXPECT_FALSE(memoryCache()->resourceForURL(secureURL));
86 130
87 // Start by calling startLoad() directly, rather than via requestResource(). 131 // Start by calling startLoad() directly, rather than via requestResource().
88 // This shouldn't crash. 132 // This shouldn't crash.
89 fetcher->startLoad(RawResource::create(secureURL, Resource::Raw)); 133 fetcher->startLoad(RawResource::create(secureURL, Resource::Raw));
90 } 134 }
91 135
92 TEST_F(ResourceFetcherTest, UseExistingResource) { 136 TEST_F(ResourceFetcherTest, UseExistingResource) {
137 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
138
93 ResourceFetcher* fetcher = ResourceFetcher::create( 139 ResourceFetcher* fetcher = ResourceFetcher::create(
94 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 140 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
95 141
96 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 142 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
97 ResourceResponse response; 143 ResourceResponse response;
98 response.setURL(url); 144 response.setURL(url);
99 response.setHTTPStatusCode(200); 145 response.setHTTPStatusCode(200);
100 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 146 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
101 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 147 URLTestHelpers::registerMockedURLLoadWithCustomResponse(
102 url, kTestResourceFilename, WebString::fromUTF8(""), 148 url, kTestResourceFilename, WebString::fromUTF8(""),
103 WrappedResourceResponse(response)); 149 WrappedResourceResponse(response));
104 150
105 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 151 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
106 Resource* resource = MockResource::fetch(fetchRequest, fetcher); 152 Resource* resource = MockResource::fetch(fetchRequest, fetcher);
107 ASSERT_TRUE(resource); 153 ASSERT_TRUE(resource);
108 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 154 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
109 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 155 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
110 EXPECT_TRUE(resource->isLoaded()); 156 EXPECT_TRUE(resource->isLoaded());
111 EXPECT_TRUE(memoryCache()->contains(resource)); 157 EXPECT_TRUE(memoryCache()->contains(resource));
112 158
113 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 159 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
114 EXPECT_EQ(resource, newResource); 160 EXPECT_EQ(resource, newResource);
115 memoryCache()->remove(resource); 161 memoryCache()->remove(resource);
116 } 162 }
117 163
118 TEST_F(ResourceFetcherTest, Vary) { 164 TEST_F(ResourceFetcherTest, Vary) {
165 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
166
119 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 167 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
120 Resource* resource = RawResource::create(url, Resource::Raw); 168 Resource* resource = RawResource::create(url, Resource::Raw);
121 memoryCache()->add(resource); 169 memoryCache()->add(resource);
122 ResourceResponse response; 170 ResourceResponse response;
123 response.setURL(url); 171 response.setURL(url);
124 response.setHTTPStatusCode(200); 172 response.setHTTPStatusCode(200);
125 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 173 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
126 response.setHTTPHeaderField(HTTPNames::Vary, "*"); 174 response.setHTTPHeaderField(HTTPNames::Vary, "*");
127 resource->responseReceived(response, nullptr); 175 resource->responseReceived(response, nullptr);
128 resource->finish(); 176 resource->finish();
(...skipping 10 matching lines...) Expand all
139 Resource* newResource = RawResource::fetch(fetchRequest, fetcher); 187 Resource* newResource = RawResource::fetch(fetchRequest, fetcher);
140 EXPECT_NE(resource, newResource); 188 EXPECT_NE(resource, newResource);
141 newResource->loader()->cancel(); 189 newResource->loader()->cancel();
142 memoryCache()->remove(newResource); 190 memoryCache()->remove(newResource);
143 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 191 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
144 192
145 memoryCache()->remove(resource); 193 memoryCache()->remove(resource);
146 } 194 }
147 195
148 TEST_F(ResourceFetcherTest, NavigationTimingInfo) { 196 TEST_F(ResourceFetcherTest, NavigationTimingInfo) {
197 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
198
149 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 199 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
150 ResourceResponse response; 200 ResourceResponse response;
151 response.setURL(url); 201 response.setURL(url);
152 response.setHTTPStatusCode(200); 202 response.setHTTPStatusCode(200);
153 203
154 ResourceFetcher* fetcher = ResourceFetcher::create( 204 ResourceFetcher* fetcher = ResourceFetcher::create(
155 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 205 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
156 ResourceRequest resourceRequest(url); 206 ResourceRequest resourceRequest(url);
157 resourceRequest.setFrameType(WebURLRequest::FrameTypeNested); 207 resourceRequest.setFrameType(WebURLRequest::FrameTypeNested);
158 resourceRequest.setRequestContext(WebURLRequest::RequestContextForm); 208 resourceRequest.setRequestContext(WebURLRequest::RequestContextForm);
(...skipping 20 matching lines...) Expand all
179 long long redirectEncodedDataLength = 123; 229 long long redirectEncodedDataLength = 123;
180 redirectResponse.setEncodedDataLength(redirectEncodedDataLength); 230 redirectResponse.setEncodedDataLength(redirectEncodedDataLength);
181 ResourceRequest redirectResourceRequest(url); 231 ResourceRequest redirectResourceRequest(url);
182 fetcher->recordResourceTimingOnRedirect(resource, redirectResponse, false); 232 fetcher->recordResourceTimingOnRedirect(resource, redirectResponse, false);
183 EXPECT_EQ(navigationTimingInfo->transferSize(), 233 EXPECT_EQ(navigationTimingInfo->transferSize(),
184 encodedDataLength + redirectEncodedDataLength); 234 encodedDataLength + redirectEncodedDataLength);
185 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 235 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
186 } 236 }
187 237
188 TEST_F(ResourceFetcherTest, VaryOnBack) { 238 TEST_F(ResourceFetcherTest, VaryOnBack) {
239 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
240
189 MockFetchContext* context = 241 MockFetchContext* context =
190 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource); 242 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource);
191 context->setCachePolicy(CachePolicyHistoryBuffer); 243 context->setCachePolicy(CachePolicyHistoryBuffer);
192 ResourceFetcher* fetcher = ResourceFetcher::create(context); 244 ResourceFetcher* fetcher = ResourceFetcher::create(context);
193 245
194 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 246 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
195 Resource* resource = RawResource::create(url, Resource::Raw); 247 Resource* resource = RawResource::create(url, Resource::Raw);
196 memoryCache()->add(resource); 248 memoryCache()->add(resource);
197 ResourceResponse response; 249 ResourceResponse response;
198 response.setURL(url); 250 response.setURL(url);
199 response.setHTTPStatusCode(200); 251 response.setHTTPStatusCode(200);
200 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 252 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
201 response.setHTTPHeaderField(HTTPNames::Vary, "*"); 253 response.setHTTPHeaderField(HTTPNames::Vary, "*");
202 resource->responseReceived(response, nullptr); 254 resource->responseReceived(response, nullptr);
203 resource->finish(); 255 resource->finish();
204 ASSERT_TRUE(resource->hasVaryHeader()); 256 ASSERT_TRUE(resource->hasVaryHeader());
205 257
206 ResourceRequest resourceRequest(url); 258 ResourceRequest resourceRequest(url);
207 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 259 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
208 FetchRequest fetchRequest = 260 FetchRequest fetchRequest =
209 FetchRequest(resourceRequest, FetchInitiatorInfo()); 261 FetchRequest(resourceRequest, FetchInitiatorInfo());
210 Resource* newResource = RawResource::fetch(fetchRequest, fetcher); 262 Resource* newResource = RawResource::fetch(fetchRequest, fetcher);
211 EXPECT_EQ(resource, newResource); 263 EXPECT_EQ(resource, newResource);
212 264
213 memoryCache()->remove(newResource); 265 memoryCache()->remove(newResource);
214 } 266 }
215 267
216 TEST_F(ResourceFetcherTest, VaryResource) { 268 TEST_F(ResourceFetcherTest, VaryResource) {
269 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
270
217 ResourceFetcher* fetcher = ResourceFetcher::create( 271 ResourceFetcher* fetcher = ResourceFetcher::create(
218 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 272 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
219 273
220 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 274 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
221 ResourceResponse response; 275 ResourceResponse response;
222 response.setURL(url); 276 response.setURL(url);
223 response.setHTTPStatusCode(200); 277 response.setHTTPStatusCode(200);
224 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 278 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
225 response.setHTTPHeaderField(HTTPNames::Vary, "*"); 279 response.setHTTPHeaderField(HTTPNames::Vary, "*");
226 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 280 URLTestHelpers::registerMockedURLLoadWithCustomResponse(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 } 323 }
270 324
271 String debugName() const override { return "RequestSameResourceOnComplete"; } 325 String debugName() const override { return "RequestSameResourceOnComplete"; }
272 326
273 private: 327 private:
274 Member<Resource> m_resource; 328 Member<Resource> m_resource;
275 bool m_notifyFinishedCalled; 329 bool m_notifyFinishedCalled;
276 }; 330 };
277 331
278 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) { 332 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) {
333 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
334
279 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 335 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
280 ResourceResponse response; 336 ResourceResponse response;
281 response.setURL(url); 337 response.setURL(url);
282 response.setHTTPStatusCode(200); 338 response.setHTTPStatusCode(200);
283 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 339 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
284 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890"); 340 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890");
285 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 341 URLTestHelpers::registerMockedURLLoadWithCustomResponse(
286 url, kTestResourceFilename, WebString::fromUTF8(""), 342 url, kTestResourceFilename, WebString::fromUTF8(""),
287 WrappedResourceResponse(response)); 343 WrappedResourceResponse(response));
288 ResourceFetcher* fetcher1 = ResourceFetcher::create( 344 ResourceFetcher* fetcher1 = ResourceFetcher::create(
289 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 345 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
290 ResourceRequest request1(url); 346 ResourceRequest request1(url);
291 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache"); 347 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
292 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo()); 348 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo());
293 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1); 349 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1);
294 Persistent<RequestSameResourceOnComplete> client = 350 Persistent<RequestSameResourceOnComplete> client =
295 new RequestSameResourceOnComplete(resource1); 351 new RequestSameResourceOnComplete(resource1);
296 resource1->addClient(client); 352 resource1->addClient(client);
297 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 353 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
298 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 354 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
299 EXPECT_TRUE(client->notifyFinishedCalled()); 355 EXPECT_TRUE(client->notifyFinishedCalled());
300 resource1->removeClient(client); 356 resource1->removeClient(client);
301 memoryCache()->remove(resource1); 357 memoryCache()->remove(resource1);
302 } 358 }
303 359
304 TEST_F(ResourceFetcherTest, DontReuseMediaDataUrl) { 360 TEST_F(ResourceFetcherTest, DontReuseMediaDataUrl) {
361 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
362
305 ResourceFetcher* fetcher = ResourceFetcher::create( 363 ResourceFetcher* fetcher = ResourceFetcher::create(
306 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 364 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
307 ResourceRequest request(KURL(ParsedURLString, "data:text/html,foo")); 365 ResourceRequest request(KURL(ParsedURLString, "data:text/html,foo"));
308 request.setRequestContext(WebURLRequest::RequestContextVideo); 366 request.setRequestContext(WebURLRequest::RequestContextVideo);
309 ResourceLoaderOptions options; 367 ResourceLoaderOptions options;
310 options.dataBufferingPolicy = DoNotBufferData; 368 options.dataBufferingPolicy = DoNotBufferData;
311 FetchRequest fetchRequest = 369 FetchRequest fetchRequest =
312 FetchRequest(request, FetchInitiatorTypeNames::internal, options); 370 FetchRequest(request, FetchInitiatorTypeNames::internal, options);
313 Resource* resource1 = RawResource::fetchMedia(fetchRequest, fetcher); 371 Resource* resource1 = RawResource::fetchMedia(fetchRequest, fetcher);
314 Resource* resource2 = RawResource::fetchMedia(fetchRequest, fetcher); 372 Resource* resource2 = RawResource::fetchMedia(fetchRequest, fetcher);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 415
358 String debugName() const override { return "ServeRequestsOnCompleteClient"; } 416 String debugName() const override { return "ServeRequestsOnCompleteClient"; }
359 }; 417 };
360 418
361 // Regression test for http://crbug.com/594072. 419 // Regression test for http://crbug.com/594072.
362 // This emulates a modal dialog triggering a nested run loop inside 420 // This emulates a modal dialog triggering a nested run loop inside
363 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its 421 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its
364 // WebURLLoader before notifying its clients, a nested run loop may send a 422 // WebURLLoader before notifying its clients, a nested run loop may send a
365 // network response, leading to an invalid state transition in ResourceLoader. 423 // network response, leading to an invalid state transition in ResourceLoader.
366 TEST_F(ResourceFetcherTest, ResponseOnCancel) { 424 TEST_F(ResourceFetcherTest, ResponseOnCancel) {
425 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
426
367 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 427 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
368 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 428 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
369 kTestResourceMimeType); 429 kTestResourceMimeType);
370 430
371 ResourceFetcher* fetcher = ResourceFetcher::create( 431 ResourceFetcher* fetcher = ResourceFetcher::create(
372 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 432 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
373 ResourceRequest resourceRequest(url); 433 ResourceRequest resourceRequest(url);
374 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 434 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
375 FetchRequest fetchRequest = 435 FetchRequest fetchRequest =
376 FetchRequest(resourceRequest, FetchInitiatorInfo()); 436 FetchRequest(resourceRequest, FetchInitiatorInfo());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 memoryCache()->evictResources(); 486 memoryCache()->evictResources();
427 } 487 }
428 488
429 MockFetchContext* context() const { return m_context; } 489 MockFetchContext* context() const { return m_context; }
430 490
431 private: 491 private:
432 Member<MockFetchContext> m_context; 492 Member<MockFetchContext> m_context;
433 }; 493 };
434 494
435 TEST_F(ResourceFetcherTest, SameOriginRedirect) { 495 TEST_F(ResourceFetcherTest, SameOriginRedirect) {
496 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
497
436 const char redirectURL[] = "http://127.0.0.1:8000/redirect.html"; 498 const char redirectURL[] = "http://127.0.0.1:8000/redirect.html";
437 const char finalURL[] = "http://127.0.0.1:8000/final.html"; 499 const char finalURL[] = "http://127.0.0.1:8000/final.html";
438 ScopedMockRedirectRequester requester; 500 ScopedMockRedirectRequester requester;
439 requester.registerRedirect(redirectURL, finalURL); 501 requester.registerRedirect(redirectURL, finalURL);
440 requester.registerFinalResource(finalURL); 502 requester.registerFinalResource(finalURL);
441 requester.request(redirectURL); 503 requester.request(redirectURL);
442 504
443 EXPECT_EQ(kRedirectResponseOverheadBytes + kTestResourceSize, 505 EXPECT_EQ(kRedirectResponseOverheadBytes + kTestResourceSize,
444 requester.context()->getTransferSize()); 506 requester.context()->getTransferSize());
445 } 507 }
446 508
447 TEST_F(ResourceFetcherTest, CrossOriginRedirect) { 509 TEST_F(ResourceFetcherTest, CrossOriginRedirect) {
510 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
511
448 const char redirectURL[] = "http://otherorigin.test/redirect.html"; 512 const char redirectURL[] = "http://otherorigin.test/redirect.html";
449 const char finalURL[] = "http://127.0.0.1:8000/final.html"; 513 const char finalURL[] = "http://127.0.0.1:8000/final.html";
450 ScopedMockRedirectRequester requester; 514 ScopedMockRedirectRequester requester;
451 requester.registerRedirect(redirectURL, finalURL); 515 requester.registerRedirect(redirectURL, finalURL);
452 requester.registerFinalResource(finalURL); 516 requester.registerFinalResource(finalURL);
453 requester.request(redirectURL); 517 requester.request(redirectURL);
454 518
455 EXPECT_EQ(kTestResourceSize, requester.context()->getTransferSize()); 519 EXPECT_EQ(kTestResourceSize, requester.context()->getTransferSize());
456 } 520 }
457 521
458 TEST_F(ResourceFetcherTest, ComplexCrossOriginRedirect) { 522 TEST_F(ResourceFetcherTest, ComplexCrossOriginRedirect) {
523 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
524
459 const char redirectURL1[] = "http://127.0.0.1:8000/redirect1.html"; 525 const char redirectURL1[] = "http://127.0.0.1:8000/redirect1.html";
460 const char redirectURL2[] = "http://otherorigin.test/redirect2.html"; 526 const char redirectURL2[] = "http://otherorigin.test/redirect2.html";
461 const char redirectURL3[] = "http://127.0.0.1:8000/redirect3.html"; 527 const char redirectURL3[] = "http://127.0.0.1:8000/redirect3.html";
462 const char finalURL[] = "http://127.0.0.1:8000/final.html"; 528 const char finalURL[] = "http://127.0.0.1:8000/final.html";
463 ScopedMockRedirectRequester requester; 529 ScopedMockRedirectRequester requester;
464 requester.registerRedirect(redirectURL1, redirectURL2); 530 requester.registerRedirect(redirectURL1, redirectURL2);
465 requester.registerRedirect(redirectURL2, redirectURL3); 531 requester.registerRedirect(redirectURL2, redirectURL3);
466 requester.registerRedirect(redirectURL3, finalURL); 532 requester.registerRedirect(redirectURL3, finalURL);
467 requester.registerFinalResource(finalURL); 533 requester.registerFinalResource(finalURL);
468 requester.request(redirectURL1); 534 requester.request(redirectURL1);
469 535
470 EXPECT_EQ(kTestResourceSize, requester.context()->getTransferSize()); 536 EXPECT_EQ(kTestResourceSize, requester.context()->getTransferSize());
471 } 537 }
472 538
473 TEST_F(ResourceFetcherTest, SynchronousRequest) { 539 TEST_F(ResourceFetcherTest, SynchronousRequest) {
540 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
541
474 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 542 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
475 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 543 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
476 kTestResourceMimeType); 544 kTestResourceMimeType);
477 545
478 ResourceFetcher* fetcher = ResourceFetcher::create( 546 ResourceFetcher* fetcher = ResourceFetcher::create(
479 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 547 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
480 ResourceRequest resourceRequest(url); 548 ResourceRequest resourceRequest(url);
481 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 549 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
482 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo()); 550 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo());
483 fetchRequest.makeSynchronous(); 551 fetchRequest.makeSynchronous();
484 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 552 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
485 EXPECT_TRUE(resource->isLoaded()); 553 EXPECT_TRUE(resource->isLoaded());
486 EXPECT_EQ(ResourceLoadPriorityHighest, 554 EXPECT_EQ(ResourceLoadPriorityHighest,
487 resource->resourceRequest().priority()); 555 resource->resourceRequest().priority());
488 556
489 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 557 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
490 memoryCache()->remove(resource); 558 memoryCache()->remove(resource);
491 } 559 }
492 560
493 TEST_F(ResourceFetcherTest, PreloadResourceTwice) { 561 TEST_F(ResourceFetcherTest, PreloadResourceTwice) {
562 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
563
494 ResourceFetcher* fetcher = ResourceFetcher::create( 564 ResourceFetcher* fetcher = ResourceFetcher::create(
495 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 565 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
496 566
497 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 567 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
498 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 568 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
499 kTestResourceMimeType); 569 kTestResourceMimeType);
500 570
501 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 571 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
502 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 572 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
503 ASSERT_TRUE(resource); 573 ASSERT_TRUE(resource);
504 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 574 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
505 fetcher->preloadStarted(resource); 575 fetcher->preloadStarted(resource);
506 576
507 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 577 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
508 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 578 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
509 EXPECT_EQ(resource, newResource); 579 EXPECT_EQ(resource, newResource);
510 fetcher->preloadStarted(resource); 580 fetcher->preloadStarted(resource);
511 581
512 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads); 582 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads);
513 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 583 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
514 EXPECT_FALSE(memoryCache()->contains(resource)); 584 EXPECT_FALSE(memoryCache()->contains(resource));
515 EXPECT_FALSE(resource->isPreloaded()); 585 EXPECT_FALSE(resource->isPreloaded());
516 } 586 }
517 587
518 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) { 588 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) {
589 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
590
519 ResourceFetcher* fetcher = ResourceFetcher::create( 591 ResourceFetcher* fetcher = ResourceFetcher::create(
520 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 592 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
521 593
522 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 594 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
523 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 595 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
524 kTestResourceMimeType); 596 kTestResourceMimeType);
525 597
526 // Link preload preload scanner 598 // Link preload preload scanner
527 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 599 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
528 fetchRequestOriginal.setLinkPreload(true); 600 fetchRequestOriginal.setLinkPreload(true);
(...skipping 20 matching lines...) Expand all
549 EXPECT_FALSE(resource->isLinkPreload()); 621 EXPECT_FALSE(resource->isLinkPreload());
550 622
551 // DCL reached 623 // DCL reached
552 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads); 624 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads);
553 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 625 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
554 EXPECT_TRUE(memoryCache()->contains(resource)); 626 EXPECT_TRUE(memoryCache()->contains(resource));
555 EXPECT_FALSE(resource->isPreloaded()); 627 EXPECT_FALSE(resource->isPreloaded());
556 } 628 }
557 629
558 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) { 630 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) {
631 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
632
559 ResourceFetcher* fetcher = ResourceFetcher::create( 633 ResourceFetcher* fetcher = ResourceFetcher::create(
560 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 634 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
561 ResourceFetcher* fetcher2 = ResourceFetcher::create( 635 ResourceFetcher* fetcher2 = ResourceFetcher::create(
562 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 636 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
563 637
564 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 638 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
565 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 639 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
566 kTestResourceMimeType); 640 kTestResourceMimeType);
567 641
568 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 642 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 EXPECT_TRUE(memoryCache()->contains(resource)); 704 EXPECT_TRUE(memoryCache()->contains(resource));
631 EXPECT_TRUE(resource->isPreloaded()); 705 EXPECT_TRUE(resource->isPreloaded());
632 706
633 // DCL reached on second fetcher 707 // DCL reached on second fetcher
634 fetcher2->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads); 708 fetcher2->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads);
635 EXPECT_TRUE(memoryCache()->contains(resource)); 709 EXPECT_TRUE(memoryCache()->contains(resource));
636 EXPECT_FALSE(resource->isPreloaded()); 710 EXPECT_FALSE(resource->isPreloaded());
637 } 711 }
638 712
639 TEST_F(ResourceFetcherTest, Revalidate304) { 713 TEST_F(ResourceFetcherTest, Revalidate304) {
714 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
715
640 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 716 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
641 Resource* resource = RawResource::create(url, Resource::Raw); 717 Resource* resource = RawResource::create(url, Resource::Raw);
642 memoryCache()->add(resource); 718 memoryCache()->add(resource);
643 ResourceResponse response; 719 ResourceResponse response;
644 response.setURL(url); 720 response.setURL(url);
645 response.setHTTPStatusCode(304); 721 response.setHTTPStatusCode(304);
646 response.setHTTPHeaderField("etag", "1234567890"); 722 response.setHTTPHeaderField("etag", "1234567890");
647 resource->responseReceived(response, nullptr); 723 resource->responseReceived(response, nullptr);
648 resource->finish(); 724 resource->finish();
649 725
650 ResourceFetcher* fetcher = ResourceFetcher::create( 726 ResourceFetcher* fetcher = ResourceFetcher::create(
651 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 727 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
652 ResourceRequest resourceRequest(url); 728 ResourceRequest resourceRequest(url);
653 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 729 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
654 FetchRequest fetchRequest = 730 FetchRequest fetchRequest =
655 FetchRequest(resourceRequest, FetchInitiatorInfo()); 731 FetchRequest(resourceRequest, FetchInitiatorInfo());
656 Platform::current()->getURLLoaderMockFactory()->registerURL( 732 Platform::current()->getURLLoaderMockFactory()->registerURL(
657 url, WebURLResponse(), ""); 733 url, WebURLResponse(), "");
658 Resource* newResource = RawResource::fetch(fetchRequest, fetcher); 734 Resource* newResource = RawResource::fetch(fetchRequest, fetcher);
659 fetcher->stopFetching(); 735 fetcher->stopFetching();
660 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 736 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
661 737
662 EXPECT_NE(resource, newResource); 738 EXPECT_NE(resource, newResource);
663 } 739 }
664 740
665 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) { 741 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) {
742 ScopedTestingPlatformSupport<FetchTestingPlatform> platform;
743
666 ResourceFetcher* fetcher = ResourceFetcher::create( 744 ResourceFetcher* fetcher = ResourceFetcher::create(
667 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 745 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
668 ResourceFetcher* fetcher2 = ResourceFetcher::create( 746 ResourceFetcher* fetcher2 = ResourceFetcher::create(
669 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource)); 747 MockFetchContext::create(MockFetchContext::kShouldLoadNewResource));
670 748
671 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 749 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
672 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 750 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename,
673 kTestResourceMimeType); 751 kTestResourceMimeType);
674 752
675 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 753 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
676 fetchRequestOriginal.setLinkPreload(true); 754 fetchRequestOriginal.setLinkPreload(true);
677 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 755 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
678 ASSERT_TRUE(resource); 756 ASSERT_TRUE(resource);
679 EXPECT_TRUE(resource->isLinkPreload()); 757 EXPECT_TRUE(resource->isLinkPreload());
680 fetcher->preloadStarted(resource); 758 fetcher->preloadStarted(resource);
681 759
682 // Resource created by parser on the second fetcher 760 // Resource created by parser on the second fetcher
683 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo()); 761 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo());
684 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2); 762 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2);
685 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2); 763 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2);
686 EXPECT_EQ(resource, newResource2); 764 EXPECT_EQ(resource, newResource2);
687 EXPECT_FALSE(fetcher2->isFetching()); 765 EXPECT_FALSE(fetcher2->isFetching());
688 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 766 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
689 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url); 767 Platform::current()->getURLLoaderMockFactory()->unregisterURL(url);
690 } 768 }
691 769
692 } // namespace blink 770 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698