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 |