8f8e723a2cb042419984b45b599f03761ec53e02
[WebKit-https.git] / LayoutTests / fast / workers / worker-constructor.html
1 <body>
2 <p>Test Worker constructor functionality. Should print a series of PASS messages, followed with DONE.</p>
3 <div id=result></div>
4 <script>
5 function log(message)
6 {
7     document.getElementById("result").innerHTML += message + "<br>";
8 }
9
10 if (window.layoutTestController) {
11     layoutTestController.dumpAsText();
12     layoutTestController.waitUntilDone();
13 }
14
15 try {
16     new Worker({toString:function(){throw "exception"}})
17     log("FAIL: toString exception not propagated.");
18 } catch (ex) {
19     if (ex == "exception")
20         log("PASS: toString exception propagated correctly.");
21     else
22         log("FAIL: unexpected exception (" + ex + ") received instead of one propagated from toString.");
23 }
24
25 try {
26     var foo = {toString:function(){new Worker(foo)}}
27     new Worker(foo);
28     log("FAIL: no exception when trying to create workers recursively");
29 } catch (ex) {
30     log("PASS: trying to create workers recursively resulted in an exception (" + ex + ")");
31 }
32
33 try {
34     new Worker();
35     log("FAIL: invoking Worker constructor without arguments did not result in an exception");
36 } catch (ex) {
37     log("PASS: invoking Worker constructor without arguments resulted in an exception (" + ex + ")");
38 }
39
40 try {
41     var worker = new Worker("does-not-exist.js");
42     worker.onerror = function() {
43         log("PASS: onerror invoked for a script that could not be loaded.");
44         log("DONE");
45         if (window.layoutTestController)
46             layoutTestController.notifyDone();
47     }
48 } catch (ex) {
49     log("FAIL: unexpected exception " + ex);
50     if (window.layoutTestController)
51         layoutTestController.notifyDone();
52 }
53 </script>
54 </body>