| Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-storage-match.js
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-storage-match.js b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-storage-match.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0052e43ca30b30844cda8c6f2db96c5b50e886d7
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/script-tests/cache-storage-match.js
|
| @@ -0,0 +1,124 @@
|
| +if (self.importScripts) {
|
| + importScripts('/resources/testharness.js');
|
| + importScripts('../resources/testharness-helpers.js');
|
| + importScripts('../resources/test-helpers.js');
|
| +}
|
| +
|
| +(function() {
|
| + var next_index = 1;
|
| +
|
| + // Returns a transaction (request, response, and url) for a unique URL.
|
| + function create_unique_transaction(test) {
|
| + var uniquifier = String(next_index++);
|
| + var url = 'http://example.com/' + uniquifier;
|
| +
|
| + return {
|
| + request: new Request(url),
|
| + response: new Response('hello'),
|
| + url: url
|
| + };
|
| + }
|
| +
|
| + self.create_unique_transaction = create_unique_transaction;
|
| +})();
|
| +
|
| +cache_test(function(cache) {
|
| + var transaction = create_unique_transaction();
|
| +
|
| + return cache.put(transaction.request.clone(), transaction.response.clone())
|
| + .then(function() {
|
| + return self.caches.match(transaction.request);
|
| + })
|
| + .then(function(response) {
|
| + assert_response_equals(response, transaction.response,
|
| + 'The response should not have changed.');
|
| + });
|
| +}, 'CacheStorageMatch with no cache name provided');
|
| +
|
| +cache_test(function(cache) {
|
| + var transaction = create_unique_transaction();
|
| +
|
| + var test_cache_list = ['a', 'b', 'c'];
|
| + return cache.put(transaction.request.clone(), transaction.response.clone())
|
| + .then(function() {
|
| + return Promise.all(test_cache_list.map(function(key) {
|
| + return self.caches.open(key);
|
| + }));
|
| + })
|
| + .then(function() {
|
| + return self.caches.match(transaction.request);
|
| + })
|
| + .then(function(response) {
|
| + assert_response_equals(response, transaction.response,
|
| + 'The response should not have changed.');
|
| + });
|
| +}, 'CacheStorageMatch from one of many caches');
|
| +
|
| +promise_test(function(test) {
|
| + var transaction = create_unique_transaction();
|
| +
|
| + var test_cache_list = ['x', 'y', 'z'];
|
| + return Promise.all(test_cache_list.map(function(key) {
|
| + return self.caches.open(key);
|
| + }))
|
| + .then(function() { return caches.open('x'); })
|
| + .then(function(cache) {
|
| + return cache.put(transaction.request.clone(),
|
| + transaction.response.clone());
|
| + })
|
| + .then(function() {
|
| + return self.caches.match(transaction.request, {cacheName: 'x'});
|
| + })
|
| + .then(function(response) {
|
| + assert_response_equals(response, transaction.response,
|
| + 'The response should not have changed.');
|
| + })
|
| + .then(function() {
|
| + return self.caches.match(transaction.request, {cacheName: 'y'});
|
| + })
|
| + .then(function(response) {
|
| + assert_equals(response, undefined,
|
| + 'Cache y should not have a response for the request.');
|
| + });
|
| +}, 'CacheStorageMatch from one of many caches by name');
|
| +
|
| +cache_test(function(cache) {
|
| + var transaction = create_unique_transaction();
|
| + return cache.put(transaction.url, transaction.response.clone())
|
| + .then(function() {
|
| + return self.caches.match(transaction.request);
|
| + })
|
| + .then(function(response) {
|
| + assert_response_equals(response, transaction.response,
|
| + 'The response should not have changed.');
|
| + });
|
| +}, 'CacheStorageMatch a string request');
|
| +
|
| +promise_test(function(test) {
|
| + var transaction = create_unique_transaction();
|
| + return self.caches.match(transaction.request)
|
| + .then(function(response) {
|
| + assert_equals(response, undefined,
|
| + 'The response should not be found.');
|
| + })
|
| +}, 'CacheStorageMatch with no cached entry');
|
| +
|
| +promise_test(function(test) {
|
| + var transaction = create_unique_transaction();
|
| + return self.caches.has('foo')
|
| + .then(function(has_foo) {
|
| + assert_false(has_foo, "The cache should not exist.");
|
| + return self.caches.match(transaction.request, {cacheName: 'foo'});
|
| + })
|
| + .then(function(response) {
|
| + assert_equals(response, undefined,
|
| + 'The match with bad cache name should resolve to ' +
|
| + 'undefined.');
|
| + return self.caches.has('foo');
|
| + })
|
| + .then(function(has_foo) {
|
| + assert_false(has_foo, "The cache should still not exist.");
|
| + })
|
| +}, 'CacheStorageMatch with no caches available but name provided');
|
| +
|
| +done();
|
|
|