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

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

Issue 2654933003: platform/testing/{URL|Unit}TestHelpers improvements (Closed)
Patch Set: cleanup 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "platform/loader/fetch/MockResource.h" 44 #include "platform/loader/fetch/MockResource.h"
45 #include "platform/loader/fetch/MockResourceClient.h" 45 #include "platform/loader/fetch/MockResourceClient.h"
46 #include "platform/loader/fetch/RawResource.h" 46 #include "platform/loader/fetch/RawResource.h"
47 #include "platform/loader/fetch/ResourceLoader.h" 47 #include "platform/loader/fetch/ResourceLoader.h"
48 #include "platform/network/ResourceError.h" 48 #include "platform/network/ResourceError.h"
49 #include "platform/network/ResourceRequest.h" 49 #include "platform/network/ResourceRequest.h"
50 #include "platform/network/ResourceTimingInfo.h" 50 #include "platform/network/ResourceTimingInfo.h"
51 #include "platform/scheduler/test/fake_web_task_runner.h" 51 #include "platform/scheduler/test/fake_web_task_runner.h"
52 #include "platform/testing/TestingPlatformSupport.h" 52 #include "platform/testing/TestingPlatformSupport.h"
53 #include "platform/testing/URLTestHelpers.h" 53 #include "platform/testing/URLTestHelpers.h"
54 #include "platform/testing/UnitTestHelpers.h"
54 #include "platform/testing/weburl_loader_mock.h" 55 #include "platform/testing/weburl_loader_mock.h"
55 #include "platform/testing/weburl_loader_mock_factory_impl.h" 56 #include "platform/testing/weburl_loader_mock_factory_impl.h"
56 #include "platform/weborigin/KURL.h" 57 #include "platform/weborigin/KURL.h"
57 #include "public/platform/Platform.h" 58 #include "public/platform/Platform.h"
58 #include "public/platform/WebURLLoader.h" 59 #include "public/platform/WebURLLoader.h"
59 #include "public/platform/WebURLLoaderMockFactory.h" 60 #include "public/platform/WebURLLoaderMockFactory.h"
60 #include "public/platform/WebURLResponse.h" 61 #include "public/platform/WebURLResponse.h"
61 #include "testing/gtest/include/gtest/gtest.h" 62 #include "testing/gtest/include/gtest/gtest.h"
62 #include "wtf/Allocator.h" 63 #include "wtf/Allocator.h"
63 #include "wtf/PtrUtil.h" 64 #include "wtf/PtrUtil.h"
64 #include "wtf/Vector.h" 65 #include "wtf/Vector.h"
65 #include <memory> 66 #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 = default; 94 ~ResourceFetcherTest() override = default;
79 95
80 void TearDown() override { 96 void TearDown() override {
81 m_platform->getURLLoaderMockFactory()->unregisterAllURLs(); 97 m_platform->getURLLoaderMockFactory()->unregisterAllURLs();
82 memoryCache()->evictResources(); 98 memoryCache()->evictResources();
83 } 99 }
84 100
(...skipping 27 matching lines...) Expand all
112 } 128 }
113 129
114 TEST_F(ResourceFetcherTest, UseExistingResource) { 130 TEST_F(ResourceFetcherTest, UseExistingResource) {
115 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 131 ResourceFetcher* fetcher = ResourceFetcher::create(context());
116 132
117 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 133 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
118 ResourceResponse response; 134 ResourceResponse response;
119 response.setURL(url); 135 response.setURL(url);
120 response.setHTTPStatusCode(200); 136 response.setHTTPStatusCode(200);
121 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 137 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
122 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 138 registerMockedURLLoadWithCustomResponse(url, response);
123 url, kTestResourceFilename, WebString::fromUTF8(""),
124 WrappedResourceResponse(response));
125 139
126 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 140 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
127 Resource* resource = MockResource::fetch(fetchRequest, fetcher); 141 Resource* resource = MockResource::fetch(fetchRequest, fetcher);
128 ASSERT_TRUE(resource); 142 ASSERT_TRUE(resource);
129 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 143 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
130 EXPECT_TRUE(resource->isLoaded()); 144 EXPECT_TRUE(resource->isLoaded());
131 EXPECT_TRUE(memoryCache()->contains(resource)); 145 EXPECT_TRUE(memoryCache()->contains(resource));
132 146
133 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 147 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
134 EXPECT_EQ(resource, newResource); 148 EXPECT_EQ(resource, newResource);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 237
224 TEST_F(ResourceFetcherTest, VaryResource) { 238 TEST_F(ResourceFetcherTest, VaryResource) {
225 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 239 ResourceFetcher* fetcher = ResourceFetcher::create(context());
226 240
227 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html"); 241 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
228 ResourceResponse response; 242 ResourceResponse response;
229 response.setURL(url); 243 response.setURL(url);
230 response.setHTTPStatusCode(200); 244 response.setHTTPStatusCode(200);
231 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 245 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
232 response.setHTTPHeaderField(HTTPNames::Vary, "*"); 246 response.setHTTPHeaderField(HTTPNames::Vary, "*");
233 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 247 registerMockedURLLoadWithCustomResponse(url, response);
234 url, kTestResourceFilename, WebString::fromUTF8(""),
235 WrappedResourceResponse(response));
236 248
237 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 249 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
238 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 250 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
239 ASSERT_TRUE(resource); 251 ASSERT_TRUE(resource);
240 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 252 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
241 ASSERT_TRUE(resource->hasVaryHeader()); 253 ASSERT_TRUE(resource->hasVaryHeader());
242 254
243 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 255 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
244 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 256 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
245 EXPECT_EQ(resource, newResource); 257 EXPECT_EQ(resource, newResource);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 bool m_notifyFinishedCalled; 291 bool m_notifyFinishedCalled;
280 }; 292 };
281 293
282 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) { 294 TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) {
283 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 295 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
284 ResourceResponse response; 296 ResourceResponse response;
285 response.setURL(url); 297 response.setURL(url);
286 response.setHTTPStatusCode(200); 298 response.setHTTPStatusCode(200);
287 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 299 response.setHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
288 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890"); 300 response.setHTTPHeaderField(HTTPNames::ETag, "1234567890");
289 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 301 registerMockedURLLoadWithCustomResponse(url, response);
290 url, kTestResourceFilename, WebString::fromUTF8(""),
291 WrappedResourceResponse(response));
292 ResourceFetcher* fetcher1 = ResourceFetcher::create(context()); 302 ResourceFetcher* fetcher1 = ResourceFetcher::create(context());
293 ResourceRequest request1(url); 303 ResourceRequest request1(url);
294 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache"); 304 request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
295 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo()); 305 FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo());
296 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1); 306 Resource* resource1 = MockResource::fetch(fetchRequest1, fetcher1);
297 Persistent<RequestSameResourceOnComplete> client = 307 Persistent<RequestSameResourceOnComplete> client =
298 new RequestSameResourceOnComplete(resource1); 308 new RequestSameResourceOnComplete(resource1);
299 resource1->addClient(client); 309 resource1->addClient(client);
300 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 310 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
301 EXPECT_TRUE(client->notifyFinishedCalled()); 311 EXPECT_TRUE(client->notifyFinishedCalled());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 String debugName() const override { return "ServeRequestsOnCompleteClient"; } 367 String debugName() const override { return "ServeRequestsOnCompleteClient"; }
358 }; 368 };
359 369
360 // Regression test for http://crbug.com/594072. 370 // Regression test for http://crbug.com/594072.
361 // This emulates a modal dialog triggering a nested run loop inside 371 // This emulates a modal dialog triggering a nested run loop inside
362 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its 372 // ResourceLoader::cancel(). If the ResourceLoader doesn't promptly cancel its
363 // WebURLLoader before notifying its clients, a nested run loop may send a 373 // WebURLLoader before notifying its clients, a nested run loop may send a
364 // network response, leading to an invalid state transition in ResourceLoader. 374 // network response, leading to an invalid state transition in ResourceLoader.
365 TEST_F(ResourceFetcherTest, ResponseOnCancel) { 375 TEST_F(ResourceFetcherTest, ResponseOnCancel) {
366 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 376 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
367 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 377 registerMockedURLLoad(url);
368 kTestResourceMimeType);
369 378
370 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 379 ResourceFetcher* fetcher = ResourceFetcher::create(context());
371 ResourceRequest resourceRequest(url); 380 ResourceRequest resourceRequest(url);
372 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 381 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
373 FetchRequest fetchRequest = 382 FetchRequest fetchRequest =
374 FetchRequest(resourceRequest, FetchInitiatorInfo()); 383 FetchRequest(resourceRequest, FetchInitiatorInfo());
375 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 384 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
376 Persistent<ServeRequestsOnCompleteClient> client = 385 Persistent<ServeRequestsOnCompleteClient> client =
377 new ServeRequestsOnCompleteClient(); 386 new ServeRequestsOnCompleteClient();
378 resource->addClient(client); 387 resource->addClient(client);
(...skipping 15 matching lines...) Expand all
394 redirectResponse.setURL(redirectURL); 403 redirectResponse.setURL(redirectURL);
395 redirectResponse.setHTTPStatusCode(301); 404 redirectResponse.setHTTPStatusCode(301);
396 redirectResponse.setHTTPHeaderField(HTTPNames::Location, toURL); 405 redirectResponse.setHTTPHeaderField(HTTPNames::Location, toURL);
397 redirectResponse.setEncodedDataLength(kRedirectResponseOverheadBytes); 406 redirectResponse.setEncodedDataLength(kRedirectResponseOverheadBytes);
398 Platform::current()->getURLLoaderMockFactory()->registerURL( 407 Platform::current()->getURLLoaderMockFactory()->registerURL(
399 redirectURL, redirectResponse, ""); 408 redirectURL, redirectResponse, "");
400 } 409 }
401 410
402 void registerFinalResource(const WebString& url) { 411 void registerFinalResource(const WebString& url) {
403 KURL finalURL(ParsedURLString, url); 412 KURL finalURL(ParsedURLString, url);
404 URLTestHelpers::registerMockedURLLoad(finalURL, kTestResourceFilename); 413 registerMockedURLLoad(finalURL);
405 } 414 }
406 415
407 void request(const WebString& url) { 416 void request(const WebString& url) {
408 ResourceFetcher* fetcher = ResourceFetcher::create(m_context); 417 ResourceFetcher* fetcher = ResourceFetcher::create(m_context);
409 ResourceRequest resourceRequest(url); 418 ResourceRequest resourceRequest(url);
410 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 419 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
411 FetchRequest fetchRequest = 420 FetchRequest fetchRequest =
412 FetchRequest(resourceRequest, FetchInitiatorInfo()); 421 FetchRequest(resourceRequest, FetchInitiatorInfo());
413 RawResource::fetch(fetchRequest, fetcher); 422 RawResource::fetch(fetchRequest, fetcher);
414 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 423 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 requester.registerRedirect(redirectURL2, redirectURL3); 460 requester.registerRedirect(redirectURL2, redirectURL3);
452 requester.registerRedirect(redirectURL3, finalURL); 461 requester.registerRedirect(redirectURL3, finalURL);
453 requester.registerFinalResource(finalURL); 462 requester.registerFinalResource(finalURL);
454 requester.request(redirectURL1); 463 requester.request(redirectURL1);
455 464
456 EXPECT_EQ(kTestResourceSize, context()->getTransferSize()); 465 EXPECT_EQ(kTestResourceSize, context()->getTransferSize());
457 } 466 }
458 467
459 TEST_F(ResourceFetcherTest, SynchronousRequest) { 468 TEST_F(ResourceFetcherTest, SynchronousRequest) {
460 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 469 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
461 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 470 registerMockedURLLoad(url);
462 kTestResourceMimeType);
463 471
464 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 472 ResourceFetcher* fetcher = ResourceFetcher::create(context());
465 ResourceRequest resourceRequest(url); 473 ResourceRequest resourceRequest(url);
466 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal); 474 resourceRequest.setRequestContext(WebURLRequest::RequestContextInternal);
467 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo()); 475 FetchRequest fetchRequest(resourceRequest, FetchInitiatorInfo());
468 fetchRequest.makeSynchronous(); 476 fetchRequest.makeSynchronous();
469 Resource* resource = RawResource::fetch(fetchRequest, fetcher); 477 Resource* resource = RawResource::fetch(fetchRequest, fetcher);
470 EXPECT_TRUE(resource->isLoaded()); 478 EXPECT_TRUE(resource->isLoaded());
471 EXPECT_EQ(ResourceLoadPriorityHighest, 479 EXPECT_EQ(ResourceLoadPriorityHighest,
472 resource->resourceRequest().priority()); 480 resource->resourceRequest().priority());
473 } 481 }
474 482
475 TEST_F(ResourceFetcherTest, PreloadResourceTwice) { 483 TEST_F(ResourceFetcherTest, PreloadResourceTwice) {
476 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 484 ResourceFetcher* fetcher = ResourceFetcher::create(context());
477 485
478 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 486 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
479 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 487 registerMockedURLLoad(url);
480 kTestResourceMimeType);
481 488
482 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 489 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
483 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 490 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
484 ASSERT_TRUE(resource); 491 ASSERT_TRUE(resource);
485 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 492 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
486 fetcher->preloadStarted(resource); 493 fetcher->preloadStarted(resource);
487 494
488 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo()); 495 FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
489 Resource* newResource = MockResource::fetch(fetchRequest, fetcher); 496 Resource* newResource = MockResource::fetch(fetchRequest, fetcher);
490 EXPECT_EQ(resource, newResource); 497 EXPECT_EQ(resource, newResource);
491 fetcher->preloadStarted(resource); 498 fetcher->preloadStarted(resource);
492 499
493 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads); 500 fetcher->clearPreloads(ResourceFetcher::ClearAllPreloads);
494 EXPECT_FALSE(memoryCache()->contains(resource)); 501 EXPECT_FALSE(memoryCache()->contains(resource));
495 EXPECT_FALSE(resource->isPreloaded()); 502 EXPECT_FALSE(resource->isPreloaded());
496 } 503 }
497 504
498 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) { 505 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) {
499 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 506 ResourceFetcher* fetcher = ResourceFetcher::create(context());
500 507
501 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 508 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
502 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 509 registerMockedURLLoad(url);
503 kTestResourceMimeType);
504 510
505 // Link preload preload scanner 511 // Link preload preload scanner
506 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 512 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
507 fetchRequestOriginal.setLinkPreload(true); 513 fetchRequestOriginal.setLinkPreload(true);
508 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 514 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
509 ASSERT_TRUE(resource); 515 ASSERT_TRUE(resource);
510 EXPECT_TRUE(resource->isLinkPreload()); 516 EXPECT_TRUE(resource->isLinkPreload());
511 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 517 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
512 fetcher->preloadStarted(resource); 518 fetcher->preloadStarted(resource);
513 519
(...skipping 17 matching lines...) Expand all
531 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads); 537 fetcher->clearPreloads(ResourceFetcher::ClearSpeculativeMarkupPreloads);
532 EXPECT_TRUE(memoryCache()->contains(resource)); 538 EXPECT_TRUE(memoryCache()->contains(resource));
533 EXPECT_FALSE(resource->isPreloaded()); 539 EXPECT_FALSE(resource->isPreloaded());
534 } 540 }
535 541
536 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) { 542 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) {
537 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 543 ResourceFetcher* fetcher = ResourceFetcher::create(context());
538 ResourceFetcher* fetcher2 = ResourceFetcher::create(context()); 544 ResourceFetcher* fetcher2 = ResourceFetcher::create(context());
539 545
540 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 546 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
541 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 547 registerMockedURLLoad(url);
542 kTestResourceMimeType);
543 548
544 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 549 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
545 fetchRequestOriginal.setLinkPreload(true); 550 fetchRequestOriginal.setLinkPreload(true);
546 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 551 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
547 ASSERT_TRUE(resource); 552 ASSERT_TRUE(resource);
548 EXPECT_TRUE(resource->isLinkPreload()); 553 EXPECT_TRUE(resource->isLinkPreload());
549 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 554 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
550 fetcher->preloadStarted(resource); 555 fetcher->preloadStarted(resource);
551 556
552 FetchRequest fetchRequestSecond = FetchRequest(url, FetchInitiatorInfo()); 557 FetchRequest fetchRequestSecond = FetchRequest(url, FetchInitiatorInfo());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 fetcher->stopFetching(); 638 fetcher->stopFetching();
634 639
635 EXPECT_NE(resource, newResource); 640 EXPECT_NE(resource, newResource);
636 } 641 }
637 642
638 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) { 643 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) {
639 ResourceFetcher* fetcher = ResourceFetcher::create(context()); 644 ResourceFetcher* fetcher = ResourceFetcher::create(context());
640 ResourceFetcher* fetcher2 = ResourceFetcher::create(context()); 645 ResourceFetcher* fetcher2 = ResourceFetcher::create(context());
641 646
642 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png"); 647 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.png");
643 URLTestHelpers::registerMockedURLLoad(url, kTestResourceFilename, 648 registerMockedURLLoad(url);
644 kTestResourceMimeType);
645 649
646 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo()); 650 FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
647 fetchRequestOriginal.setLinkPreload(true); 651 fetchRequestOriginal.setLinkPreload(true);
648 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher); 652 Resource* resource = MockResource::fetch(fetchRequestOriginal, fetcher);
649 ASSERT_TRUE(resource); 653 ASSERT_TRUE(resource);
650 EXPECT_TRUE(resource->isLinkPreload()); 654 EXPECT_TRUE(resource->isLinkPreload());
651 fetcher->preloadStarted(resource); 655 fetcher->preloadStarted(resource);
652 656
653 // Resource created by parser on the second fetcher 657 // Resource created by parser on the second fetcher
654 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo()); 658 FetchRequest fetchRequest2 = FetchRequest(url, FetchInitiatorInfo());
655 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2); 659 Resource* newResource2 = MockResource::fetch(fetchRequest2, fetcher2);
656 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2); 660 Persistent<MockResourceClient> client2 = new MockResourceClient(newResource2);
657 EXPECT_EQ(resource, newResource2); 661 EXPECT_EQ(resource, newResource2);
658 EXPECT_FALSE(fetcher2->isFetching()); 662 EXPECT_FALSE(fetcher2->isFetching());
659 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests(); 663 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
660 } 664 }
661 665
662 } // namespace blink 666 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698