[Cache API] Add support for overwriting responses with put on an existing record
[WebKit-https.git] / LayoutTests / http / wpt / cache-storage / cache-put-keys.https.any.js
1 // META: script=/service-workers/cache-storage/resources/test-helpers.js
2
3 var test_url = 'https://example.com/foo';
4 var test_body = 'Hello world!';
5
6 cache_test(function(cache) {
7     var cache_keys;
8     var alternate_response_body = 'New body';
9     var alternate_response = new Response(alternate_response_body, { statusText: 'New status' });
10     return cache.put(new Request(test_url), new Response('Old body', { statusText: 'Old status' })).then(function() {
11         return cache.keys();
12     }).then(function(keys) {
13         cache_keys = keys;
14     }).then(function() {
15         return cache.put(new Request(test_url), alternate_response);
16     }).then(function() {
17         return cache.keys();
18     }).then(function(keys) {
19         assert_request_array_equals(keys, cache_keys);
20     }).then(function() {
21         return cache.match(test_url);
22     }).then(function(result) {
23         assert_response_equals(result, alternate_response, 'Cache.put should replace existing ' + 'response with new response.');
24         return result.text();
25     }).then(function(body) {
26         assert_equals(body, alternate_response_body, 'Cache put should store new response body.');
27     });
28 }, 'Cache.put called twice with matching Requests - keys should remain the same');
29
30 done();