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

Side by Side Diff: third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp

Issue 1802123002: Unify Resource loading status tracking (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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) 2014, Google Inc. All rights reserved. 2 * Copyright (c) 2014, 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 resource = Resource::create(ResourceRequest(response.url()), type); 84 resource = Resource::create(ResourceRequest(response.url()), type);
85 break; 85 break;
86 case Resource::Image: 86 case Resource::Image:
87 resource = ImageResource::create(ResourceRequest(response.url()), nu llptr); 87 resource = ImageResource::create(ResourceRequest(response.url()), nu llptr);
88 break; 88 break;
89 default: 89 default:
90 EXPECT_TRUE(false) << "'Unreachable' code was reached"; 90 EXPECT_TRUE(false) << "'Unreachable' code was reached";
91 return nullptr; 91 return nullptr;
92 } 92 }
93 resource->setResponse(response); 93 resource->setResponse(response);
94 resource->setStatus(Resource::Cached);
hiroshige 2016/03/18 23:21:20 If setStatus(Cached) and finish() at Line 397 etc.
Nate Chapin 2016/03/21 22:04:01 Added finish() call, but leaving setStatus() call
hiroshige 2016/03/22 18:21:33 Oh, OK. Please mention that this is a test-only ha
Nate Chapin 2016/03/22 19:51:23 Done.
94 memoryCache()->add(resource.get()); 95 memoryCache()->add(resource.get());
95 96
96 return resource; 97 return resource;
97 } 98 }
98 99
99 PassRefPtrWillBeRawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw) 100 PassRefPtrWillBeRawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw)
100 { 101 {
101 if (request.url().isNull()) 102 if (request.url().isNull())
102 request.setURL(KURL(ParsedURLString, kResourceURL)); 103 request.setURL(KURL(ParsedURLString, kResourceURL));
103 RefPtrWillBeRawPtr<Resource> resource = 104 RefPtrWillBeRawPtr<Resource> resource =
104 Resource::create(request, type); 105 Resource::create(request, type);
105 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR L), "text/html", 0, nullAtom, String())); 106 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR L), "text/html", 0, nullAtom, String()));
107 resource->setStatus(Resource::Cached);
hiroshige 2016/03/18 23:21:20 ditto.
Nate Chapin 2016/03/21 22:04:01 Done.
106 memoryCache()->add(resource.get()); 108 memoryCache()->add(resource.get());
107 109
108 return resource; 110 return resource;
109 } 111 }
110 112
111 PassRefPtrWillBeRawPtr<Resource> fetch() 113 PassRefPtrWillBeRawPtr<Resource> fetch()
112 { 114 {
113 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo()); 115 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo());
114 return RawResource::fetchSynchronously(fetchRequest, fetcher()); 116 return RawResource::fetchSynchronously(fetchRequest, fetcher());
115 } 117 }
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 firstResource->willFollowRedirect(redirectRequest, fresh301Response); 387 firstResource->willFollowRedirect(redirectRequest, fresh301Response);
386 388
387 // Add the final response to our request. 389 // Add the final response to our request.
388 ResourceResponse fresh200Response; 390 ResourceResponse fresh200Response;
389 fresh200Response.setURL(redirectTargetUrl); 391 fresh200Response.setURL(redirectTargetUrl);
390 fresh200Response.setHTTPStatusCode(200); 392 fresh200Response.setHTTPStatusCode(200);
391 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 393 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
392 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 394 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
393 395
394 firstResource->setResponse(fresh200Response); 396 firstResource->setResponse(fresh200Response);
397 firstResource->finish();
395 memoryCache()->add(firstResource.get()); 398 memoryCache()->add(firstResource.get());
396 399
397 advanceClock(500.); 400 advanceClock(500.);
398 401
399 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 402 RefPtrWillBeRawPtr<Resource> fetched = fetch();
400 EXPECT_EQ(firstResource, fetched); 403 EXPECT_EQ(firstResource, fetched);
401 } 404 }
402 405
403 TEST_F(CachingCorrectnessTest, FreshWithStaleRedirect) 406 TEST_F(CachingCorrectnessTest, FreshWithStaleRedirect)
404 { 407 {
(...skipping 14 matching lines...) Expand all
419 firstResource->willFollowRedirect(redirectRequest, stale301Response); 422 firstResource->willFollowRedirect(redirectRequest, stale301Response);
420 423
421 // Add the final response to our request. 424 // Add the final response to our request.
422 ResourceResponse fresh200Response; 425 ResourceResponse fresh200Response;
423 fresh200Response.setURL(redirectTargetUrl); 426 fresh200Response.setURL(redirectTargetUrl);
424 fresh200Response.setHTTPStatusCode(200); 427 fresh200Response.setHTTPStatusCode(200);
425 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 428 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
426 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 429 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
427 430
428 firstResource->setResponse(fresh200Response); 431 firstResource->setResponse(fresh200Response);
432 firstResource->finish();
429 memoryCache()->add(firstResource.get()); 433 memoryCache()->add(firstResource.get());
430 434
431 advanceClock(500.); 435 advanceClock(500.);
432 436
433 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 437 RefPtrWillBeRawPtr<Resource> fetched = fetch();
434 EXPECT_NE(firstResource, fetched); 438 EXPECT_NE(firstResource, fetched);
435 } 439 }
436 440
437 TEST_F(CachingCorrectnessTest, PostToSameURLTwice) 441 TEST_F(CachingCorrectnessTest, PostToSameURLTwice)
438 { 442 {
439 ResourceRequest request1(KURL(ParsedURLString, kResourceURL)); 443 ResourceRequest request1(KURL(ParsedURLString, kResourceURL));
440 request1.setHTTPMethod(HTTPNames::POST); 444 request1.setHTTPMethod(HTTPNames::POST);
441 RefPtrWillBeRawPtr<Resource> resource1 = Resource::create(ResourceRequest(re quest1.url()), Resource::Raw); 445 RefPtrWillBeRawPtr<Resource> resource1 = Resource::create(ResourceRequest(re quest1.url()), Resource::Raw);
442 resource1->setLoading(true); 446 resource1->setStatus(Resource::Pending);
443 memoryCache()->add(resource1.get()); 447 memoryCache()->add(resource1.get());
444 448
445 ResourceRequest request2(KURL(ParsedURLString, kResourceURL)); 449 ResourceRequest request2(KURL(ParsedURLString, kResourceURL));
446 request2.setHTTPMethod(HTTPNames::POST); 450 request2.setHTTPMethod(HTTPNames::POST);
447 FetchRequest fetch2(request2, FetchInitiatorInfo()); 451 FetchRequest fetch2(request2, FetchInitiatorInfo());
448 RefPtrWillBeRawPtr<Resource> resource2 = RawResource::fetchSynchronously(fet ch2, fetcher()); 452 RefPtrWillBeRawPtr<Resource> resource2 = RawResource::fetchSynchronously(fet ch2, fetcher());
449 453
450 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url())); 454 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url()));
451 EXPECT_NE(resource1, resource2); 455 EXPECT_NE(resource1, resource2);
452 } 456 }
(...skipping 18 matching lines...) Expand all
471 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 475 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
472 476
473 // Add the final response to our request. 477 // Add the final response to our request.
474 ResourceResponse fresh200Response; 478 ResourceResponse fresh200Response;
475 fresh200Response.setURL(redirectTargetUrl); 479 fresh200Response.setURL(redirectTargetUrl);
476 fresh200Response.setHTTPStatusCode(200); 480 fresh200Response.setHTTPStatusCode(200);
477 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 481 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
478 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 482 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
479 483
480 firstResource->setResponse(fresh200Response); 484 firstResource->setResponse(fresh200Response);
485 firstResource->finish();
481 memoryCache()->add(firstResource.get()); 486 memoryCache()->add(firstResource.get());
482 487
483 advanceClock(500.); 488 advanceClock(500.);
484 489
485 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 490 RefPtrWillBeRawPtr<Resource> fetched = fetch();
486 EXPECT_NE(firstResource, fetched); 491 EXPECT_NE(firstResource, fetched);
487 } 492 }
488 493
489 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshMaxAge) 494 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshMaxAge)
490 { 495 {
(...skipping 15 matching lines...) Expand all
506 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 511 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
507 512
508 // Add the final response to our request. 513 // Add the final response to our request.
509 ResourceResponse fresh200Response; 514 ResourceResponse fresh200Response;
510 fresh200Response.setURL(redirectTargetUrl); 515 fresh200Response.setURL(redirectTargetUrl);
511 fresh200Response.setHTTPStatusCode(200); 516 fresh200Response.setHTTPStatusCode(200);
512 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 517 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
513 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 518 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
514 519
515 firstResource->setResponse(fresh200Response); 520 firstResource->setResponse(fresh200Response);
521 firstResource->finish();
516 memoryCache()->add(firstResource.get()); 522 memoryCache()->add(firstResource.get());
517 523
518 advanceClock(500.); 524 advanceClock(500.);
519 525
520 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 526 RefPtrWillBeRawPtr<Resource> fetched = fetch();
521 EXPECT_EQ(firstResource, fetched); 527 EXPECT_EQ(firstResource, fetched);
522 } 528 }
523 529
524 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshExpires) 530 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshExpires)
525 { 531 {
(...skipping 15 matching lines...) Expand all
541 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 547 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
542 548
543 // Add the final response to our request. 549 // Add the final response to our request.
544 ResourceResponse fresh200Response; 550 ResourceResponse fresh200Response;
545 fresh200Response.setURL(redirectTargetUrl); 551 fresh200Response.setURL(redirectTargetUrl);
546 fresh200Response.setHTTPStatusCode(200); 552 fresh200Response.setHTTPStatusCode(200);
547 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 553 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
548 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 554 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
549 555
550 firstResource->setResponse(fresh200Response); 556 firstResource->setResponse(fresh200Response);
557 firstResource->finish();
551 memoryCache()->add(firstResource.get()); 558 memoryCache()->add(firstResource.get());
552 559
553 advanceClock(500.); 560 advanceClock(500.);
554 561
555 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 562 RefPtrWillBeRawPtr<Resource> fetched = fetch();
556 EXPECT_EQ(firstResource, fetched); 563 EXPECT_EQ(firstResource, fetched);
557 } 564 }
558 565
559 } // namespace blink 566 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698