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

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: Rebase 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->finish();
95 // Because we didn't give any real data, an image will have set its
96 // status to DecodeError. Override it so the resource is cacaheable
97 // for testing purposes.
98 if (type == Resource::Image)
99 resource->setStatus(Resource::Cached);
94 memoryCache()->add(resource.get()); 100 memoryCache()->add(resource.get());
95 101
96 return resource; 102 return resource;
97 } 103 }
98 104
99 PassRefPtrWillBeRawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw) 105 PassRefPtrWillBeRawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw)
100 { 106 {
101 if (request.url().isNull()) 107 if (request.url().isNull())
102 request.setURL(KURL(ParsedURLString, kResourceURL)); 108 request.setURL(KURL(ParsedURLString, kResourceURL));
103 RefPtrWillBeRawPtr<Resource> resource = 109 RefPtrWillBeRawPtr<Resource> resource =
104 Resource::create(request, type); 110 Resource::create(request, type);
105 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR L), "text/html", 0, nullAtom, String())); 111 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR L), "text/html", 0, nullAtom, String()));
112 resource->finish();
106 memoryCache()->add(resource.get()); 113 memoryCache()->add(resource.get());
107 114
108 return resource; 115 return resource;
109 } 116 }
110 117
111 PassRefPtrWillBeRawPtr<Resource> fetch() 118 PassRefPtrWillBeRawPtr<Resource> fetch()
112 { 119 {
113 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo()); 120 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo());
114 return RawResource::fetchSynchronously(fetchRequest, fetcher()); 121 return RawResource::fetchSynchronously(fetchRequest, fetcher());
115 } 122 }
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 firstResource->willFollowRedirect(redirectRequest, fresh301Response); 392 firstResource->willFollowRedirect(redirectRequest, fresh301Response);
386 393
387 // Add the final response to our request. 394 // Add the final response to our request.
388 ResourceResponse fresh200Response; 395 ResourceResponse fresh200Response;
389 fresh200Response.setURL(redirectTargetUrl); 396 fresh200Response.setURL(redirectTargetUrl);
390 fresh200Response.setHTTPStatusCode(200); 397 fresh200Response.setHTTPStatusCode(200);
391 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 398 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
392 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 399 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
393 400
394 firstResource->setResponse(fresh200Response); 401 firstResource->setResponse(fresh200Response);
402 firstResource->finish();
395 memoryCache()->add(firstResource.get()); 403 memoryCache()->add(firstResource.get());
396 404
397 advanceClock(500.); 405 advanceClock(500.);
398 406
399 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 407 RefPtrWillBeRawPtr<Resource> fetched = fetch();
400 EXPECT_EQ(firstResource, fetched); 408 EXPECT_EQ(firstResource, fetched);
401 } 409 }
402 410
403 TEST_F(CachingCorrectnessTest, FreshWithStaleRedirect) 411 TEST_F(CachingCorrectnessTest, FreshWithStaleRedirect)
404 { 412 {
(...skipping 14 matching lines...) Expand all
419 firstResource->willFollowRedirect(redirectRequest, stale301Response); 427 firstResource->willFollowRedirect(redirectRequest, stale301Response);
420 428
421 // Add the final response to our request. 429 // Add the final response to our request.
422 ResourceResponse fresh200Response; 430 ResourceResponse fresh200Response;
423 fresh200Response.setURL(redirectTargetUrl); 431 fresh200Response.setURL(redirectTargetUrl);
424 fresh200Response.setHTTPStatusCode(200); 432 fresh200Response.setHTTPStatusCode(200);
425 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 433 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
426 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 434 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
427 435
428 firstResource->setResponse(fresh200Response); 436 firstResource->setResponse(fresh200Response);
437 firstResource->finish();
429 memoryCache()->add(firstResource.get()); 438 memoryCache()->add(firstResource.get());
430 439
431 advanceClock(500.); 440 advanceClock(500.);
432 441
433 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 442 RefPtrWillBeRawPtr<Resource> fetched = fetch();
434 EXPECT_NE(firstResource, fetched); 443 EXPECT_NE(firstResource, fetched);
435 } 444 }
436 445
437 TEST_F(CachingCorrectnessTest, PostToSameURLTwice) 446 TEST_F(CachingCorrectnessTest, PostToSameURLTwice)
438 { 447 {
439 ResourceRequest request1(KURL(ParsedURLString, kResourceURL)); 448 ResourceRequest request1(KURL(ParsedURLString, kResourceURL));
440 request1.setHTTPMethod(HTTPNames::POST); 449 request1.setHTTPMethod(HTTPNames::POST);
441 RefPtrWillBeRawPtr<Resource> resource1 = Resource::create(ResourceRequest(re quest1.url()), Resource::Raw); 450 RefPtrWillBeRawPtr<Resource> resource1 = Resource::create(ResourceRequest(re quest1.url()), Resource::Raw);
442 resource1->setLoading(true); 451 resource1->setStatus(Resource::Pending);
443 memoryCache()->add(resource1.get()); 452 memoryCache()->add(resource1.get());
444 453
445 ResourceRequest request2(KURL(ParsedURLString, kResourceURL)); 454 ResourceRequest request2(KURL(ParsedURLString, kResourceURL));
446 request2.setHTTPMethod(HTTPNames::POST); 455 request2.setHTTPMethod(HTTPNames::POST);
447 FetchRequest fetch2(request2, FetchInitiatorInfo()); 456 FetchRequest fetch2(request2, FetchInitiatorInfo());
448 RefPtrWillBeRawPtr<Resource> resource2 = RawResource::fetchSynchronously(fet ch2, fetcher()); 457 RefPtrWillBeRawPtr<Resource> resource2 = RawResource::fetchSynchronously(fet ch2, fetcher());
449 458
450 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url())); 459 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url()));
451 EXPECT_NE(resource1, resource2); 460 EXPECT_NE(resource1, resource2);
452 } 461 }
(...skipping 18 matching lines...) Expand all
471 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 480 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
472 481
473 // Add the final response to our request. 482 // Add the final response to our request.
474 ResourceResponse fresh200Response; 483 ResourceResponse fresh200Response;
475 fresh200Response.setURL(redirectTargetUrl); 484 fresh200Response.setURL(redirectTargetUrl);
476 fresh200Response.setHTTPStatusCode(200); 485 fresh200Response.setHTTPStatusCode(200);
477 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 486 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
478 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 487 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
479 488
480 firstResource->setResponse(fresh200Response); 489 firstResource->setResponse(fresh200Response);
490 firstResource->finish();
481 memoryCache()->add(firstResource.get()); 491 memoryCache()->add(firstResource.get());
482 492
483 advanceClock(500.); 493 advanceClock(500.);
484 494
485 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 495 RefPtrWillBeRawPtr<Resource> fetched = fetch();
486 EXPECT_NE(firstResource, fetched); 496 EXPECT_NE(firstResource, fetched);
487 } 497 }
488 498
489 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshMaxAge) 499 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshMaxAge)
490 { 500 {
(...skipping 15 matching lines...) Expand all
506 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 516 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
507 517
508 // Add the final response to our request. 518 // Add the final response to our request.
509 ResourceResponse fresh200Response; 519 ResourceResponse fresh200Response;
510 fresh200Response.setURL(redirectTargetUrl); 520 fresh200Response.setURL(redirectTargetUrl);
511 fresh200Response.setHTTPStatusCode(200); 521 fresh200Response.setHTTPStatusCode(200);
512 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 522 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
513 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 523 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
514 524
515 firstResource->setResponse(fresh200Response); 525 firstResource->setResponse(fresh200Response);
526 firstResource->finish();
516 memoryCache()->add(firstResource.get()); 527 memoryCache()->add(firstResource.get());
517 528
518 advanceClock(500.); 529 advanceClock(500.);
519 530
520 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 531 RefPtrWillBeRawPtr<Resource> fetched = fetch();
521 EXPECT_EQ(firstResource, fetched); 532 EXPECT_EQ(firstResource, fetched);
522 } 533 }
523 534
524 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshExpires) 535 TEST_F(CachingCorrectnessTest, 302RedirectExplicitlyFreshExpires)
525 { 536 {
(...skipping 15 matching lines...) Expand all
541 firstResource->willFollowRedirect(redirectRequest, fresh302Response); 552 firstResource->willFollowRedirect(redirectRequest, fresh302Response);
542 553
543 // Add the final response to our request. 554 // Add the final response to our request.
544 ResourceResponse fresh200Response; 555 ResourceResponse fresh200Response;
545 fresh200Response.setURL(redirectTargetUrl); 556 fresh200Response.setURL(redirectTargetUrl);
546 fresh200Response.setHTTPStatusCode(200); 557 fresh200Response.setHTTPStatusCode(200);
547 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring); 558 fresh200Response.setHTTPHeaderField(HTTPNames::Date, kOriginalRequestDateAsS tring);
548 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request); 559 fresh200Response.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginal Request);
549 560
550 firstResource->setResponse(fresh200Response); 561 firstResource->setResponse(fresh200Response);
562 firstResource->finish();
551 memoryCache()->add(firstResource.get()); 563 memoryCache()->add(firstResource.get());
552 564
553 advanceClock(500.); 565 advanceClock(500.);
554 566
555 RefPtrWillBeRawPtr<Resource> fetched = fetch(); 567 RefPtrWillBeRawPtr<Resource> fetched = fetch();
556 EXPECT_EQ(firstResource, fetched); 568 EXPECT_EQ(firstResource, fetched);
557 } 569 }
558 570
559 } // namespace blink 571 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698