Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(355)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/cachestorage/script-tests/cache-keys.js

Issue 2790143003: Cache Storage API tests: Fix WPT test bugs, remove redundant local copies (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698