WebCore:
[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 function runNextTest()
11 {
12     testIndex++;
13     if (testIndex > totalTests) {
14         log("DONE");
15         if (window.layoutTestController)
16             layoutTestController.notifyDone();
17     } else {
18         eval("test" + testIndex + "();");
19     }
20 }
21
22 function test1()
23 {
24     try {
25         new Worker({toString:function(){throw "exception"}})
26         log("FAIL: toString exception not propagated.");
27     } catch (ex) {
28         if (ex == "exception")
29             log("PASS: toString exception propagated correctly.");
30         else
31             log("FAIL: unexpected exception (" + ex + ") received instead of one propagated from toString.");
32     }
33     runNextTest();
34 }
35
36 function test2()
37 {
38     try {
39         var foo = {toString:function(){new Worker(foo)}}
40         new Worker(foo);
41         log("FAIL: no exception when trying to create workers recursively");
42     } catch (ex) {
43         log("PASS: trying to create workers recursively resulted in an exception (" + ex + ")");
44     }
45     runNextTest();
46 }
47
48 function test3()
49 {
50     try {
51         new Worker();
52         log("FAIL: invoking Worker constructor without arguments did not result in an exception");
53     } catch (ex) {
54         log("PASS: invoking Worker constructor without arguments resulted in an exception (" + ex + ")");
55     }
56     runNextTest();
57 }
58
59 function test4()
60 {
61     try {
62         var worker = new Worker("");
63         worker.onerror = function() {
64             log("PASS: onerror invoked for an empty script URL.");
65             runNextTest();
66         }
67     } catch (ex) {
68         log("FAIL: unexpected exception " + ex);
69         runNextTest();
70     }
71 }
72
73 function test5()
74 {
75     try {
76         var worker = new Worker("invalidurl://");
77         worker.onerror = function() {
78             log("PASS: onerror invoked for an invalid script URL.");
79             runNextTest();
80         }
81     } catch (ex) {
82         log("FAIL: unexpected exception " + ex);
83         runNextTest();
84     }
85 }
86
87 function test6()
88 {
89     try {
90         var worker = new Worker("does-not-exist.js");
91         worker.onerror = function() {
92             log("PASS: onerror invoked for a script that could not be loaded.");
93             runNextTest();
94         }
95     } catch (ex) {
96         log("FAIL: unexpected exception " + ex);
97         runNextTest();
98     }
99 }
100
101 if (window.layoutTestController) {
102     layoutTestController.dumpAsText();
103     layoutTestController.waitUntilDone();
104 }
105
106 var totalTests = 6;
107 var testIndex = 0;
108 runNextTest();
109
110 </script>
111 </body>