blob: 9ef20f7c7d452bc5023d86d945cd6797fb80bc72 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* 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");
});
|