<!DOCTYPE html>
<html>
<body>
This test tests that the openDatabase() creation callback is called in the right world.
<div id="console"></div>
<script>
var creationCallbacksExecuted = 0;
function done()
{
    if ((++creationCallbacksExecuted == 2) && (window.testRunner))
        testRunner.notifyDone();
}

function creationCallback1(db)
{
    alert("FAIL: Visible in isolated world.");
    done();
}

function creationCallback2(db)
{
    alert(document.body.bar);
    done();
}

document.body.foo = "FAIL: document.body.foo visible in isolated world.";
document.body.bar = "PASS: document.body.bar visible in a callback created in this world.";

if (window.testRunner) {
    testRunner.clearAllDatabases();
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.evaluateScriptInIsolatedWorld(
        0,
        "function creationCallback1(db)\n" +
        "{\n" +
        "    alert(document.body.foo);\n" +
        "    window.location='javascript:done()';\n" +
        "}\n" +
        "var db1 = openDatabase('OpenDatabaseCreationCallbackIsolatedWorld', '1.0', '', 1, creationCallback1);");

    var db2 = openDatabase('OpenDatabaseCreationCallbackIsolatedWorld2', '1.0', '', 1, creationCallback2);
}
</script>
</body>
</html>
