<html>

<head>
<script>

function writeMessageToLog(message)
{
    document.getElementById("console").innerText += message + "\n";
}

function executeEmptyStatement(transaction)
{
    transaction.executeSql("");
    writeMessageToLog("Executed an empty statement. If you didn't see a crash or assertion, the test passed.");
    if (window.layoutTestController)
        layoutTestController.notifyDone();
}

function runTest() {
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
    }
    var db = openDatabase("EmptyStatementTest", "1.0", "Database for an empty statement test", 1);
    db.transaction(executeEmptyStatement);
}

</script>
</head>

<body onload="runTest()">
<pre id="console"></pre>
</body>

</html>
