| This test ensures that exceptions are handled correctly by the various callback mechanisms present in WebCore. |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var db = openDatabase("exception-info-test", "1.0", "Test for exception information thrown by callbacks and timers", 1); |
| |
| function errorObject(msg) { |
| return { message: "FAIL: message incorrectly pulled from thrown object in " + msg, |
| toString: function() {return "PASS: toString called on exception value thrown from " + msg} } |
| } |
| |
| function eventTest() { |
| setTimeout(dbTransactionTest, 0); |
| throw errorObject("event handler"); |
| } |
| |
| function dbTransactionTest() { |
| db.transaction(function(tx) { |
| setTimeout(dbStatementTest, 0); |
| throw errorObject("sql transaction callback"); |
| }); |
| } |
| |
| function dbStatementTest() { |
| db.transaction( |
| function(tx) { |
| tx.executeSql("I am bogus syntax", [], function() { |
| }, function(tx, error) { |
| setTimeout(timerTest, 0); |
| throw errorObject("sql error callback"); |
| }); |
| }); |
| } |
| |
| function timerTest() { |
| if (window.testRunner) |
| setTimeout("testRunner.notifyDone()", 0); |
| throw errorObject("timer"); |
| } |
| |
| window.onload = eventTest; |
| </script> |
| |