<html>
<script>
function runTest()
{
    if (window.testRunner)
        testRunner.dumpAsText();
        
    var successCount = 0;
    var plugin = document.getElementById("testPlugin");
    
    var array = plugin.testConstruct(Array, 1, 2, 3, 4);
    if (array instanceof Array) {
        successCount++
        
        if (array.length == 4)
            successCount++
    }
  
    var n = new plugin.testObject();

    if (n.objectPointer == plugin.testObject.objectPointer)
        successCount++;

        
    if (successCount == 3)
        document.getElementById('result').innerHTML = 'SUCCESS'
}
</script>

<body onload="runTest();">
This tests that NPN_Construct works correctly, and that it is possible to use "new" with NPObjects that implement construct.

<div id="result">FAILURE</div>
<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
</body>
</html>
