tenfourfox/testing/mochitest/tests/browser/browser_fail_add_task.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

58 lines
1.1 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// This test is designed to fail.
// It ensures that throwing an asynchronous error from add_task will
// fail the test.
var passedTests = 0;
function rejectWithTimeout(error = undefined) {
let deferred = Promise.defer();
executeSoon(function() {
ok(true, "we get here after a timeout");
deferred.reject(error);
});
return deferred.promise;
}
add_task(function failWithoutError() {
try {
yield rejectWithTimeout();
} finally {
++passedTests;
}
});
add_task(function failWithString() {
try {
yield rejectWithTimeout("Meaningless error");
} finally {
++passedTests;
}
});
add_task(function failWithoutInt() {
try {
yield rejectWithTimeout(42);
} finally {
++passedTests;
}
});
// This one should display a stack trace
add_task(function failWithError() {
try {
yield rejectWithTimeout(new Error("This is an error"));
} finally {
++passedTests;
}
});
add_task(function done() {
is(passedTests, 4, "Passed all tests");
});