<html>
<script>
function runTest()
{
    if (window.layoutTestController)
        layoutTestController.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>
