OLD | NEW |
| (Empty) |
1 if (self.importScripts) { | |
2 importScripts('/resources/testharness.js'); | |
3 importScripts('../resources/test-helpers.js'); | |
4 } | |
5 | |
6 cache_test(cache => { | |
7 return cache.keys() | |
8 .then(requests => { | |
9 assert_equals( | |
10 requests.length, 0, | |
11 'Cache.keys should resolve to an empty array for an empty cache'); | |
12 }); | |
13 }, 'Cache.keys() called on an empty cache'); | |
14 | |
15 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
16 return cache.keys('not-present-in-the-cache') | |
17 .then(function(result) { | |
18 assert_request_array_equals( | |
19 result, [], | |
20 'Cache.keys should resolve with an empty array on failure.'); | |
21 }); | |
22 }, 'Cache.keys with no matching entries'); | |
23 | |
24 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
25 return cache.keys(entries.a.request.url) | |
26 .then(function(result) { | |
27 assert_request_array_equals(result, [entries.a.request], | |
28 'Cache.keys should match by URL.'); | |
29 }); | |
30 }, 'Cache.keys with URL'); | |
31 | |
32 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
33 return cache.keys(entries.a.request) | |
34 .then(function(result) { | |
35 assert_request_array_equals( | |
36 result, [entries.a.request], | |
37 'Cache.keys should match by Request.'); | |
38 }); | |
39 }, 'Cache.keys with Request'); | |
40 | |
41 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
42 return cache.keys(new Request(entries.a.request.url)) | |
43 .then(function(result) { | |
44 assert_request_array_equals( | |
45 result, [entries.a.request], | |
46 'Cache.keys should match by Request.'); | |
47 }); | |
48 }, 'Cache.keys with new Request'); | |
49 | |
50 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
51 return cache.keys(entries.a.request, {ignoreSearch: true}) | |
52 .then(function(result) { | |
53 assert_request_array_equals( | |
54 result, | |
55 [ | |
56 entries.a.request, | |
57 entries.a_with_query.request | |
58 ], | |
59 'Cache.keys with ignoreSearch should ignore the ' + | |
60 'search parameters of cached request.'); | |
61 }); | |
62 }, | |
63 'Cache.keys with ignoreSearch option (request with no search ' + | |
64 'parameters)'); | |
65 | |
66 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
67 return cache.keys(entries.a_with_query.request, {ignoreSearch: true}) | |
68 .then(function(result) { | |
69 assert_request_array_equals( | |
70 result, | |
71 [ | |
72 entries.a.request, | |
73 entries.a_with_query.request | |
74 ], | |
75 'Cache.keys with ignoreSearch should ignore the ' + | |
76 'search parameters of request.'); | |
77 }); | |
78 }, | |
79 'Cache.keys with ignoreSearch option (request with search parameters)'); | |
80 | |
81 cache_test(function(cache) { | |
82 var request = new Request('http://example.com/'); | |
83 var head_request = new Request('http://example.com/', {method: 'HEAD'}); | |
84 var response = new Response('foo'); | |
85 return cache.put(request.clone(), response.clone()) | |
86 .then(function() { | |
87 return cache.keys(head_request.clone()); | |
88 }) | |
89 .then(function(result) { | |
90 assert_request_array_equals( | |
91 result, [], | |
92 'Cache.keys should resolve with an empty array with a ' + | |
93 'mismatched method.'); | |
94 return cache.keys(head_request.clone(), | |
95 {ignoreMethod: true}); | |
96 }) | |
97 .then(function(result) { | |
98 assert_request_array_equals( | |
99 result, | |
100 [ | |
101 request, | |
102 ], | |
103 'Cache.keys with ignoreMethod should ignore the ' + | |
104 'method of request.'); | |
105 }); | |
106 }, 'Cache.keys supports ignoreMethod'); | |
107 | |
108 cache_test(function(cache) { | |
109 var vary_request = new Request('http://example.com/c', | |
110 {headers: {'Cookies': 'is-for-cookie'}}); | |
111 var vary_response = new Response('', {headers: {'Vary': 'Cookies'}}); | |
112 var mismatched_vary_request = new Request('http://example.com/c'); | |
113 | |
114 return cache.put(vary_request.clone(), vary_response.clone()) | |
115 .then(function() { | |
116 return cache.keys(mismatched_vary_request.clone()); | |
117 }) | |
118 .then(function(result) { | |
119 assert_request_array_equals( | |
120 result, [], | |
121 'Cache.keys should resolve with an empty array with a ' + | |
122 'mismatched vary.'); | |
123 return cache.keys(mismatched_vary_request.clone(), | |
124 {ignoreVary: true}); | |
125 }) | |
126 .then(function(result) { | |
127 assert_request_array_equals( | |
128 result, | |
129 [ | |
130 vary_request, | |
131 ], | |
132 'Cache.keys with ignoreVary should ignore the ' + | |
133 'vary of request.'); | |
134 }); | |
135 }, 'Cache.keys supports ignoreVary'); | |
136 | |
137 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
138 return cache.keys(entries.cat.request.url + '#mouse') | |
139 .then(function(result) { | |
140 assert_request_array_equals( | |
141 result, | |
142 [ | |
143 entries.cat.request, | |
144 ], | |
145 'Cache.keys should ignore URL fragment.'); | |
146 }); | |
147 }, 'Cache.keys with URL containing fragment'); | |
148 | |
149 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
150 return cache.keys('http') | |
151 .then(function(result) { | |
152 assert_request_array_equals( | |
153 result, [], | |
154 'Cache.keys should treat query as a URL and not ' + | |
155 'just a string fragment.'); | |
156 }); | |
157 }, 'Cache.keys with string fragment "http" as query'); | |
158 | |
159 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
160 return cache.keys() | |
161 .then(function(result) { | |
162 assert_request_array_equals( | |
163 result, | |
164 [ | |
165 entries.a.request, | |
166 entries.b.request, | |
167 entries.a_with_query.request, | |
168 entries.A.request, | |
169 entries.a_https.request, | |
170 entries.a_org.request, | |
171 entries.cat.request, | |
172 entries.catmandu.request, | |
173 entries.cat_num_lives.request, | |
174 entries.cat_in_the_hat.request, | |
175 entries.non_2xx_response.request, | |
176 entries.error_response.request | |
177 ], | |
178 'Cache.keys without parameters should match all entries.'); | |
179 }); | |
180 }, 'Cache.keys without parameters'); | |
181 | |
182 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
183 return cache.keys(new Request(entries.cat.request.url, {method: 'HEAD'})) | |
184 .then(function(result) { | |
185 assert_request_array_equals( | |
186 result, [], | |
187 'Cache.keys should not match HEAD request unless ignoreMethod ' + | |
188 'option is set.'); | |
189 }); | |
190 }, 'Cache.keys with a HEAD Request'); | |
191 | |
192 done(); | |
OLD | NEW |