Regression test for IDBRequest issue calling continue on a cursor then aborting.

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)
db.createObjectStore('store')

testCursor:
transaction = db.transaction('store', 'readwrite')
store = transaction.objectStore('store')
store.add('value1', 'key1')
store.add('value2', 'key2')

state = 0
request = store.openCursor()

'success' event fired at request.
PASS ++state is 1
request.result.continue()

'error' event fired at request.
PASS ++state is 2

'abort' event fired at transaction.
PASS ++state is 3
PASS successfullyParsed is true

TEST COMPLETE

