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

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

Issue 2654933003: platform/testing/{URL|Unit}TestHelpers improvements (Closed)
Patch Set: header changes Created 3 years, 10 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 12 matching lines...) Expand all
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 "platform/loader/fetch/ResourceFetcher.h" 31 #include "platform/loader/fetch/ResourceFetcher.h"
32 32
33 #include <memory>
33 #include "platform/WebTaskRunner.h" 34 #include "platform/WebTaskRunner.h"
34 #include "platform/exported/WrappedResourceResponse.h" 35 #include "platform/exported/WrappedResourceResponse.h"
35 #include "platform/heap/Handle.h" 36 #include "platform/heap/Handle.h"
36 #include "platform/heap/HeapAllocator.h" 37 #include "platform/heap/HeapAllocator.h"
37 #include "platform/heap/Member.h" 38 #include "platform/heap/Member.h"
38 #include "platform/loader/fetch/FetchInitiatorInfo.h" 39 #include "platform/loader/fetch/FetchInitiatorInfo.h"
39 #include "platform/loader/fetch/FetchInitiatorTypeNames.h" 40 #include "platform/loader/fetch/FetchInitiatorTypeNames.h"
40 #include "platform/loader/fetch/FetchRequest.h" 41 #include "platform/loader/fetch/FetchRequest.h"
41 #include "platform/loader/fetch/FetchTestingPlatformSupport.h" 42 #include "platform/loader/fetch/FetchTestingPlatformSupport.h"
42 #include "platform/loader/fetch/MemoryCache.h" 43 #include "platform/loader/fetch/MemoryCache.h"
43 #include "platform/loader/fetch/MockFetchContext.h" 44 #include "platform/loader/fetch/MockFetchContext.h"
44 #include "platform/loader/fetch/MockResource.h" 45 #include "platform/loader/fetch/MockResource.h"
45 #include "platform/loader/fetch/MockResourceClient.h" 46 #include "platform/loader/fetch/MockResourceClient.h"
46 #include "platform/loader/fetch/RawResource.h" 47 #include "platform/loader/fetch/RawResource.h"
47 #include "platform/loader/fetch/ResourceLoader.h" 48 #include "platform/loader/fetch/ResourceLoader.h"
48 #include "platform/network/ResourceError.h" 49 #include "platform/network/ResourceError.h"
49 #include "platform/network/ResourceRequest.h" 50 #include "platform/network/ResourceRequest.h"
50 #include "platform/network/ResourceTimingInfo.h" 51 #include "platform/network/ResourceTimingInfo.h"
51 #include "platform/scheduler/test/fake_web_task_runner.h" 52 #include "platform/scheduler/test/fake_web_task_runner.h"
52 #include "platform/testing/TestingPlatformSupport.h" 53 #include "platform/testing/TestingPlatformSupport.h"
53 #include "platform/testing/URLTestHelpers.h" 54 #include "platform/testing/URLTestHelpers.h"
55 #include "platform/testing/UnitTestHelpers.h"
54 #include "platform/testing/weburl_loader_mock.h" 56 #include "platform/testing/weburl_loader_mock.h"
55 #include "platform/testing/weburl_loader_mock_factory_impl.h" 57 #include "platform/testing/weburl_loader_mock_factory_impl.h"
56 #include "platform/weborigin/KURL.h" 58 #include "platform/weborigin/KURL.h"
57 #include "public/platform/Platform.h" 59 #include "public/platform/Platform.h"
58 #include "public/platform/WebURLLoader.h" 60 #include "public/platform/WebURLLoader.h"
59 #include "public/platform/WebURLLoaderMockFactory.h" 61 #include "public/platform/WebURLLoaderMockFactory.h"
60 #include "public/platform/WebURLResponse.h" 62 #include "public/platform/WebURLResponse.h"
61 #include "testing/gtest/include/gtest/gtest.h" 63 #include "testing/gtest/include/gtest/gtest.h"
62 #include "wtf/Allocator.h" 64 #include "wtf/Allocator.h"
63 #include "wtf/PtrUtil.h" 65 #include "wtf/PtrUtil.h"
64 #include "wtf/Vector.h" 66 #include "wtf/Vector.h"
65 #include <memory>
66 67
67 namespace blink { 68 namespace blink {
68 69
69 namespace { 70 namespace {
71
70 constexpr char kTestResourceFilename[] = "white-1x1.png"; 72 constexpr char kTestResourceFilename[] = "white-1x1.png";
71 constexpr char kTestResourceMimeType[] = "image/png"; 73 constexpr char kTestResourceMimeType[] = "image/png";
72 constexpr int kTestResourceSize = 103; // size of web/tests/data/white-1x1.png 74 constexpr int kTestResourceSize = 103; // size of white-1x1.png
75
76 void registerMockedURLLoadWithCustomResponse(const KURL& url,
77 const ResourceResponse& response) {
78 URLTestHelpers::registerMockedURLLoadWithCustomResponse(
79 url, testing::platformTestDataPath(kTestResourceFilename),
80 WrappedResourceResponse(response));
73 } 81 }
74 82
83 void registerMockedURLLoad(const KURL& url) {
84 URLTestHelpers::registerMockedURLLoad(
85 url, testing::platformTestDataPath(kTestResourceFilename),
86 kTestResourceMimeType);
87 }
88
89 } // namespace
90
75 class ResourceFetcherTest : public ::testing::Test { 91 class ResourceFetcherTest : public ::testing::Test {
76 public: 92 public:
77 ResourceFetcherTest() = default; 93 ResourceFetcherTest() = default;
78 ~ResourceFetcherTest() override { memoryCache()->evictResources(); } 94 ~ResourceFetcherTest() override { memoryCache()->evictResources(); }
79 95
80 protected: 96 protected:
81 MockFetchContext* context() { return m_platform->context(); } 97 MockFetchContext* context() { return m_platform->context(); }
82 98
83 ScopedTestingPlatformSupport<FetchTestingPlatformSupport> m_platform; 99 ScopedTestingPlatformSupport<FetchTestingPlatformSupport> m_platform;
84 100
(...skipping 22 matching lines...) Expand all
107 } 123 }
108 124
109 TEST_F(ResourceFetcherTest, UseExistingResource) { 125 TEST_F(ResourceFetcherTest, UseExistingResource) {
110 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 126 ResourceFetcher* fetcher = ResourceFetcher::create(context());
111 127
112 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 128 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
113 ResourceResponse response; 129 ResourceResponse response;
114 response.setURL(url); 130 response.setURL(url);
115 response.setHTTPStatusCode(200); 131 response.setHTTPStatusCode(200);
116 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 132 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
117 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 133 registerMockedURLLoadWithCustomResponse(url, response);
118 url, kTestResourceFilename, WebString::fromUTF8(""),
119 WrappedResourceResponse(response));
120 134
121 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 135 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
122 Resource* resource = MockResource::fetch(fetchRequest, fetcher); 136 Resource* resource = MockResource::fetch(fetchRequest, fetcher);
123 ASSERT_TRUE(resource); 137 ASSERT_TRUE(resource);
124 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 138 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
125 EXPECT_TRUE(resource->isLoaded()); 139 EXPECT_TRUE(resource->isLoaded());
126 EXPECT_TRUE(memoryCache()->contains(resource)); 140 EXPECT_TRUE(memoryCache()->contains(resource));
127 141
128 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 142 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
129 EXPECT_EQ(resource, newResource); 143 EXPECT_EQ(resource, newResource);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 232
219 TEST_F(ResourceFetcherTest, VaryResource) { 233 TEST_F(ResourceFetcherTest, VaryResource) {
220 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 234 ResourceFetcher* fetcher = ResourceFetcher::create(context());
221 235
222 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 236 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
223 ResourceResponse response; 237 ResourceResponse response;
224 response.setURL(url); 238 response.setURL(url);
225 response.setHTTPStatusCode(200); 239 response.setHTTPStatusCode(200);
226 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 240 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
227 response.setHTTPHeaderField(HTTPNames::Vary, "*"); 241 response.setHTTPHeaderField(HTTPNames::Vary, "*");
228 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 242 registerMockedURLLoadWithCustomResponse(url, response);
229 url, kTestResourceFilename, WebString::fromUTF8(""),
230 WrappedResourceResponse(response));
231 243
232 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 244 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
233 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 245 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
234 ASSERT_TRUE(resource); 246 ASSERT_TRUE(resource);
235 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 247 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
236 ASSERT_TRUE(resource->hasVaryHeader()); 248 ASSERT_TRUE(resource->hasVaryHeader());
237 249
238 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 250 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
239 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 251 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
240 EXPECT_EQ(resource, newResource); 252 EXPECT_EQ(resource, newResource);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 bool m_notifyFinishedCalled; 286 bool m_notifyFinishedCalled;
275 }; 287 };
276 288
277 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) { 289 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) {
278 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 290 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
279 ResourceResponse response; 291 ResourceResponse response;
280 response.setURL(url); 292 response.setURL(url);
281 response.setHTTPStatusCode(200); 293 response.setHTTPStatusCode(200);
282 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 294 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
283 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890"); 295 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890");
284 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 296 registerMockedURLLoadWithCustomResponse(url, response);
285 url, kTestResourceFilename, WebString::fromUTF8(""),
286 WrappedResourceResponse(response));
287 ResourceFetcher* fetcher1 = ResourceFetcher::create(context()); 297 ResourceFetcher* fetcher1 = ResourceFetcher::create(context());
288 ResourceRequest request1(url); 298 ResourceRequest request1(url);
289 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache"); 299 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
290 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo()); 300 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo());
291 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1); 301 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1);
292 Persistent<RequestSameResourceOnComplete> client = 302 Persistent<RequestSameResourceOnComplete> client =
293 new RequestSameResourceOnComplete(resource1); 303 new RequestSameResourceOnComplete(resource1);
294 resource1->addClient(client); 304 resource1->addClient(client);
295 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 305 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
296 EXPECT_TRUE(client->notifyFinishedCalled()); 306 EXPECT_TRUE(client->notifyFinishedCalled());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 String debugName() const override { return "ServeRequestsOnCompleteClient"; } 362 String debugName() const override { return "ServeRequestsOnCompleteClient"; }
353 }; 363 };
354 364
355 // Regression test for http://crbug.com/594072. 365 // Regression test for http://crbug.com/594072.
356 // This emulates a modal dialog triggering a nested run loop inside 366 // This emulates a modal dialog triggering a nested run loop inside
357 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its 367 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its
358 // WebURLLoader before notifying its clients, a nested run loop may send a 368 // WebURLLoader before notifying its clients, a nested run loop may send a
359 // network response, leading to an invalid state transition in ResourceLoader. 369 // network response, leading to an invalid state transition in ResourceLoader.
360 TEST_F(ResourceFetcherTest, ResponseOnCancel) { 370 TEST_F(ResourceFetcherTest, ResponseOnCancel) {
361 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 371 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
362 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 372 registerMockedURLLoad(url);
363 kTestResourceMimeType);
364 373
365 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 374 ResourceFetcher* fetcher = ResourceFetcher::create(context());
366 ResourceRequest resourceRequest(url); 375 ResourceRequest resourceRequest(url);
367 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 376 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
368 FetchRequest fetchRequest = 377 FetchRequest fetchRequest =
369 FetchRequest(resourceRequest, FetchInitiatorInfo()); 378 FetchRequest(resourceRequest, FetchInitiatorInfo());
370 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 379 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
371 Persistent<ServeRequestsOnCompleteClient> client = 380 Persistent<ServeRequestsOnCompleteClient> client =
372 new ServeRequestsOnCompleteClient(); 381 new ServeRequestsOnCompleteClient();
373 resource->addClient(client); 382 resource->addClient(client);
(...skipping 15 matching lines...) Expand all
389 redirectResponse.setURL(redirectURL); 398 redirectResponse.setURL(redirectURL);
390 redirectResponse.setHTTPStatusCode(301); 399 redirectResponse.setHTTPStatusCode(301);
391 redirectResponse.setHTTPHeaderField(HTTPNames::Location, toURL); 400 redirectResponse.setHTTPHeaderField(HTTPNames::Location, toURL);
392 redirectResponse.setEncodedDataLength(kRedirectResponseOverheadBytes); 401 redirectResponse.setEncodedDataLength(kRedirectResponseOverheadBytes);
393 Platform::current()->getURLLoaderMockFactory()->registerURL( 402 Platform::current()->getURLLoaderMockFactory()->registerURL(
394 redirectURL, redirectResponse, ""); 403 redirectURL, redirectResponse, "");
395 } 404 }
396 405
397 void registerFinalResource(const WebString& url) { 406 void registerFinalResource(const WebString& url) {
398 KURL finalURL(ParsedURLString, url); 407 KURL finalURL(ParsedURLString, url);
399 URLTestHelpers::registerMockedURLLoad(finalURL, kTestResourceFilename); 408 registerMockedURLLoad(finalURL);
400 } 409 }
401 410
402 void request(const WebString& url) { 411 void request(const WebString& url) {
403 ResourceFetcher* fetcher = ResourceFetcher::create(m_context); 412 ResourceFetcher* fetcher = ResourceFetcher::create(m_context);
404 ResourceRequest resourceRequest(url); 413 ResourceRequest resourceRequest(url);
405 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 414 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
406 FetchRequest fetchRequest = 415 FetchRequest fetchRequest =
407 FetchRequest(resourceRequest, FetchInitiatorInfo()); 416 FetchRequest(resourceRequest, FetchInitiatorInfo());
408 RawResource::fetch(fetchRequest, fetcher); 417 RawResource::fetch(fetchRequest, fetcher);
409 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 418 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 requester.registerRedirect(redirectURL2, redirectURL3); 455 requester.registerRedirect(redirectURL2, redirectURL3);
447 requester.registerRedirect(redirectURL3, finalURL); 456 requester.registerRedirect(redirectURL3, finalURL);
448 requester.registerFinalResource(finalURL); 457 requester.registerFinalResource(finalURL);
449 requester.request(redirectURL1); 458 requester.request(redirectURL1);
450 459
451 EXPECT_EQ(kTestResourceSize, context()->getTransferSize()); 460 EXPECT_EQ(kTestResourceSize, context()->getTransferSize());
452 } 461 }
453 462
454 TEST_F(ResourceFetcherTest, SynchronousRequest) { 463 TEST_F(ResourceFetcherTest, SynchronousRequest) {
455 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 464 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
456 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 465 registerMockedURLLoad(url);
457 kTestResourceMimeType);
458 466
459 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 467 ResourceFetcher* fetcher = ResourceFetcher::create(context());
460 ResourceRequest resourceRequest(url); 468 ResourceRequest resourceRequest(url);
461 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 469 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
462 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo()); 470 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo());
463 fetchRequest.makeSynchronous(); 471 fetchRequest.makeSynchronous();
464 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 472 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
465 EXPECT_TRUE(resource->isLoaded()); 473 EXPECT_TRUE(resource->isLoaded());
466 EXPECT_EQ(ResourceLoadPriorityHighest, 474 EXPECT_EQ(ResourceLoadPriorityHighest,
467 resource->resourceRequest().priority()); 475 resource->resourceRequest().priority());
468 } 476 }
469 477
470 TEST_F(ResourceFetcherTest, PreloadResourceTwice) { 478 TEST_F(ResourceFetcherTest, PreloadResourceTwice) {
471 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 479 ResourceFetcher* fetcher = ResourceFetcher::create(context());
472 480
473 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 481 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
474 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 482 registerMockedURLLoad(url);
475 kTestResourceMimeType);
476 483
477 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 484 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
478 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 485 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
479 ASSERT_TRUE(resource); 486 ASSERT_TRUE(resource);
480 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 487 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
481 fetcher->preloadStarted(resource); 488 fetcher->preloadStarted(resource);
482 489
483 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 490 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
484 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 491 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
485 EXPECT_EQ(resource, newResource); 492 EXPECT_EQ(resource, newResource);
486 fetcher->preloadStarted(resource); 493 fetcher->preloadStarted(resource);
487 494
488 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads); 495 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads);
489 EXPECT_FALSE(memoryCache()->contains(resource)); 496 EXPECT_FALSE(memoryCache()->contains(resource));
490 EXPECT_FALSE(resource->isPreloaded()); 497 EXPECT_FALSE(resource->isPreloaded());
491 } 498 }
492 499
493 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) { 500 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) {
494 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 501 ResourceFetcher* fetcher = ResourceFetcher::create(context());
495 502
496 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 503 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
497 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 504 registerMockedURLLoad(url);
498 kTestResourceMimeType);
499 505
500 // Link preload preload scanner 506 // Link preload preload scanner
501 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 507 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
502 fetchRequestOriginal.setLinkPreload(true); 508 fetchRequestOriginal.setLinkPreload(true);
503 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 509 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
504 ASSERT_TRUE(resource); 510 ASSERT_TRUE(resource);
505 EXPECT_TRUE(resource->isLinkPreload()); 511 EXPECT_TRUE(resource->isLinkPreload());
506 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 512 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
507 fetcher->preloadStarted(resource); 513 fetcher->preloadStarted(resource);
508 514
(...skipping 17 matching lines...) Expand all
526 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads); 532 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads);
527 EXPECT_TRUE(memoryCache()->contains(resource)); 533 EXPECT_TRUE(memoryCache()->contains(resource));
528 EXPECT_FALSE(resource->isPreloaded()); 534 EXPECT_FALSE(resource->isPreloaded());
529 } 535 }
530 536
531 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) { 537 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) {
532 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 538 ResourceFetcher* fetcher = ResourceFetcher::create(context());
533 ResourceFetcher* fetcher2 = ResourceFetcher::create(context()); 539 ResourceFetcher* fetcher2 = ResourceFetcher::create(context());
534 540
535 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 541 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
536 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 542 registerMockedURLLoad(url);
537 kTestResourceMimeType);
538 543
539 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 544 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
540 fetchRequestOriginal.setLinkPreload(true); 545 fetchRequestOriginal.setLinkPreload(true);
541 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 546 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
542 ASSERT_TRUE(resource); 547 ASSERT_TRUE(resource);
543 EXPECT_TRUE(resource->isLinkPreload()); 548 EXPECT_TRUE(resource->isLinkPreload());
544 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 549 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
545 fetcher->preloadStarted(resource); 550 fetcher->preloadStarted(resource);
546 551
547 FetchRequest fetchRequestSecond = FetchRequest(url, FetchInitiatorInfo()); 552 FetchRequest fetchRequestSecond = FetchRequest(url, FetchInitiatorInfo());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 fetcher->stopFetching(); 633 fetcher->stopFetching();
629 634
630 EXPECT_NE(resource, newResource); 635 EXPECT_NE(resource, newResource);
631 } 636 }
632 637
633 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) { 638 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) {
634 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 639 ResourceFetcher* fetcher = ResourceFetcher::create(context());
635 ResourceFetcher* fetcher2 = ResourceFetcher::create(context()); 640 ResourceFetcher* fetcher2 = ResourceFetcher::create(context());
636 641
637 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 642 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
638 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 643 registerMockedURLLoad(url);
639 kTestResourceMimeType);
640 644
641 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 645 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
642 fetchRequestOriginal.setLinkPreload(true); 646 fetchRequestOriginal.setLinkPreload(true);
643 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 647 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
644 ASSERT_TRUE(resource); 648 ASSERT_TRUE(resource);
645 EXPECT_TRUE(resource->isLinkPreload()); 649 EXPECT_TRUE(resource->isLinkPreload());
646 fetcher->preloadStarted(resource); 650 fetcher->preloadStarted(resource);
647 651
648 // Resource created by parser on the second fetcher 652 // Resource created by parser on the second fetcher
649 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo()); 653 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo());
650 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2); 654 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2);
651 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2); 655 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2);
652 EXPECT_EQ(resource, newResource2); 656 EXPECT_EQ(resource, newResource2);
653 EXPECT_FALSE(fetcher2->isFetching()); 657 EXPECT_FALSE(fetcher2->isFetching());
654 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 658 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
655 } 659 }
656 660
657 } // namespace blink 661 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/fonts/FontTest.cpp ('k') | third_party/WebKit/Source/platform/testing/URLTestHelpers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698