| Index: LayoutTests/http/tests/resources/testharness-helpers.js
|
| diff --git a/LayoutTests/http/tests/resources/testharness-helpers.js b/LayoutTests/http/tests/resources/testharness-helpers.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5eee188edc58662d4b69f3db41f5792cb41c0d92
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/resources/testharness-helpers.js
|
| @@ -0,0 +1,44 @@
|
| +/*
|
| + * testharness-helpers contains various useful extensions to testharness.js to
|
| + * allow them to be used across multiple tests before they have been
|
| + * upstreamed. This file is intended to be usable from both document and worker
|
| + * environments, so code should for example not rely on the DOM.
|
| + */
|
| +
|
| +// 'promise_test' is a new kind of testharness test that handles some
|
| +// boilerplate for testing with promises.
|
| +function promise_test(func, name, properties) {
|
| + properties = properties || {};
|
| + var test = async_test(name, properties);
|
| + Promise.resolve(test.step(func, test, test))
|
| + .then(function() { test.done(); })
|
| + .catch(test.step_func(function(value) {
|
| + throw value;
|
| + }));
|
| +}
|
| +
|
| +// Returns a promise that fulfills after the provided |promise| is fulfilled.
|
| +// The |test| succeeds only if |promise| rejects with an exception matching
|
| +// |code|. Accepted values for |code| follow those accepted for assert_throws().
|
| +// The optional |description| describes the test being performed.
|
| +// E.g.:
|
| +// assert_promise_rejects(
|
| +// new Promise(...), // something that should throw an exception.
|
| +// 'NotFoundError',
|
| +// 'Should throw NotFoundError.');
|
| +//
|
| +// assert_promise_rejects(
|
| +// new Promise(...),
|
| +// new TypeError(),
|
| +// 'Should throw TypeError');
|
| +function assert_promise_rejects(promise, code, description) {
|
| + return promise.then(
|
| + function() {
|
| + throw 'assert_promise_rejects: ' + description + ' Promise did not reject.';
|
| + },
|
| + function(e) {
|
| + if (code !== undefined) {
|
| + assert_throws(code, function() { throw e; }, description);
|
| + }
|
| + });
|
| +}
|
|
|