| Test event propogation on IDBTransaction. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; |
| |
| indexedDB.deleteDatabase(dbname) |
| indexedDB.open(dbname) |
| store = db.createObjectStore('storeName', null) |
| store.add({x: 'value', y: 'zzz'}, 'key') |
| Verifing abort |
| trans = db.transaction(['storeName'], 'readwrite') |
| trans.onabort = abortFiredCallback |
| trans.oncomplete = unexpectedAbortCallback |
| db.addEventListener('abort', dbAbortCaptureCallback, true) |
| db.addEventListener('abort', dbAbortBubbleCallback, false) |
| db.addEventListener('complete', unexpectedCompleteCallback, true) |
| db.addEventListener('complete', unexpectedCompleteCallback, false) |
| store = trans.objectStore('storeName') |
| store.add({x: 'value', y: 'zzz'}, 'key') |
| |
| In IDBDatabase abort capture |
| PASS dbCaptureFired is false |
| PASS abortFired is false |
| PASS dbBubbleFired1 is false |
| PASS event.target is trans |
| PASS event.currentTarget is db |
| |
| In abort handler |
| PASS dbCaptureFired is true |
| PASS abortFired is false |
| PASS dbBubbleFired1 is false |
| PASS event.target is trans |
| PASS event.currentTarget is trans |
| |
| In IDBDatabase error bubble |
| PASS dbCaptureFired is true |
| PASS abortFired is true |
| PASS dbBubbleFired1 is false |
| PASS event.target is trans |
| PASS event.currentTarget is db |
| |
| Verifing success. |
| trans = db.transaction(['storeName'], 'readwrite') |
| trans.oncomplete = completeFiredCallback |
| trans.onabort = unexpectedAbortCallback |
| db.removeEventListener('abort', dbAbortCaptureCallback, true) |
| db.removeEventListener('abort', dbAbortBubbleCallback, false) |
| db.removeEventListener('complete', unexpectedCompleteCallback, true) |
| db.removeEventListener('complete', unexpectedCompleteCallback, false) |
| db.addEventListener('complete', dbCompleteCaptureCallback, true) |
| db.addEventListener('complete', dbCompleteBubbleCallback, false) |
| db.addEventListener('abort', unexpectedAbortCallback, true) |
| db.addEventListener('abort', unexpectedAbortCallback, false) |
| store = trans.objectStore('storeName') |
| store.add({x: 'value', y: 'zzz'}, 'key2') |
| |
| In IDBDatabase complete capture |
| PASS dbCaptureFired is false |
| PASS completeFired is false |
| PASS dbBubbleFired2 is false |
| PASS event.target is trans |
| PASS event.currentTarget is db |
| |
| In IDBRequest handler |
| PASS dbCaptureFired is true |
| PASS completeFired is false |
| PASS dbBubbleFired2 is false |
| PASS event.target is trans |
| PASS event.currentTarget is trans |
| |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |