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