| <html> |
| <head> |
| <script> |
| function doTest() |
| { |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var plugin = document.getElementById("testPlugin"); |
| var console = document.getElementById("console"); |
| |
| var o = { internalFunction : Object, doStuff: function() {return 20;}, stringProperty : 'str', nullProperty : null, undefinedProperty : undefined }; |
| |
| function report(property, result, expected) { |
| if (result !== expected) { |
| console.innerHTML += "FAILURE: " + property + "<br/>"; |
| } else { |
| console.innerHTML += "SUCCESS: " + property + "<br/>"; |
| } |
| } |
| |
| function shouldBeFunction(property, expected) { |
| report(property, plugin.testHasMethod(o, property), expected); |
| } |
| |
| function shouldBeProperty(property, expected) { |
| report(property, plugin.testHasProperty(o, property), expected); |
| } |
| |
| /* test hasmethod */ |
| console.innerHTML += "Testing hasmethod<br />"; |
| shouldBeFunction("internalFunction", true); |
| shouldBeFunction("doStuff", true); |
| shouldBeFunction("undefinedProperty", false); |
| |
| /* test hasproperty */ |
| console.innerHTML += "<br />Testing hasproperty<br />"; |
| shouldBeProperty("internalFunction", true); |
| shouldBeProperty("doStuff", true); |
| shouldBeProperty("stringProperty", true); |
| shouldBeProperty("nullProperty", true); |
| shouldBeProperty("undefinedProperty", true); |
| shouldBeProperty("notDefinedProperty", false); |
| } |
| </script> |
| </head> |
| <body onload="doTest();"> |
| <p>Test if the plugin can properly invoke the browserfuncs</p> |
| <embed id="testPlugin" type="application/x-webkit-test-netscape"></embed> |
| <div id="console"></div> |
| </body> |
| </html> |