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