Rubber-stamped by Brady Eidson.
[webbrowser.git] / LayoutTests / fast / workers / worker-script-error.html
blob0c2e7e3f1e5d3e86cde51e610480e3aacb0d0f01
1 <body>
2 <p>Test Worker script error handling functionality. Should print a series of PASS messages, followed with DONE.</p>
3 <div id=result></div>
4 <script>
5 function log(message)
7 document.getElementById("result").innerHTML += message + "<br>";
10 var testCases = [
11 "testInvalidScriptSyntax",
12 "testScriptErrorUnhandled",
13 "testScriptErrorAddEventListener",
14 "testErrorInHandlingScriptError",
15 "testScriptErrorBubbledAndHandledInWorker",
16 "testScriptErrorBubbledAndReportedToUser",
17 "testScriptErrorHandled",
19 var testIndex = 0;
21 function runNextTest()
23 if (testIndex < testCases.length) {
24 testIndex++;
25 window[testCases[testIndex - 1]]();
26 } else {
27 log("DONE");
28 if (window.layoutTestController)
29 layoutTestController.notifyDone();
33 function testInvalidScriptSyntax()
35 try {
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.");
39 runNextTest();
40 return false;
42 } catch (ex) {
43 log("FAIL: unexpected exception " + ex);
44 runNextTest();
48 function testScriptErrorUnhandled()
50 try {
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 + ".");
54 runNextTest();
55 return false;
57 } catch (ex) {
58 log("FAIL: unexpected exception " + ex);
59 runNextTest();
63 function testScriptErrorAddEventListener()
65 try {
66 var worker = new Worker("resources/worker-script-error-unhandled.js");
67 worker.addEventListener("error",
68 function(evt) {
69 log("PASS: event listener invoked for a script that has script error '" + evt.message + "' at line " + evt.lineno + ".");
70 runNextTest();
71 evt.preventDefault();
72 }, false);
73 } catch (ex) {
74 log("FAIL: unexpected exception " + ex);
75 runNextTest();
79 function testErrorInHandlingScriptError()
81 try {
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 + ".");
85 runNextTest();
86 return false;
88 } catch (ex) {
89 log("FAIL: unexpected exception " + ex);
90 runNextTest();
94 function testScriptErrorBubbledAndHandledInWorker()
96 try {
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 + ".");
100 runNextTest();
101 return false;
103 } catch (ex) {
104 log("FAIL: unexpected exception " + ex);
105 runNextTest();
109 function testScriptErrorBubbledAndReportedToUser()
111 try {
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 + ".");
115 runNextTest();
116 return true;
118 } catch (ex) {
119 log("FAIL: unexpected exception " + ex);
120 runNextTest();
124 function testScriptErrorHandled()
126 try {
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 + ".");
130 runNextTest();
131 return false;
133 worker.onmessage = function(evt) {
134 log("PASS: message received from WorkerGlobalScope.onerror: " + evt.data + ".");
135 runNextTest();
137 } catch (ex) {
138 log("FAIL: unexpected exception " + ex);
139 runNextTest();
143 if (window.layoutTestController) {
144 layoutTestController.dumpAsText();
145 layoutTestController.waitUntilDone();
148 runNextTest();
150 </script>
151 </body>