OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |