2 <p>Test Worker script error handling functionality. Should print a series of PASS messages, followed with DONE.
</p>
7 document
.getElementById("result").innerHTML
+= message
+ "<br>";
11 "testInvalidScriptSyntax",
12 "testScriptErrorUnhandled",
13 "testScriptErrorAddEventListener",
14 "testErrorInHandlingScriptError",
15 "testScriptErrorBubbledAndHandledInWorker",
16 "testScriptErrorBubbledAndReportedToUser",
17 "testScriptErrorHandled",
21 function runNextTest()
23 if (testIndex
< testCases
.length
) {
25 window
[testCases
[testIndex
- 1]]();
28 if (window
.layoutTestController
)
29 layoutTestController
.notifyDone();
33 function testInvalidScriptSyntax()
36 var worker
= new Worker("resources/worker-invalid-syntax.js");
37 worker
.onerror = function() {
38 log("PASS: onerror invoked for a script that has invalid syntax.");
43 log("FAIL: unexpected exception " + ex
);
48 function testScriptErrorUnhandled()
51 var worker
= new Worker("resources/worker-script-error-unhandled.js");
52 worker
.onerror = function(evt
) {
53 log("PASS: onerror invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
58 log("FAIL: unexpected exception " + ex
);
63 function testScriptErrorAddEventListener()
66 var worker
= new Worker("resources/worker-script-error-unhandled.js");
67 worker
.addEventListener("error",
69 log("PASS: event listener invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
74 log("FAIL: unexpected exception " + ex
);
79 function testErrorInHandlingScriptError()
82 var worker
= new Worker("resources/worker-error-in-handling-script-error.js");
83 worker
.onerror = function(evt
) {
84 log("PASS: onerror invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
89 log("FAIL: unexpected exception " + ex
);
94 function testScriptErrorBubbledAndHandledInWorker()
97 var worker
= new Worker("resources/worker-script-error-bubbled.js");
98 worker
.onerror = function(evt
) {
99 log("PASS: onerror invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
104 log("FAIL: unexpected exception " + ex
);
109 function testScriptErrorBubbledAndReportedToUser()
112 var worker
= new Worker("resources/worker-script-error-bubbled.js");
113 worker
.onerror = function(evt
) {
114 log("PASS: onerror invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
119 log("FAIL: unexpected exception " + ex
);
124 function testScriptErrorHandled()
127 var worker
= new Worker("resources/worker-script-error-handled.js");
128 worker
.onerror = function(evt
) {
129 log("FAIL: onerror invoked for a script that has script error '" + evt
.message
+ "' at line " + evt
.lineno
+ ".");
133 worker
.onmessage = function(evt
) {
134 log("PASS: message received from WorkerGlobalScope.onerror: " + evt
.data
+ ".");
138 log("FAIL: unexpected exception " + ex
);
143 if (window
.layoutTestController
) {
144 layoutTestController
.dumpAsText();
145 layoutTestController
.waitUntilDone();