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