This tests some obvious failures that can happen while opening cursors.

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)
Initial upgrade needed: Old version - 0 New version - 1
Failed to open object store cursor with invalid keypath
Failed to open object store cursor with invalid direction
Failed to open index cursor with invalid keypath
Failed to open index cursor with invalid direction
Failed to open index key cursor with invalid keypath
Failed to open index key cursor with invalid direction
Failed to open object store cursor on deleted object store
Failed to open index cursor on deleted object store
Failed to open index key cursor on deleted object store
Initial upgrade versionchange transaction complete
Failed to open object store cursor from completed transaction
Failed to open index cursor from completed transaction
Failed to open index key cursor from completed transaction
Failed to open object store cursor from inactive transaction
Failed to open index cursor from inactive transaction
Failed to open index key cursor from inactive transaction
readonly transaction complete
PASS successfullyParsed is true

TEST COMPLETE

