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 |