Verify that a transaction with an error aborts unless preventDefault() is called. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". webkitIndexedDB.open('name') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... Success event fired: PASS 'result' in event is true PASS 'code' in event is false PASS 'message' in event is false PASS 'source' in event is true PASS event.source != null is true PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true PASS 'readyState' in event.target is true PASS event.target.readyState is event.target.DONE db = event.result db.setVersion('new version') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... setVersionSuccess(): Success event fired: PASS 'result' in event is true PASS 'code' in event is false PASS 'message' in event is false PASS 'source' in event is true PASS event.source != null is true PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true PASS 'readyState' in event.target is true PASS event.target.readyState is event.target.DONE trans = event.result PASS trans !== null is true trans.oncomplete = addData Deleted all object stores. db.createObjectStore('storeName', null) trans = db.transaction([], webkitIDBTransaction.READ_WRITE) trans.onabort = unexpectedAbortCallback trans.oncomplete = transactionCompleted store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... Success event fired: PASS 'result' in event is true PASS 'code' in event is false PASS 'message' in event is false PASS 'source' in event is true PASS event.source != null is true PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true PASS 'readyState' in event.target is true PASS event.target.readyState is event.target.DONE event.source.add({x: 'value', y: 'zzz'}, 'key') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... event.preventDefault() PASS Transaction completed trans = db.transaction([], webkitIDBTransaction.READ_WRITE) trans.onabort = transactionAborted1 trans.oncomplete = unexpectedCompleteCallback store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... Doing nothing to prevent the default action... PASS Transaction aborted trans = db.transaction([], webkitIDBTransaction.READ_WRITE) trans.onabort = transactionAborted2 trans.oncomplete = unexpectedCompleteCallback store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... Omitting an onerror handler PASS Transaction aborted PASS successfullyParsed is true TEST COMPLETE