This test creates an object store then populates it, then commits that transaction. It then deletes it, but aborts that transaction. Finally it checks to make sure everything from step 1 is there as expected.

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
Initial upgrade versionchange transaction complete
Second upgrade needed: Old version - 1 New version - 2
Deleting object store
Second version change transaction abort
Request error - [object Event]
Success opening database connection - Starting final transaction
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Value gotten was AH AH AH AH AH
Final transaction complete
PASS successfullyParsed is true

TEST COMPLETE

