| function GC() |
| { |
| // Force GC. |
| if (window.GCController) |
| GCController.collect(); |
| else { |
| for (var i = 0; i < 10000; ++i) { |
| ({ }); |
| } |
| } |
| } |
| |
| // Variable for the database that will never be forgotten |
| var persistentDB = 0; |
| // Variable for the forgotten database |
| var forgottenDB = 0; |
| |
| var completed = 0; |
| function checkCompletion() |
| { |
| if (++completed == 2 && window.layoutTestController) |
| layoutTestController.notifyDone(); |
| } |
| |
| function runTest() |
| { |
| persistentDB = openDatabaseWithSuffix("MultipleDatabasesTest1", "1.0", "Test one out of a set of databases being destroyed (1)", 32768); |
| forgottenDB = openDatabaseWithSuffix("MultipleDatabasesTest2", "1.0", "Test one out of a set of databases being destroyed (2)", 32768); |
| |
| persistentDB.transaction(function(tx) { |
| tx.executeSql("CREATE TABLE IF NOT EXISTS DataTest (randomData)", [], function(tx, result) { |
| for (var i = 0; i < 25; ++i) |
| tx.executeSql("INSERT INTO DataTest (randomData) VALUES (1)", []); |
| }); |
| }, function(err) { |
| log("Persistent Database Transaction Errored - " + err); |
| checkCompletion(); |
| }, function() { |
| log("Persistent Database Transaction Complete"); |
| checkCompletion(); |
| }); |
| |
| forgottenDB.transaction(function(tx) { |
| tx.executeSql("CREATE TABLE IF NOT EXISTS EmptyTable (unimportantData)", []); |
| }, function(err) { |
| log("Forgotten Database Transaction Errored - " + err); |
| forgottenDB = 0; |
| GC(); |
| checkCompletion(); |
| }, function() { |
| log("Forgotten Database Transaction Complete"); |
| forgottenDB = 0; |
| GC(); |
| checkCompletion(); |
| }); |
| } |