Check processing of pending version change requests - increasing 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, 2)
indexedDB.open(dbname, 3)

FIXME: The open call with higher version should execute first.

connection2Blocked():
db.close()

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

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

connection3Blocked():
db2.close()

connection3UpgradeNeeded():
PASS event.oldVersion is 2
PASS event.newVersion is 3

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

TEST COMPLETE

