Check processing of pending version change requests - descending versions.

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)

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

connection2Blocked():
db.close()

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

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

connection3Error():
PASS event.target.error.name is "VersionError"
PASS successfullyParsed is true

TEST COMPLETE

