chromium/third_party/blink/web_tests/fast/canvas-api/resources/canvas-createImageBitmap-invalid-args-in-workers.js

importScripts('../../../resources/js-test.js');

self.jsTestIsAsync = true;

description('Test createImageBitmap with invalid arguments in workers.');

var reason;

function shouldBeRejected(promise, message) {
    return promise.then(function() {
        testFailed('Resolved unexpectedly: ' + message);
    }, function(e) {
        reason = e;
        testPassed('Rejected as expected: ' + message);
        shouldBeTrue('reason instanceof Error');
        debug(String(e));
    });
}

var data;

self.addEventListener('message', function(e) {
    data = e.data;
    Promise.resolve().then(function() {
        return shouldBeRejected(createImageBitmap(null, 0, 0, 10, 10), 'null');
    }).then(function() {
        return shouldBeRejected(createImageBitmap(data, 0, 0, 10, 0), 'invalid area');
    }).then(function() {
        return shouldBeRejected(createImageBitmap(data, 0, 0, 0, 10), 'invalid area');
    }).catch(function(e) {
        testFailed('Unexpected rejection: ' + e);
    }).then(finishJSTest, finishJSTest);
});