<html>
<script>
function runTest()
{
    if (window.testRunner)
        testRunner.dumpAsText();
        
    var plugin = document.getElementById("testPlugin");
    var result = document.getElementById('result');
 
    var o = { stringProperty : 'foo', nullProperty : null, undefinedProperty : undefined };
    
    if (!plugin.testGetPropertyReturnValue(o, 'stringProperty')) {
        result.innerHTML = "FAILURE: getting stringProperty returned false";
        return;
    }    
    
    if (!plugin.testGetPropertyReturnValue(o, 'nullProperty')) {
        result.innerHTML = "FAILURE: getting nullProperty returned false";
        return;
    }
    
    if (!plugin.testGetPropertyReturnValue(o, 'undefinedProperty')) {
        result.innerHTML = "FAILURE: getting undefinedProperty returned false";
        return;
    }
    
    if (!plugin.testGetPropertyReturnValue(o, 'nonExistentProperty')) {
        result.innerHTML = "FAILURE: getting undefinedProperty returned false";
        return;
    }

    result.innerHTML = 'SUCCESS';
}
</script>

<body onload="runTest();">
<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
This tests that we return the correct return value when a plug-in calls NPN_GetProperty.
<div id="result">FAILURE</div>
</body>
</html>
