/* * 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. */ // 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); } }); }