<html>
<head>
<script>
    function runTests()
    {
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }
        showModalDialog("resources/modal-dialog.html");
    }

    function log(message)
    {
        var console = document.getElementById("console");
        var li = document.createElement("li");
        var text = document.createTextNode(message);
    
        console.appendChild(li);
        li.appendChild(text);
    }
</script>
</head>

<body onload="runTests()">
    <p>This test verifies that showModalDialog implementation in DRT works.
    <p>You need to disable pop-up blocker for this test to run successfully.</p>
    <ul id="console"></ul>
</body>
</html>
