| Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/resources/test-helpers.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/resources/test-helpers.js
|
| similarity index 69%
|
| copy from third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
|
| copy to third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/resources/test-helpers.js
|
| index a73889773d20e9cb91a042febe6bebaeb59d7bf5..f4145e6217f5fe4d7ce7c1c8124c234838b0c985 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/cache-storage/resources/test-helpers.js
|
| @@ -32,7 +32,7 @@
|
| function cache_test(test_function, description) {
|
| promise_test(function(test) {
|
| return create_temporary_cache(test)
|
| - .then(cache => test_function(cache, test));
|
| + .then(test_function);
|
| }, description);
|
| }
|
|
|
| @@ -141,47 +141,29 @@ var vary_entries = [
|
| // Run |test_function| with a Cache object and a map of entries. Prior to the
|
| // call, the Cache is populated by cache entries from |entries|. The latter is
|
| // expected to be an Object mapping arbitrary keys to objects of the form
|
| -// {request: <Request object>, response: <Response object>}. The entries are
|
| -// added sequentially so that tests can verify the ordering of the cache
|
| -// methods.
|
| +// {request: <Request object>, response: <Response object>}. There's no
|
| +// guarantee on the order in which entries will be added to the cache.
|
| //
|
| // |test_function| should return a Promise that can be used with promise_test.
|
| function prepopulated_cache_test(entries, test_function, description) {
|
| cache_test(function(cache) {
|
| + var p = Promise.resolve();
|
| var hash = {};
|
| - var resolveMethod = null;
|
| -
|
| - var promise = new Promise(function(resolve, reject) {
|
| - resolveMethod = resolve;
|
| + return Promise.all(entries.map(function(entry) {
|
| + hash[entry.name] = entry;
|
| + return cache.put(entry.request.clone(),
|
| + entry.response.clone())
|
| + .catch(function(e) {
|
| + assert_unreached(
|
| + 'Test setup failed for entry ' + entry.name + ': ' + e);
|
| + });
|
| + }))
|
| + .then(function() {
|
| + assert_equals(Object.keys(hash).length, entries.length);
|
| })
|
| - .then(function() {
|
| - assert_equals(Object.keys(hash).length, entries.length);
|
| - return test_function(cache, hash);
|
| + .then(function() {
|
| + return test_function(cache, hash);
|
| });
|
| -
|
| - // Add the entries to the cache sequentially.
|
| - // TODO(jkarlin): Once async/await is available use it to prettify this
|
| - // code.
|
| - var i = 0;
|
| - var processNextEntry = function(i) {
|
| - if (i == entries.length) {
|
| - resolveMethod();
|
| - return;
|
| - }
|
| - entry = entries[i];
|
| - hash[entry.name] = entry;
|
| - cache.put(entry.request.clone(), entry.response.clone())
|
| - .then(function() {
|
| - processNextEntry(i+1);
|
| - })
|
| - .catch(function(e) {
|
| - assert_unreached(
|
| - 'Test setup failed for entry ' + entry.name + ': ' + e);
|
| - })
|
| - }
|
| -
|
| - processNextEntry(0);
|
| - return promise;
|
| }, description);
|
| }
|
|
|
| @@ -212,80 +194,41 @@ function assert_response_equals(actual, expected, description) {
|
| assert_header_equals(actual.headers, expected.headers, description);
|
| }
|
|
|
| -// Asserts that two arrays |actual| and |expected| contain the same
|
| -// set of Responses as determined by assert_response_equals(). The
|
| -// corresponding elements must occupy corresponding indices in their
|
| -// respective arrays.
|
| -function assert_response_array_equals(actual, expected, description) {
|
| - assert_true(Array.isArray(actual), description);
|
| - assert_equals(actual.length, expected.length, description);
|
| - actual.forEach(function(value, index) {
|
| - assert_response_equals(value, expected[index],
|
| - description + " : object[" + index + "]");
|
| - });
|
| -}
|
| -
|
| -// Equivalent to assert_in_array, but uses assert_response_equals.
|
| -function assert_response_in_array(actual, expected_array, description) {
|
| - assert_true(expected_array.some(function(element) {
|
| - try {
|
| - assert_response_equals(actual, element);
|
| - return true;
|
| - } catch (e) {
|
| - return false;
|
| - }
|
| - }), description);
|
| -}
|
| -
|
| -// Helper for testing with Request objects. Compares simple
|
| -// attributes defined on the interfaces, as well as the headers.
|
| -function assert_request_equals(actual, expected, description) {
|
| - assert_class_string(actual, "Request", description);
|
| - ["url"].forEach(function(attribute) {
|
| - assert_equals(actual[attribute], expected[attribute],
|
| - description + " Attributes differ: " + attribute + ".");
|
| - });
|
| - assert_header_equals(actual.headers, expected.headers, description);
|
| -}
|
| -
|
| -// TODO(zino): Should remove this function once keys() returns request
|
| -// keys in key insertion order. Please see http://crbug.com/627821.
|
| -//
|
| // Assert that the two arrays |actual| and |expected| contain the same
|
| -// set of Requests as determined by assert_request_equals. The order
|
| +// set of Responses as determined by assert_response_equals. The order
|
| // is not significant.
|
| //
|
| // |expected| is assumed to not contain any duplicates.
|
| -function assert_request_array_equivalent(actual, expected, description) {
|
| +function assert_response_array_equivalent(actual, expected, description) {
|
| assert_true(Array.isArray(actual), description);
|
| assert_equals(actual.length, expected.length, description);
|
| expected.forEach(function(expected_element) {
|
| - // assert_request_in_array treats the first argument as being
|
| + // assert_response_in_array treats the first argument as being
|
| // 'actual', and the second as being 'expected array'. We are
|
| // switching them around because we want to be resilient
|
| // against the |actual| array containing duplicates.
|
| - assert_request_in_array(expected_element, actual, description);
|
| + assert_response_in_array(expected_element, actual, description);
|
| });
|
| }
|
|
|
| // Asserts that two arrays |actual| and |expected| contain the same
|
| -// set of Requests as determined by assert_request_equals(). The
|
| +// set of Responses as determined by assert_response_equals(). The
|
| // corresponding elements must occupy corresponding indices in their
|
| // respective arrays.
|
| -function assert_request_array_equals(actual, expected, description) {
|
| +function assert_response_array_equals(actual, expected, description) {
|
| assert_true(Array.isArray(actual), description);
|
| assert_equals(actual.length, expected.length, description);
|
| actual.forEach(function(value, index) {
|
| - assert_request_equals(value, expected[index],
|
| - description + " : object[" + index + "]");
|
| + assert_response_equals(value, expected[index],
|
| + description + " : object[" + index + "]");
|
| });
|
| }
|
|
|
| -// Equivalent to assert_in_array, but uses assert_request_equals.
|
| -function assert_request_in_array(actual, expected_array, description) {
|
| +// Equivalent to assert_in_array, but uses assert_response_equals.
|
| +function assert_response_in_array(actual, expected_array, description) {
|
| assert_true(expected_array.some(function(element) {
|
| try {
|
| - assert_request_equals(actual, element);
|
| + assert_response_equals(actual, element);
|
| return true;
|
| } catch (e) {
|
| return false;
|
|
|