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

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

Issue 2814703004: Make blink::ResourceRequest ctors explicit (Closed)
Patch Set: simplify Created 3 years, 8 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 FetchParameters fetch_params = 113 FetchParameters fetch_params =
114 FetchParameters(resource_request, FetchInitiatorInfo()); 114 FetchParameters(resource_request, FetchInitiatorInfo());
115 Resource* resource = RawResource::Fetch(fetch_params, fetcher); 115 Resource* resource = RawResource::Fetch(fetch_params, fetcher);
116 ASSERT_TRUE(resource); 116 ASSERT_TRUE(resource);
117 EXPECT_TRUE(resource->ErrorOccurred()); 117 EXPECT_TRUE(resource->ErrorOccurred());
118 EXPECT_TRUE(resource->GetResourceError().IsAccessCheck()); 118 EXPECT_TRUE(resource->GetResourceError().IsAccessCheck());
119 EXPECT_FALSE(GetMemoryCache()->ResourceForURL(secure_url)); 119 EXPECT_FALSE(GetMemoryCache()->ResourceForURL(secure_url));
120 120
121 // Start by calling startLoad() directly, rather than via requestResource(). 121 // Start by calling startLoad() directly, rather than via requestResource().
122 // This shouldn't crash. 122 // This shouldn't crash.
123 fetcher->StartLoad(RawResource::Create(secure_url, Resource::kRaw)); 123 fetcher->StartLoad(
124 RawResource::Create(ResourceRequest(secure_url), Resource::kRaw));
124 } 125 }
125 126
126 TEST_F(ResourceFetcherTest, UseExistingResource) { 127 TEST_F(ResourceFetcherTest, UseExistingResource) {
127 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 128 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
128 129
129 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 130 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
130 ResourceResponse response; 131 ResourceResponse response;
131 response.SetURL(url); 132 response.SetURL(url);
132 response.SetHTTPStatusCode(200); 133 response.SetHTTPStatusCode(200);
133 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 134 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
134 RegisterMockedURLLoadWithCustomResponse(url, response); 135 RegisterMockedURLLoadWithCustomResponse(url, response);
135 136
136 FetchParameters fetch_params = FetchParameters(url, FetchInitiatorInfo()); 137 FetchParameters fetch_params =
138 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
137 Resource* resource = MockResource::Fetch(fetch_params, fetcher); 139 Resource* resource = MockResource::Fetch(fetch_params, fetcher);
138 ASSERT_TRUE(resource); 140 ASSERT_TRUE(resource);
139 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 141 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
140 EXPECT_TRUE(resource->IsLoaded()); 142 EXPECT_TRUE(resource->IsLoaded());
141 EXPECT_TRUE(GetMemoryCache()->Contains(resource)); 143 EXPECT_TRUE(GetMemoryCache()->Contains(resource));
142 144
143 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 145 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
144 EXPECT_EQ(resource, new_resource); 146 EXPECT_EQ(resource, new_resource);
145 } 147 }
146 148
147 TEST_F(ResourceFetcherTest, Vary) { 149 TEST_F(ResourceFetcherTest, Vary) {
148 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 150 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
149 Resource* resource = RawResource::Create(url, Resource::kRaw); 151 Resource* resource =
152 RawResource::Create(ResourceRequest(url), Resource::kRaw);
150 GetMemoryCache()->Add(resource); 153 GetMemoryCache()->Add(resource);
151 ResourceResponse response; 154 ResourceResponse response;
152 response.SetURL(url); 155 response.SetURL(url);
153 response.SetHTTPStatusCode(200); 156 response.SetHTTPStatusCode(200);
154 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 157 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
155 response.SetHTTPHeaderField(HTTPNames::Vary, "*"); 158 response.SetHTTPHeaderField(HTTPNames::Vary, "*");
156 resource->ResponseReceived(response, nullptr); 159 resource->ResponseReceived(response, nullptr);
157 resource->Finish(); 160 resource->Finish();
158 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(url)); 161 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url)));
159 162
160 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 163 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
161 ResourceRequest resource_request(url); 164 ResourceRequest resource_request(url);
162 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 165 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
163 FetchParameters fetch_params = 166 FetchParameters fetch_params =
164 FetchParameters(resource_request, FetchInitiatorInfo()); 167 FetchParameters(resource_request, FetchInitiatorInfo());
165 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( 168 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(
166 url, WebURLResponse(), ""); 169 url, WebURLResponse(), "");
167 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 170 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher);
168 EXPECT_NE(resource, new_resource); 171 EXPECT_NE(resource, new_resource);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 ResourceRequest redirect_resource_request(url); 208 ResourceRequest redirect_resource_request(url);
206 fetcher->RecordResourceTimingOnRedirect(resource, redirect_response, false); 209 fetcher->RecordResourceTimingOnRedirect(resource, redirect_response, false);
207 EXPECT_EQ(navigation_timing_info->TransferSize(), 210 EXPECT_EQ(navigation_timing_info->TransferSize(),
208 encoded_data_length + redirect_encoded_data_length); 211 encoded_data_length + redirect_encoded_data_length);
209 } 212 }
210 213
211 TEST_F(ResourceFetcherTest, VaryOnBack) { 214 TEST_F(ResourceFetcherTest, VaryOnBack) {
212 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 215 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
213 216
214 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 217 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
215 Resource* resource = RawResource::Create(url, Resource::kRaw); 218 Resource* resource =
219 RawResource::Create(ResourceRequest(url), Resource::kRaw);
216 GetMemoryCache()->Add(resource); 220 GetMemoryCache()->Add(resource);
217 ResourceResponse response; 221 ResourceResponse response;
218 response.SetURL(url); 222 response.SetURL(url);
219 response.SetHTTPStatusCode(200); 223 response.SetHTTPStatusCode(200);
220 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 224 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
221 response.SetHTTPHeaderField(HTTPNames::Vary, "*"); 225 response.SetHTTPHeaderField(HTTPNames::Vary, "*");
222 resource->ResponseReceived(response, nullptr); 226 resource->ResponseReceived(response, nullptr);
223 resource->Finish(); 227 resource->Finish();
224 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(url)); 228 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url)));
225 229
226 ResourceRequest resource_request(url); 230 ResourceRequest resource_request(url);
227 resource_request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); 231 resource_request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad);
228 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 232 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
229 FetchParameters fetch_params = 233 FetchParameters fetch_params =
230 FetchParameters(resource_request, FetchInitiatorInfo()); 234 FetchParameters(resource_request, FetchInitiatorInfo());
231 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 235 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher);
232 EXPECT_EQ(resource, new_resource); 236 EXPECT_EQ(resource, new_resource);
233 } 237 }
234 238
235 TEST_F(ResourceFetcherTest, VaryResource) { 239 TEST_F(ResourceFetcherTest, VaryResource) {
236 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 240 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
237 241
238 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 242 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
239 ResourceResponse response; 243 ResourceResponse response;
240 response.SetURL(url); 244 response.SetURL(url);
241 response.SetHTTPStatusCode(200); 245 response.SetHTTPStatusCode(200);
242 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 246 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
243 response.SetHTTPHeaderField(HTTPNames::Vary, "*"); 247 response.SetHTTPHeaderField(HTTPNames::Vary, "*");
244 RegisterMockedURLLoadWithCustomResponse(url, response); 248 RegisterMockedURLLoadWithCustomResponse(url, response);
245 249
246 FetchParameters fetch_params_original = 250 FetchParameters fetch_params_original =
247 FetchParameters(url, FetchInitiatorInfo()); 251 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
248 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher); 252 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher);
249 ASSERT_TRUE(resource); 253 ASSERT_TRUE(resource);
250 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 254 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
251 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(url)); 255 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url)));
252 256
253 FetchParameters fetch_params = FetchParameters(url, FetchInitiatorInfo()); 257 FetchParameters fetch_params =
258 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
254 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 259 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
255 EXPECT_EQ(resource, new_resource); 260 EXPECT_EQ(resource, new_resource);
256 } 261 }
257 262
258 class RequestSameResourceOnComplete 263 class RequestSameResourceOnComplete
259 : public GarbageCollectedFinalized<RequestSameResourceOnComplete>, 264 : public GarbageCollectedFinalized<RequestSameResourceOnComplete>,
260 public RawResourceClient { 265 public RawResourceClient {
261 USING_GARBAGE_COLLECTED_MIXIN(RequestSameResourceOnComplete); 266 USING_GARBAGE_COLLECTED_MIXIN(RequestSameResourceOnComplete);
262 267
263 public: 268 public:
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 resource->GetResourceRequest().Priority()); 485 resource->GetResourceRequest().Priority());
481 } 486 }
482 487
483 TEST_F(ResourceFetcherTest, PreloadResourceTwice) { 488 TEST_F(ResourceFetcherTest, PreloadResourceTwice) {
484 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 489 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
485 490
486 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png"); 491 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png");
487 RegisterMockedURLLoad(url); 492 RegisterMockedURLLoad(url);
488 493
489 FetchParameters fetch_params_original = 494 FetchParameters fetch_params_original =
490 FetchParameters(url, FetchInitiatorInfo()); 495 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
491 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher); 496 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher);
492 ASSERT_TRUE(resource); 497 ASSERT_TRUE(resource);
493 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 498 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
494 fetcher->PreloadStarted(resource); 499 fetcher->PreloadStarted(resource);
495 500
496 FetchParameters fetch_params = FetchParameters(url, FetchInitiatorInfo()); 501 FetchParameters fetch_params =
502 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
497 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 503 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
498 EXPECT_EQ(resource, new_resource); 504 EXPECT_EQ(resource, new_resource);
499 fetcher->PreloadStarted(resource); 505 fetcher->PreloadStarted(resource);
500 506
501 fetcher->ClearPreloads(ResourceFetcher::kClearAllPreloads); 507 fetcher->ClearPreloads(ResourceFetcher::kClearAllPreloads);
502 EXPECT_FALSE(GetMemoryCache()->Contains(resource)); 508 EXPECT_FALSE(GetMemoryCache()->Contains(resource));
503 EXPECT_FALSE(resource->IsPreloaded()); 509 EXPECT_FALSE(resource->IsPreloaded());
504 } 510 }
505 511
506 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) { 512 TEST_F(ResourceFetcherTest, LinkPreloadResourceAndUse) {
507 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 513 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
508 514
509 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png"); 515 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png");
510 RegisterMockedURLLoad(url); 516 RegisterMockedURLLoad(url);
511 517
512 // Link preload preload scanner 518 // Link preload preload scanner
513 FetchParameters fetch_params_original = 519 FetchParameters fetch_params_original =
514 FetchParameters(url, FetchInitiatorInfo()); 520 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
515 fetch_params_original.SetLinkPreload(true); 521 fetch_params_original.SetLinkPreload(true);
516 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher); 522 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher);
517 ASSERT_TRUE(resource); 523 ASSERT_TRUE(resource);
518 EXPECT_TRUE(resource->IsLinkPreload()); 524 EXPECT_TRUE(resource->IsLinkPreload());
519 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 525 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
520 fetcher->PreloadStarted(resource); 526 fetcher->PreloadStarted(resource);
521 527
522 // Resource created by preload scanner 528 // Resource created by preload scanner
523 FetchParameters fetch_params_preload_scanner = 529 FetchParameters fetch_params_preload_scanner =
524 FetchParameters(url, FetchInitiatorInfo()); 530 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
525 Resource* preload_scanner_resource = 531 Resource* preload_scanner_resource =
526 MockResource::Fetch(fetch_params_preload_scanner, fetcher); 532 MockResource::Fetch(fetch_params_preload_scanner, fetcher);
527 EXPECT_EQ(resource, preload_scanner_resource); 533 EXPECT_EQ(resource, preload_scanner_resource);
528 EXPECT_FALSE(resource->IsLinkPreload()); 534 EXPECT_FALSE(resource->IsLinkPreload());
529 fetcher->PreloadStarted(resource); 535 fetcher->PreloadStarted(resource);
530 536
531 // Resource created by parser 537 // Resource created by parser
532 FetchParameters fetch_params = FetchParameters(url, FetchInitiatorInfo()); 538 FetchParameters fetch_params =
539 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
533 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 540 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
534 Persistent<MockResourceClient> client = new MockResourceClient(new_resource); 541 Persistent<MockResourceClient> client = new MockResourceClient(new_resource);
535 EXPECT_EQ(resource, new_resource); 542 EXPECT_EQ(resource, new_resource);
536 EXPECT_FALSE(resource->IsLinkPreload()); 543 EXPECT_FALSE(resource->IsLinkPreload());
537 544
538 // DCL reached 545 // DCL reached
539 fetcher->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads); 546 fetcher->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
540 EXPECT_TRUE(GetMemoryCache()->Contains(resource)); 547 EXPECT_TRUE(GetMemoryCache()->Contains(resource));
541 EXPECT_FALSE(resource->IsPreloaded()); 548 EXPECT_FALSE(resource->IsPreloaded());
542 } 549 }
543 550
544 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) { 551 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndUse) {
545 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 552 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
546 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context()); 553 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context());
547 554
548 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png"); 555 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png");
549 RegisterMockedURLLoad(url); 556 RegisterMockedURLLoad(url);
550 557
551 FetchParameters fetch_params_original = 558 FetchParameters fetch_params_original =
552 FetchParameters(url, FetchInitiatorInfo()); 559 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
553 fetch_params_original.SetLinkPreload(true); 560 fetch_params_original.SetLinkPreload(true);
554 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher); 561 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher);
555 ASSERT_TRUE(resource); 562 ASSERT_TRUE(resource);
556 EXPECT_TRUE(resource->IsLinkPreload()); 563 EXPECT_TRUE(resource->IsLinkPreload());
557 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 564 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
558 fetcher->PreloadStarted(resource); 565 fetcher->PreloadStarted(resource);
559 566
560 FetchParameters fetch_params_second = 567 FetchParameters fetch_params_second =
561 FetchParameters(url, FetchInitiatorInfo()); 568 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
562 fetch_params_second.SetLinkPreload(true); 569 fetch_params_second.SetLinkPreload(true);
563 Resource* second_resource = 570 Resource* second_resource =
564 MockResource::Fetch(fetch_params_second, fetcher2); 571 MockResource::Fetch(fetch_params_second, fetcher2);
565 ASSERT_TRUE(second_resource); 572 ASSERT_TRUE(second_resource);
566 EXPECT_TRUE(second_resource->IsLinkPreload()); 573 EXPECT_TRUE(second_resource->IsLinkPreload());
567 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 574 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
568 fetcher2->PreloadStarted(second_resource); 575 fetcher2->PreloadStarted(second_resource);
569 576
570 // Link rel preload scanner 577 // Link rel preload scanner
571 FetchParameters fetch_params_link_preload_scanner = 578 FetchParameters fetch_params_link_preload_scanner =
572 FetchParameters(url, FetchInitiatorInfo()); 579 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
573 fetch_params_link_preload_scanner.SetLinkPreload(true); 580 fetch_params_link_preload_scanner.SetLinkPreload(true);
574 Resource* link_preload_scanner_resource = 581 Resource* link_preload_scanner_resource =
575 MockResource::Fetch(fetch_params_link_preload_scanner, fetcher); 582 MockResource::Fetch(fetch_params_link_preload_scanner, fetcher);
576 EXPECT_EQ(resource, link_preload_scanner_resource); 583 EXPECT_EQ(resource, link_preload_scanner_resource);
577 EXPECT_TRUE(resource->IsLinkPreload()); 584 EXPECT_TRUE(resource->IsLinkPreload());
578 fetcher->PreloadStarted(resource); 585 fetcher->PreloadStarted(resource);
579 586
580 // Resource created by preload scanner 587 // Resource created by preload scanner
581 FetchParameters fetch_params_preload_scanner = 588 FetchParameters fetch_params_preload_scanner =
582 FetchParameters(url, FetchInitiatorInfo()); 589 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
583 Resource* preload_scanner_resource = 590 Resource* preload_scanner_resource =
584 MockResource::Fetch(fetch_params_preload_scanner, fetcher); 591 MockResource::Fetch(fetch_params_preload_scanner, fetcher);
585 EXPECT_EQ(resource, preload_scanner_resource); 592 EXPECT_EQ(resource, preload_scanner_resource);
586 EXPECT_FALSE(resource->IsLinkPreload()); 593 EXPECT_FALSE(resource->IsLinkPreload());
587 fetcher->PreloadStarted(resource); 594 fetcher->PreloadStarted(resource);
588 595
589 // Resource created by preload scanner on the second fetcher 596 // Resource created by preload scanner on the second fetcher
590 FetchParameters fetch_params_preload_scanner2 = 597 FetchParameters fetch_params_preload_scanner2 =
591 FetchParameters(url, FetchInitiatorInfo()); 598 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
592 Resource* preload_scanner_resource2 = 599 Resource* preload_scanner_resource2 =
593 MockResource::Fetch(fetch_params_preload_scanner2, fetcher2); 600 MockResource::Fetch(fetch_params_preload_scanner2, fetcher2);
594 EXPECT_EQ(resource, preload_scanner_resource2); 601 EXPECT_EQ(resource, preload_scanner_resource2);
595 EXPECT_FALSE(resource->IsLinkPreload()); 602 EXPECT_FALSE(resource->IsLinkPreload());
596 fetcher2->PreloadStarted(resource); 603 fetcher2->PreloadStarted(resource);
597 604
598 // Resource created by parser 605 // Resource created by parser
599 FetchParameters fetch_params = FetchParameters(url, FetchInitiatorInfo()); 606 FetchParameters fetch_params =
607 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
600 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 608 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
601 Persistent<MockResourceClient> client = new MockResourceClient(new_resource); 609 Persistent<MockResourceClient> client = new MockResourceClient(new_resource);
602 EXPECT_EQ(resource, new_resource); 610 EXPECT_EQ(resource, new_resource);
603 EXPECT_FALSE(resource->IsLinkPreload()); 611 EXPECT_FALSE(resource->IsLinkPreload());
604 612
605 // Resource created by parser on the second fetcher 613 // Resource created by parser on the second fetcher
606 FetchParameters fetch_params2 = FetchParameters(url, FetchInitiatorInfo()); 614 FetchParameters fetch_params2 =
615 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
607 Resource* new_resource2 = MockResource::Fetch(fetch_params, fetcher2); 616 Resource* new_resource2 = MockResource::Fetch(fetch_params, fetcher2);
608 Persistent<MockResourceClient> client2 = 617 Persistent<MockResourceClient> client2 =
609 new MockResourceClient(new_resource2); 618 new MockResourceClient(new_resource2);
610 EXPECT_EQ(resource, new_resource2); 619 EXPECT_EQ(resource, new_resource2);
611 EXPECT_FALSE(resource->IsLinkPreload()); 620 EXPECT_FALSE(resource->IsLinkPreload());
612 621
613 // DCL reached on first fetcher 622 // DCL reached on first fetcher
614 EXPECT_TRUE(resource->IsPreloaded()); 623 EXPECT_TRUE(resource->IsPreloaded());
615 fetcher->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads); 624 fetcher->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
616 EXPECT_TRUE(GetMemoryCache()->Contains(resource)); 625 EXPECT_TRUE(GetMemoryCache()->Contains(resource));
617 EXPECT_TRUE(resource->IsPreloaded()); 626 EXPECT_TRUE(resource->IsPreloaded());
618 627
619 // DCL reached on second fetcher 628 // DCL reached on second fetcher
620 fetcher2->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads); 629 fetcher2->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
621 EXPECT_TRUE(GetMemoryCache()->Contains(resource)); 630 EXPECT_TRUE(GetMemoryCache()->Contains(resource));
622 EXPECT_FALSE(resource->IsPreloaded()); 631 EXPECT_FALSE(resource->IsPreloaded());
623 } 632 }
624 633
625 TEST_F(ResourceFetcherTest, Revalidate304) { 634 TEST_F(ResourceFetcherTest, Revalidate304) {
626 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 635 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
627 Resource* resource = RawResource::Create(url, Resource::kRaw); 636 Resource* resource =
637 RawResource::Create(ResourceRequest(url), Resource::kRaw);
628 GetMemoryCache()->Add(resource); 638 GetMemoryCache()->Add(resource);
629 ResourceResponse response; 639 ResourceResponse response;
630 response.SetURL(url); 640 response.SetURL(url);
631 response.SetHTTPStatusCode(304); 641 response.SetHTTPStatusCode(304);
632 response.SetHTTPHeaderField("etag", "1234567890"); 642 response.SetHTTPHeaderField("etag", "1234567890");
633 resource->ResponseReceived(response, nullptr); 643 resource->ResponseReceived(response, nullptr);
634 resource->Finish(); 644 resource->Finish();
635 645
636 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 646 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
637 ResourceRequest resource_request(url); 647 ResourceRequest resource_request(url);
638 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 648 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
639 FetchParameters fetch_params = 649 FetchParameters fetch_params =
640 FetchParameters(resource_request, FetchInitiatorInfo()); 650 FetchParameters(resource_request, FetchInitiatorInfo());
641 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( 651 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(
642 url, WebURLResponse(), ""); 652 url, WebURLResponse(), "");
643 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 653 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher);
644 fetcher->StopFetching(); 654 fetcher->StopFetching();
645 655
646 EXPECT_NE(resource, new_resource); 656 EXPECT_NE(resource, new_resource);
647 } 657 }
648 658
649 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) { 659 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) {
650 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 660 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
651 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context()); 661 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context());
652 662
653 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png"); 663 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png");
654 RegisterMockedURLLoad(url); 664 RegisterMockedURLLoad(url);
655 665
656 FetchParameters fetch_params_original = 666 FetchParameters fetch_params_original =
657 FetchParameters(url, FetchInitiatorInfo()); 667 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
658 fetch_params_original.SetLinkPreload(true); 668 fetch_params_original.SetLinkPreload(true);
659 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher); 669 Resource* resource = MockResource::Fetch(fetch_params_original, fetcher);
660 ASSERT_TRUE(resource); 670 ASSERT_TRUE(resource);
661 EXPECT_TRUE(resource->IsLinkPreload()); 671 EXPECT_TRUE(resource->IsLinkPreload());
662 EXPECT_FALSE(fetcher->IsFetching()); 672 EXPECT_FALSE(fetcher->IsFetching());
663 fetcher->PreloadStarted(resource); 673 fetcher->PreloadStarted(resource);
664 674
665 // Resource created by parser on the second fetcher 675 // Resource created by parser on the second fetcher
666 FetchParameters fetch_params2 = FetchParameters(url, FetchInitiatorInfo()); 676 FetchParameters fetch_params2 =
677 FetchParameters(ResourceRequest(url), FetchInitiatorInfo());
667 Resource* new_resource2 = MockResource::Fetch(fetch_params2, fetcher2); 678 Resource* new_resource2 = MockResource::Fetch(fetch_params2, fetcher2);
668 Persistent<MockResourceClient> client2 = 679 Persistent<MockResourceClient> client2 =
669 new MockResourceClient(new_resource2); 680 new MockResourceClient(new_resource2);
670 EXPECT_NE(resource, new_resource2); 681 EXPECT_NE(resource, new_resource2);
671 EXPECT_FALSE(fetcher2->IsFetching()); 682 EXPECT_FALSE(fetcher2->IsFetching());
672 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 683 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
673 } 684 }
674 685
675 TEST_F(ResourceFetcherTest, ContentTypeDataURL) { 686 TEST_F(ResourceFetcherTest, ContentTypeDataURL) {
676 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 687 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
677 FetchParameters fetch_params = 688 FetchParameters fetch_params = FetchParameters(
678 FetchParameters(KURL(kParsedURLString, "data:text/testmimetype,foo"), 689 ResourceRequest("data:text/testmimetype,foo"), FetchInitiatorInfo());
679 FetchInitiatorInfo());
680 Resource* resource = MockResource::Fetch(fetch_params, fetcher); 690 Resource* resource = MockResource::Fetch(fetch_params, fetcher);
681 ASSERT_TRUE(resource); 691 ASSERT_TRUE(resource);
682 EXPECT_EQ(ResourceStatus::kCached, resource->GetStatus()); 692 EXPECT_EQ(ResourceStatus::kCached, resource->GetStatus());
683 EXPECT_EQ("text/testmimetype", resource->GetResponse().MimeType()); 693 EXPECT_EQ("text/testmimetype", resource->GetResponse().MimeType());
684 EXPECT_EQ("text/testmimetype", resource->GetResponse().HttpContentType()); 694 EXPECT_EQ("text/testmimetype", resource->GetResponse().HttpContentType());
685 } 695 }
686 696
687 } // namespace blink 697 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698