Index: LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
diff --git a/LayoutTests/http/tests/serviceworker/resources/test-helpers.js b/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
index b0c885c4ad2f5d7f88db1621da6bb3e110c94fc3..6c086dc99a0dfe7c0347605c5beb75cfcb4d72ca 100644 |
--- a/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
+++ b/LayoutTests/http/tests/serviceworker/resources/test-helpers.js |
@@ -1,46 +1,42 @@ |
// Adapter for testharness.js-style tests with Service Workers |
function service_worker_unregister_and_register(test, url, scope) { |
- var options = scope ? { scope: scope } : {}; |
- return navigator.serviceWorker.unregister(scope).then( |
- test.step_func(function() { |
- return navigator.serviceWorker.register(url, options); |
- }), |
- unreached_rejection(test, 'Unregister should not fail') |
- ).then(test.step_func(function(worker) { |
- return Promise.resolve(worker); |
- }), |
- unreached_rejection(test, 'Registration should not fail') |
- ); |
+ var options = scope ? {scope: scope} : {}; |
+ return navigator.serviceWorker.unregister(scope) |
+ .catch(unreached_rejection(test, 'Unregister should not fail')) |
+ .then(test.step_func(function() { |
+ return navigator.serviceWorker.register(url, options); |
+ })) |
+ .catch(unreached_rejection(test, 'Registration should not fail')); |
} |
function service_worker_unregister_and_done(test, scope) { |
- return navigator.serviceWorker.unregister(scope).then( |
- test.done.bind(test), |
- unreached_rejection(test, 'Unregister should not fail')); |
+ return navigator.serviceWorker.unregister(scope) |
+ .then(test.done.bind(test), |
+ unreached_rejection(test, 'Unregister should not fail')); |
} |
// Rejection-specific helper that provides more details |
function unreached_rejection(test, prefix) { |
- return test.step_func(function(error) { |
- var reason = error.name ? error.name : error; |
- var prefix = prefix ? prefix : "unexpected rejection"; |
- assert_unreached(prefix + ': ' + reason); |
+ return test.step_func(function(error) { |
+ var reason = error.message || error.name || error; |
falken
2014/08/07 12:45:45
Thank you for this!!! I've been using this locally
|
+ var error_prefix = prefix || 'unexpected rejection'; |
+ assert_unreached(error_prefix + ': ' + reason); |
}); |
} |
// FIXME: Clean up the iframe when the test completes. |
function with_iframe(url, f) { |
- return new Promise(function(resolve, reject) { |
- var frame = document.createElement('iframe'); |
- frame.src = url; |
- frame.onload = function() { |
- if (f) { |
- f(frame); |
- } |
- resolve(frame); |
- }; |
- document.body.appendChild(frame); |
+ return new Promise(function(resolve, reject) { |
+ var frame = document.createElement('iframe'); |
+ frame.src = url; |
+ frame.onload = function() { |
+ if (f) { |
+ f(frame); |
+ } |
+ resolve(frame); |
+ }; |
+ document.body.appendChild(frame); |
}); |
} |
@@ -49,11 +45,12 @@ function normalizeURL(url) { |
} |
function wait_for_state(test, worker, state) { |
- return new Promise(test.step_func(function(resolve, reject) { |
- worker.addEventListener('statechange', test.step_func(function() { |
+ return new Promise(test.step_func(function(resolve, reject) { |
+ worker.addEventListener('statechange', |
+ test.step_func(function() { |
if (worker.state === state) |
- resolve(state); |
- })); |
+ resolve(state); |
+ })); |
})); |
} |