This test makes sure that a write transaction is blocked by a read transaction with overlapping scope. It also makes sure the write transaction starts after the read transaction completes.

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)
Upgrade needed: Old version - 0 New version - 1
versionchange transaction completed
Success opening database connection - Starting readonly transaction
Creating write transaction
Read transaction complete - [object Event]
Write transaction put success
Write transaction complete - [object Event]
PASS successfullyParsed is true

TEST COMPLETE

