<html>
<head>
<script>
function finishTest()
{
    if (window.testRunner)
        testRunner.notifyDone();
}

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

function runTest() {
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    var db = window.openDatabase("ChangeVersionFailureTest", "1", "Test the preflight step", 1024);
    db.changeVersion("2", "3", null, function(error) {
        log("PASS: db.changeVersion() failed as expected, and no assertions were triggered.");
        finishTest();
    }, function() {
        log("FAIL: db.changeVersion() was expected to fail.");
        finishTest();
    });
}
</script>
</head>
<body onload="runTest();">
This test verifies that no assertion is triggered when changeVersion()'s preflight step fails.
<pre id="console"></pre>
</body>
</html>
