Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-delete.js |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-delete.js b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-delete.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..75a474c2b2c9101f15ea32c6a1e92a5d4da7befc |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-delete.js |
@@ -0,0 +1,96 @@ |
+if (self.importScripts) { |
+ importScripts('/resources/testharness.js'); |
+ importScripts('../resources/testharness-helpers.js'); |
+ importScripts('../resources/test-helpers.js'); |
+} |
+ |
+var test_url = 'https://example.com/foo'; |
+ |
+// Construct a generic Request object. The URL is |test_url|. All other fields |
+// are defaults. |
+function new_test_request() { |
+ return new Request(test_url); |
+} |
+ |
+// Construct a generic Response object. |
+function new_test_response() { |
+ return new Response('Hello world!', { status: 200 }); |
+} |
+ |
+cache_test(function(cache) { |
+ return assert_promise_rejects( |
+ cache.delete(), |
+ new TypeError(), |
+ 'Cache.delete should reject with a TypeError when called with no ' + |
+ 'arguments.'); |
+ }, 'Cache.delete with no arguments'); |
+ |
+cache_test(function(cache) { |
+ return cache.put(new_test_request(), new_test_response()) |
+ .then(function() { |
+ return cache.delete(test_url); |
+ }) |
+ .then(function(result) { |
+ assert_true(result, |
+ 'Cache.delete should resolve with "true" if an entry ' + |
+ 'was successfully deleted.'); |
+ return cache.match(test_url); |
+ }) |
+ .then(function(result) { |
+ assert_equals(result, undefined, |
+ 'Cache.delete should remove matching entries from cache.'); |
+ }); |
+ }, 'Cache.delete called with a string URL'); |
+ |
+cache_test(function(cache) { |
+ var request = new Request(test_url); |
+ return cache.put(request, new_test_response()) |
+ .then(function() { |
+ return cache.delete(request); |
+ }) |
+ .then(function(result) { |
+ assert_true(result, |
+ 'Cache.delete should resolve with "true" if an entry ' + |
+ 'was successfully deleted.'); |
+ }); |
+ }, 'Cache.delete called with a Request object'); |
+ |
+cache_test(function(cache) { |
+ return cache.delete(test_url) |
+ .then(function(result) { |
+ assert_false(result, |
+ 'Cache.delete should resolve with "false" if there ' + |
+ 'are no matching entries.'); |
+ }); |
+ }, 'Cache.delete with a non-existent entry'); |
+ |
+var cache_entries = { |
+ a: { |
+ request: new Request('http://example.com/abc'), |
+ response: new Response('') |
+ }, |
+ |
+ b: { |
+ request: new Request('http://example.com/b'), |
+ response: new Response('') |
+ }, |
+ |
+ a_with_query: { |
+ request: new Request('http://example.com/abc?q=r'), |
+ response: new Response('') |
+ } |
+}; |
+ |
+function prepopulated_cache_test(test_function, description) { |
+ cache_test(function(cache) { |
+ return Promise.all(Object.keys(cache_entries).map(function(k) { |
+ return cache.put(cache_entries[k].request.clone(), |
+ cache_entries[k].response.clone()); |
+ })) |
+ .then(function() { |
+ return test_function(cache); |
+ }); |
+ }, description); |
+} |
+ |
+done(); |