Reviewed by Geoff.
[WebKit-https.git] / LayoutTests / plugins / bindings-test.html
1 <html>
2 <head>
3 <script>
4 function doTest()
5 {
6     if (window.layoutTestController)
7         layoutTestController.dumpAsText();
8
9     if (window.objCPlugin) {
10         // Type should be "object"
11         alert("typeof(objCPlugin)=" + typeof(objCPlugin));
12
13         // Calling objCPlugin() should raise an exception.
14         var result;
15         try {
16             result = objCPlugin();
17         } catch (e) {
18             result = e.name;
19         }
20         alert("objCPlugin()=" + result);
21     }
22
23     if (window.objCPluginFunction) {
24         // Type should be "function"
25         alert("typeof(objCPluginFunction)=" + typeof(objCPluginFunction));
26
27         // Calling objCPluginFunction() should return "test"
28         var result;
29         try {
30             result = objCPluginFunction();
31         } catch (e) {
32             result = e.name;
33         }
34         alert("objCPluginFunction()=" + result);
35     }
36     
37     // Test the C plugin
38     var cPlugin = document.getElementById("testCPlugin");
39     if (cPlugin) {
40         // Type should be "function"
41         alert("typeof(cPlugin)=" + typeof(cPlugin));
42         
43         // Calling cPlugin() should return 1
44         var result;
45         try {
46             result = cPlugin();
47         } catch (e) {
48             result = e.name;
49         }
50         alert("cPlugin()=" + result);
51
52         // Special function that removes cPlugin's default method implementation.  The runtime should consider
53         // cPlugin an "object" if it has no default method.
54         cPlugin.removeDefaultMethod();
55
56         // Type should be "object"
57         alert("typeof(cPlugin)=" + typeof(cPlugin));
58         
59         // Calling cPlugin() now should raise an exception
60         var result;
61         try {
62             result = cPlugin();
63         } catch (e) {
64             result = e.name;
65         }
66         alert("cPlugin()=" + result);
67     }
68 }
69 </script>
70 </head>
71 <body onload="doTest();">
72 <p>This page tests invoking as functions JavaScript objects that are provided by plugins.</p>
73 <embed id="testCPlugin" type="application/x-webkit-test-netscape"></embed>
74 </body>
75 </html>