| 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 |