| 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 21 matching lines...) Expand all Loading... |
| 32 | 32 |
| 33 #include "core/fetch/ImageResource.h" | 33 #include "core/fetch/ImageResource.h" |
| 34 #include "core/fetch/MemoryCache.h" | 34 #include "core/fetch/MemoryCache.h" |
| 35 #include "core/fetch/Resource.h" | 35 #include "core/fetch/Resource.h" |
| 36 #include "core/fetch/ResourceFetcher.h" | 36 #include "core/fetch/ResourceFetcher.h" |
| 37 #include "core/fetch/ResourcePtr.h" | 37 #include "core/fetch/ResourcePtr.h" |
| 38 #include "core/html/HTMLDocument.h" | 38 #include "core/html/HTMLDocument.h" |
| 39 #include "core/loader/DocumentLoader.h" | 39 #include "core/loader/DocumentLoader.h" |
| 40 #include "platform/network/ResourceRequest.h" | 40 #include "platform/network/ResourceRequest.h" |
| 41 #include "public/platform/Platform.h" | 41 #include "public/platform/Platform.h" |
| 42 #include "public/platform/WebURLRequest.h" |
| 42 #include "wtf/OwnPtr.h" | 43 #include "wtf/OwnPtr.h" |
| 43 #include "wtf/RefPtr.h" | 44 #include "wtf/RefPtr.h" |
| 44 | 45 |
| 45 #include <gtest/gtest.h> | 46 #include <gtest/gtest.h> |
| 46 | 47 |
| 47 using namespace blink; | 48 using namespace blink; |
| 48 | 49 |
| 49 namespace { | 50 namespace { |
| 50 | 51 |
| 51 // An URL for the original request. | 52 // An URL for the original request. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 66 { | 67 { |
| 67 m_proxyPlatform.advanceClock(seconds); | 68 m_proxyPlatform.advanceClock(seconds); |
| 68 } | 69 } |
| 69 | 70 |
| 70 ResourcePtr<Resource> resourceFromResourceResponse(ResourceResponse response
, Resource::Type type = Resource::Raw) | 71 ResourcePtr<Resource> resourceFromResourceResponse(ResourceResponse response
, Resource::Type type = Resource::Raw) |
| 71 { | 72 { |
| 72 if (response.url().isNull()) | 73 if (response.url().isNull()) |
| 73 response.setURL(KURL(ParsedURLString, kResourceURL)); | 74 response.setURL(KURL(ParsedURLString, kResourceURL)); |
| 74 ResourcePtr<Resource> resource = | 75 ResourcePtr<Resource> resource = |
| 75 new Resource(ResourceRequest(response.url()), type); | 76 new Resource(ResourceRequest(response.url()), type); |
| 77 resource->resourceRequest().setRequestContext(blink::WebURLRequest::Requ
estContextInternal); |
| 76 resource->setResponse(response); | 78 resource->setResponse(response); |
| 77 memoryCache()->add(resource.get()); | 79 memoryCache()->add(resource.get()); |
| 78 | 80 |
| 79 return resource; | 81 return resource; |
| 80 } | 82 } |
| 81 | 83 |
| 82 ResourcePtr<Resource> resourceFromResourceRequest(ResourceRequest request, R
esource::Type type = Resource::Raw) | 84 ResourcePtr<Resource> resourceFromResourceRequest(ResourceRequest request, R
esource::Type type = Resource::Raw) |
| 83 { | 85 { |
| 84 if (request.url().isNull()) | 86 if (request.url().isNull()) |
| 85 request.setURL(KURL(ParsedURLString, kResourceURL)); | 87 request.setURL(KURL(ParsedURLString, kResourceURL)); |
| 86 ResourcePtr<Resource> resource = | 88 ResourcePtr<Resource> resource = |
| 87 new Resource(request, type); | 89 new Resource(request, type); |
| 90 request.setRequestContext(blink::WebURLRequest::RequestContextInternal); |
| 88 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR
L), "text/html", 0, nullAtom, String())); | 91 resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceUR
L), "text/html", 0, nullAtom, String())); |
| 89 memoryCache()->add(resource.get()); | 92 memoryCache()->add(resource.get()); |
| 90 | 93 |
| 91 return resource; | 94 return resource; |
| 92 } | 95 } |
| 93 | 96 |
| 94 ResourcePtr<Resource> fetch() | 97 ResourcePtr<Resource> fetch() |
| 95 { | 98 { |
| 96 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc
eURL)), FetchInitiatorInfo()); | 99 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc
eURL)), FetchInitiatorInfo()); |
| 100 fetchRequest.mutableResourceRequest().setRequestContext(blink::WebURLReq
uest::RequestContextFetch); |
| 97 return m_fetcher->fetchSynchronously(fetchRequest); | 101 return m_fetcher->fetchSynchronously(fetchRequest); |
| 98 } | 102 } |
| 99 | 103 |
| 100 ResourcePtr<Resource> fetchImage() | 104 ResourcePtr<Resource> fetchImage() |
| 101 { | 105 { |
| 102 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc
eURL)), FetchInitiatorInfo()); | 106 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc
eURL)), FetchInitiatorInfo()); |
| 107 fetchRequest.mutableResourceRequest().setRequestContext(blink::WebURLReq
uest::RequestContextImage); |
| 103 return m_fetcher->fetchImage(fetchRequest); | 108 return m_fetcher->fetchImage(fetchRequest); |
| 104 } | 109 } |
| 105 | 110 |
| 106 ResourceFetcher* fetcher() const { return m_fetcher.get(); } | 111 ResourceFetcher* fetcher() const { return m_fetcher.get(); } |
| 107 | 112 |
| 108 private: | 113 private: |
| 109 // A simple platform that mocks out the clock, for cache freshness testing. | 114 // A simple platform that mocks out the clock, for cache freshness testing. |
| 110 class ProxyPlatform : public blink::Platform { | 115 class ProxyPlatform : public blink::Platform { |
| 111 public: | 116 public: |
| 112 ProxyPlatform() : m_elapsedSeconds(0.) { } | 117 ProxyPlatform() : m_elapsedSeconds(0.) { } |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 | 456 |
| 452 advanceClock(500.); | 457 advanceClock(500.); |
| 453 | 458 |
| 454 ResourcePtr<Resource> fetched = fetch(); | 459 ResourcePtr<Resource> fetched = fetch(); |
| 455 EXPECT_NE(firstResource, fetched); | 460 EXPECT_NE(firstResource, fetched); |
| 456 } | 461 } |
| 457 | 462 |
| 458 TEST_F(CachingCorrectnessTest, PostToSameURLTwice) | 463 TEST_F(CachingCorrectnessTest, PostToSameURLTwice) |
| 459 { | 464 { |
| 460 ResourceRequest request1(KURL(ParsedURLString, kResourceURL)); | 465 ResourceRequest request1(KURL(ParsedURLString, kResourceURL)); |
| 466 request1.setRequestContext(blink::WebURLRequest::RequestContextInternal); |
| 461 request1.setHTTPMethod("POST"); | 467 request1.setHTTPMethod("POST"); |
| 462 ResourcePtr<Resource> resource1 = new Resource(ResourceRequest(request1.url(
)), Resource::Raw); | 468 ResourcePtr<Resource> resource1 = new Resource(ResourceRequest(request1.url(
)), Resource::Raw); |
| 463 resource1->setLoading(true); | 469 resource1->setLoading(true); |
| 464 memoryCache()->add(resource1.get()); | 470 memoryCache()->add(resource1.get()); |
| 465 | 471 |
| 466 ResourceRequest request2(KURL(ParsedURLString, kResourceURL)); | 472 ResourceRequest request2(KURL(ParsedURLString, kResourceURL)); |
| 473 request2.setRequestContext(blink::WebURLRequest::RequestContextInternal); |
| 467 request2.setHTTPMethod("POST"); | 474 request2.setHTTPMethod("POST"); |
| 468 FetchRequest fetch2(request2, FetchInitiatorInfo()); | 475 FetchRequest fetch2(request2, FetchInitiatorInfo()); |
| 469 ResourcePtr<Resource> resource2 = fetcher()->fetchSynchronously(fetch2); | 476 ResourcePtr<Resource> resource2 = fetcher()->fetchSynchronously(fetch2); |
| 470 | 477 |
| 471 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url())); | 478 EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url())); |
| 472 EXPECT_NE(resource1, resource2); | 479 EXPECT_NE(resource1, resource2); |
| 473 } | 480 } |
| 474 | 481 |
| 475 TEST_F(CachingCorrectnessTest, 302RedirectNotImplicitlyFresh) | 482 TEST_F(CachingCorrectnessTest, 302RedirectNotImplicitlyFresh) |
| 476 { | 483 { |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 firstResource->setResponse(fresh200Response); | 578 firstResource->setResponse(fresh200Response); |
| 572 memoryCache()->add(firstResource.get()); | 579 memoryCache()->add(firstResource.get()); |
| 573 | 580 |
| 574 advanceClock(500.); | 581 advanceClock(500.); |
| 575 | 582 |
| 576 ResourcePtr<Resource> fetched = fetch(); | 583 ResourcePtr<Resource> fetched = fetch(); |
| 577 EXPECT_EQ(firstResource, fetched); | 584 EXPECT_EQ(firstResource, fetched); |
| 578 } | 585 } |
| 579 | 586 |
| 580 } // namespace | 587 } // namespace |
| OLD | NEW |