Test that a database is recreated correctly when an open-with-version call is queued behind both a deleteDatabase and an open-with-version call 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 = "intversion-long-queue.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) prepareDatabase(): db = event.target.result connection1Success(): connection1 = event.target.result PASS db is connection1 connection1.onversionchange = connection1VersionChangeCallback request = indexedDB.open(dbname, 2) request.onsuccess = connection2Success request.onupgradeneeded = connection2UpgradeNeeded request.onblocked = connection2Blocked connection1VersionChangeCallback(): PASS event.type is "versionchange" PASS event.oldVersion is 1 PASS event.newVersion is 2 connection2Blocked(): request = indexedDB.deleteDatabase(dbname) request.onblocked = deleteDatabaseBlockedCallback request.onsuccess = deleteDatabaseSuccessCallback request = indexedDB.open(dbname, 3) request.onupgradeneeded = connection3UpgradeNeeded request.onsuccess = connection3Success connection1.close() deleteDatabaseBlockedCallback(): PASS event.oldVersion is 1 PASS event.newVersion is null deleteDatabaseSuccessCallback(): PASS event.target.result is undefined. PASS event.type is "success" connection2UpgradeNeeded(): PASS event.oldVersion is 0 PASS event.newVersion is 2 db = event.target.result PASS db.objectStoreNames.length is 0 db.createObjectStore('some object store') transaction = event.target.transaction transaction.oncomplete = connection2TransactionComplete connection2TransactionComplete(): PASS db.version is 2 connection2Success(): connection2 = event.target.result connection2.onversionchange = connection2VersionChangeEvent connection2VersionChangeEvent(): PASS event.type is "versionchange" PASS event.oldVersion is 2 PASS event.newVersion is 3 connection2.close() connection3UpgradeNeeded(): gotUpgradeNeededEvent = true PASS event.newVersion is 3 PASS event.oldVersion is 2 connection3Success(): PASS gotUpgradeNeededEvent is true PASS event.target.result.objectStoreNames.length is 1 PASS successfullyParsed is true TEST COMPLETE