Ensure cursor calls behave as expected after cursor has run to the end.

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;

dbname = "cursor-finished.html"

prepareDatabase():
indexedDB.deleteDatabase(dbname)

onDeleteSuccess():
indexedDB.open(dbname, 1)

onUpgradeNeeded():
db = event.target.result
store = db.createObjectStore('store')
store.put(1, 1)
store.put(2, 2)

onOpenSuccess():
db = event.target.result
transaction = db.transaction('store', 'readwrite')
store = transaction.objectStore('store')
count = 0
cursorRequest = store.openCursor()

onCursorSuccess():
cursor = event.target.result
PASS cursor is non-null.
count++
savedCursor = cursor
cursor.continue()

onCursorSuccess():
cursor = event.target.result
PASS cursor is non-null.
count++
savedCursor = cursor
cursor.continue()

onCursorSuccess():
cursor = event.target.result
PASS cursor is null
PASS savedCursor is non-null.

Expecting exception from savedCursor.update('value')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Expecting exception from savedCursor.advance(1)
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Expecting exception from savedCursor.continue()
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Expecting exception from savedCursor.continue('key')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Expecting exception from savedCursor.delete()
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'

PASS successfullyParsed is true

TEST COMPLETE

