Home | History | Annotate | Download | only in storage
      1 <!DOCTYPE html>
      2 <html>
      3 <body>
      4 This test tests that the transaction success callback is called in the right world.
      5 <div id="console"></div>
      6 <script>
      7 var transactionSuccessCallbacksInvoked = 0;
      8 function done()
      9 {
     10     if ((++transactionSuccessCallbacksInvoked == 2) && (window.layoutTestController))
     11         layoutTestController.notifyDone();
     12 }
     13 
     14 function transactionSuccessCallback1(tx)
     15 {
     16     alert("FAIL: Visible in isolated world.");
     17     done();
     18 }
     19 
     20 function transactionSuccessCallback2(tx)
     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 transactionSuccessCallback1(tx)\n" +
     36         "{\n" +
     37         "    alert(document.body.foo);\n" +
     38         "    window.location='javascript:done()';\n" +
     39         "}\n" +
     40         "var db1 = openDatabase('TransactionSuccessCallbackIsolatedWorld1', '1.0', '', 1);\n" +
     41         "db1.transaction(function(tx) { }, null, transactionSuccessCallback1);");
     42 
     43     var db2 = openDatabase('TransactionSuccessCallbackIsolatedWorld2', '1.0', '', 1);
     44     db2.transaction(function(tx) { }, null, transactionSuccessCallback2);
     45 }
     46 </script>
     47 </body>
     48 </html>
     49