| 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 |