1 function GC() 2 { 3 // Force GC. 4 if (window.GCController) 5 GCController.collect(); 6 else { 7 for (var i = 0; i < 10000; ++i) { 8 ({ }); 9 } 10 } 11 } 12 13 // Variable for the database that will never be forgotten 14 var persistentDB = 0; 15 // Variable for the forgotten database 16 var forgottenDB = 0; 17 18 var completed = 0; 19 function checkCompletion() 20 { 21 if (++completed == 2 && window.layoutTestController) 22 layoutTestController.notifyDone(); 23 } 24 25 function runTest() 26 { 27 persistentDB = openDatabaseWithSuffix("MultipleDatabasesTest1", "1.0", "Test one out of a set of databases being destroyed (1)", 32768); 28 forgottenDB = openDatabaseWithSuffix("MultipleDatabasesTest2", "1.0", "Test one out of a set of databases being destroyed (2)", 32768); 29 30 persistentDB.transaction(function(tx) { 31 tx.executeSql("CREATE TABLE IF NOT EXISTS DataTest (randomData)", [], function(tx, result) { 32 for (var i = 0; i < 25; ++i) 33 tx.executeSql("INSERT INTO DataTest (randomData) VALUES (1)", []); 34 }); 35 }, function(err) { 36 log("Persistent Database Transaction Errored - " + err); 37 checkCompletion(); 38 }, function() { 39 log("Persistent Database Transaction Complete"); 40 checkCompletion(); 41 }); 42 43 forgottenDB.transaction(function(tx) { 44 tx.executeSql("CREATE TABLE IF NOT EXISTS EmptyTable (unimportantData)", []); 45 }, function(err) { 46 log("Forgotten Database Transaction Errored - " + err); 47 forgottenDB = 0; 48 GC(); 49 checkCompletion(); 50 }, function() { 51 log("Forgotten Database Transaction Complete"); 52 forgottenDB = 0; 53 GC(); 54 checkCompletion(); 55 }); 56 } 57