Home | History | Annotate | Download | only in storage
      1 <!DOCTYPE html>
      2 <html>
      3 <body>
      4 This test tests that the statement error callback is called in the right world.
      5 <div id="console"></div>
      6 <script>
      7 var statementErrorCallbacksInvoked = 0;
      8 function done()
      9 {
     10     if ((++statementErrorCallbacksInvoked == 2) && (window.layoutTestController))
     11         layoutTestController.notifyDone();
     12 }
     13 
     14 function statementErrorCallback1(tx, error)
     15 {
     16     alert("FAIL: Visible in isolated world.");
     17     done();
     18 }
     19 
     20 function statementErrorCallback2(tx, error)
     21 {
     22     alert(document.body.bar);
     23     done();
     24 }
     25 
     26 document.body.foo = "FAIL: document.body.foo visible in isolated world.";
     27 document.body.bar = "PASS: document.body.bar visible in a callback created in this world.";
     28 
     29 if (window.layoutTestController) {
     30     layoutTestController.clearAllDatabases();
     31     layoutTestController.dumpAsText();
     32     layoutTestController.waitUntilDone();
     33     layoutTestController.evaluateScriptInIsolatedWorld(
     34         0,
     35         "function statementErrorCallback1(tx, error)\n" +
     36         "{\n" +
     37         "    alert(document.body.foo);\n" +
     38         "    window.location='javascript:done()';\n" +
     39         "}\n" +
     40         "var db1 = openDatabase('StatementErrorCallbackIsolatedWorld1', '1.0', '', 1);\n" +
     41         "db1.transaction(function(tx) {\n" +
     42         "    tx.executeSql('BAD STATEMENT', [], function(tx, data) {}, statementErrorCallback1);\n" +
     43         "});");
     44 
     45     var db2 = openDatabase('StatementErrorCallbackIsolatedWorld2', '1.0', '', 1);
     46     db2.transaction(function(tx) {
     47         tx.executeSql('BAD STATEMENT', [], function(tx, data) {}, statementErrorCallback2);
     48     });
     49 }
     50 </script>
     51 </body>
     52 </html>
     53