1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.hc.client5.http.impl.cache;
28
29 import org.apache.hc.core5.http.message.BasicHttpRequest;
30 import org.junit.jupiter.api.Assertions;
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Test;
33
34 public class TestCacheableRequestPolicy {
35
36 private CacheableRequestPolicy policy;
37
38 @BeforeEach
39 public void setUp() throws Exception {
40 policy = new CacheableRequestPolicy();
41 }
42
43 @Test
44 public void testIsGetServableFromCache() {
45 final BasicHttpRequest request = new BasicHttpRequest("GET", "someUri");
46
47 Assertions.assertTrue(policy.isServableFromCache(request));
48 }
49
50 @Test
51 public void testIsGetWithCacheControlServableFromCache() {
52 BasicHttpRequest request = new BasicHttpRequest("GET", "someUri");
53 request.addHeader("Cache-Control", "no-cache");
54
55 Assertions.assertFalse(policy.isServableFromCache(request));
56
57 request = new BasicHttpRequest("GET", "someUri");
58 request.addHeader("Cache-Control", "no-store");
59 request.addHeader("Cache-Control", "max-age=20");
60
61 Assertions.assertFalse(policy.isServableFromCache(request));
62
63 request = new BasicHttpRequest("GET", "someUri");
64 request.addHeader("Cache-Control", "public");
65 request.addHeader("Cache-Control", "no-store, max-age=20");
66
67 Assertions.assertFalse(policy.isServableFromCache(request));
68 }
69
70 @Test
71 public void testIsGetWithPragmaServableFromCache() {
72 BasicHttpRequest request = new BasicHttpRequest("GET", "someUri");
73 request.addHeader("Pragma", "no-cache");
74
75 Assertions.assertFalse(policy.isServableFromCache(request));
76
77 request = new BasicHttpRequest("GET", "someUri");
78 request.addHeader("Pragma", "value1");
79 request.addHeader("Pragma", "value2");
80
81 Assertions.assertFalse(policy.isServableFromCache(request));
82 }
83
84 @Test
85 public void testIsHeadServableFromCache() {
86 BasicHttpRequest request = new BasicHttpRequest("HEAD", "someUri");
87
88 Assertions.assertTrue(policy.isServableFromCache(request));
89
90 request = new BasicHttpRequest("HEAD", "someUri");
91 request.addHeader("Cache-Control", "public");
92 request.addHeader("Cache-Control", "max-age=20");
93
94 Assertions.assertTrue(policy.isServableFromCache(request));
95 }
96
97 @Test
98 public void testIsHeadWithCacheControlServableFromCache() {
99 BasicHttpRequest request = new BasicHttpRequest("HEAD", "someUri");
100 request.addHeader("Cache-Control", "no-cache");
101
102 Assertions.assertFalse(policy.isServableFromCache(request));
103
104 request = new BasicHttpRequest("HEAD", "someUri");
105 request.addHeader("Cache-Control", "no-store");
106 request.addHeader("Cache-Control", "max-age=20");
107
108 Assertions.assertFalse(policy.isServableFromCache(request));
109
110 request = new BasicHttpRequest("HEAD", "someUri");
111 request.addHeader("Cache-Control", "public");
112 request.addHeader("Cache-Control", "no-store, max-age=20");
113
114 Assertions.assertFalse(policy.isServableFromCache(request));
115 }
116
117 @Test
118 public void testIsHeadWithPragmaServableFromCache() {
119 BasicHttpRequest request = new BasicHttpRequest("HEAD", "someUri");
120 request.addHeader("Pragma", "no-cache");
121
122 Assertions.assertFalse(policy.isServableFromCache(request));
123
124 request = new BasicHttpRequest("HEAD", "someUri");
125 request.addHeader("Pragma", "value1");
126 request.addHeader("Pragma", "value2");
127
128 Assertions.assertFalse(policy.isServableFromCache(request));
129 }
130
131 @Test
132 public void testIsArbitraryMethodServableFromCache() {
133 BasicHttpRequest request = new BasicHttpRequest("TRACE", "someUri");
134
135 Assertions.assertFalse(policy.isServableFromCache(request));
136
137 request = new BasicHttpRequest("get", "someUri");
138
139 Assertions.assertFalse(policy.isServableFromCache(request));
140
141 }
142
143 }