| Index: LayoutTests/http/tests/serviceworker/resources/cache-put-worker.js
|
| diff --git a/LayoutTests/http/tests/serviceworker/resources/cache-put-worker.js b/LayoutTests/http/tests/serviceworker/resources/cache-put-worker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8866de43d8c3b2d48e71460f67a9605b4e6af535
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/serviceworker/resources/cache-put-worker.js
|
| @@ -0,0 +1,125 @@
|
| +importScripts('worker-test-harness.js');
|
| +
|
| +var test_request = new Request('http://example.com/foo', {method: 'GET'});
|
| +
|
| +var test_response = new Response('Hello, world!', {
|
| + status: 200,
|
| + statusText: 'OK',
|
| + headers: [['Content-Type', 'text/plain']]
|
| + });
|
| +
|
| +var alternate_test_response = new Response('Goodbye, world!', {
|
| + status: 200,
|
| + statusText: 'OK',
|
| + headers: [['Content-Type', 'text/plain']]
|
| + });
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return cache.put(test_request, test_response);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result,
|
| + test_response,
|
| + 'Cache.put should resolve with the response ' +
|
| + 'parameter.');
|
| + })
|
| + .then(function() {
|
| + return cache.get(test_request);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, test_response,
|
| + 'Cache.put should update the cache with specified ' +
|
| + 'request.');
|
| + });
|
| + }, 'Cache.put with a valid request');
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return cache.put(test_request, test_response)
|
| + .then(function() {
|
| + return cache.put(test_request, alternate_test_response);
|
| + });
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result,
|
| + alternate_test_response,
|
| + 'Cache.put should replace existing response with ' +
|
| + 'new response.');
|
| + })
|
| + .then(function() {
|
| + return cache.get(test_request);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, alternate_test_response,
|
| + 'Cache.put should replace existing response with new ' +
|
| + 'response.');
|
| + });
|
| + }, 'Cache.put with an existing request');
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return cache.put('http://example.com/cow-goes-moo', test_response);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, test_response,
|
| + 'Cache.put should accept a ScalarValueString as the ' +
|
| + 'request.');
|
| + });
|
| + }, 'Cache.put with a request string');
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return cache.put('invalid-scheme://should-accept', test_response);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, test_response,
|
| + 'Cache.put should accept a ScalarValueString as the ' +
|
| + 'request.');
|
| + });
|
| + }, 'Cache.put with a request string');
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return cache.put('relative-url', test_response);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, test_response,
|
| + 'Cache.put should accept a relative URL as the ' +
|
| + 'request.');
|
| + })
|
| + .then(function() {
|
| + return cache.get(new URL('relative-url', location.href).href);
|
| + })
|
| + .then(function(result) {
|
| + assert_equals(result, test_response,
|
| + 'Cache.put should accept a relative URL as the ' +
|
| + 'request.');
|
| + });
|
| + }, 'Cache.put with a relative URL');
|
| +
|
| +promise_test(function(t) {
|
| + var request = new Request('http://example.com/foo', {method: 'HEAD'});
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return assert_promise_throws(
|
| + cache.put(request, test_response),
|
| + 'TypeError',
|
| + 'Cache.put should throw a TypeError for non-GET requests.');
|
| + });
|
| + }, 'Cache.put with a non-GET request');
|
| +
|
| +promise_test(function(t) {
|
| + return create_temporary_cache(t)
|
| + .then(function(cache) {
|
| + return assert_promise_throws(
|
| + cache.put(test_request, null),
|
| + 'TypeError',
|
| + 'Cache.put should throw a TypeError for an empty response.');
|
| + });
|
| + }, 'Cache.put with an empty response');
|
|
|