Check processing of pending version change requests - same versions.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

dbname = "intversion-pending-version-changes-same.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)


onConnection1Open():
indexedDB.open(dbname, 2)
indexedDB.open(dbname, 2)


connection2Blocked():
db.close()


connection2UpgradeNeeded():
PASS event.oldVersion is 1
PASS event.newVersion is 2


connection2OpenSuccess():
db2 = event.target.result
PASS db2.version is 2


connection3OpenSuccess():
db3 = event.target.result
PASS db3.version is 2
PASS successfullyParsed is true

TEST COMPLETE

