This tests some obvious failures that can happen while calling IDBObjectStore.put() and IDBObjectStore.clear().

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 put record into object store with an invalid key
Failed to put record into object store that has been deleted
Failed to clear object store that has been deleted
Initial upgrade versionchange transaction complete
Failed to clear object store in read-only transaction
Failed to put record into object store with inactive transaction
Failed to clear object store with inactive transaction
readwrite transaction complete
PASS successfullyParsed is true

TEST COMPLETE

