This tests that if deleteDatabase is called while there is already an open connection to the database that the open connection gets the appropriate versionChange event. That open connection also has an in-progress transaction at the time it gets the versionChange event.

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 old version - 0 new version - 1
Requesting deleteDatabase
First connection received versionchange event: oldVersion 1, newVersion null
First version change complete
Open request error: AbortError
Delete database success: oldVersion 1, newVersion null
Recreating database to make sure it's new and empty
Second upgrade old version - 0 new version - 1
Unable to get object store in second upgrade transaction (which is correct because it should not be there)
Second database upgrade success
PASS successfullyParsed is true

TEST COMPLETE

