Test IndexedDB ordering of pending open calls.

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, 2)

runTest():
connection = event.target.result

First a delete request, which will defer subsequent opens. The delete itself will be blocked by the open connection.
deleteRequest = indexedDB.deleteDatabase(dbname)

Now three open requests:
order = []
request1 = indexedDB.open(dbname, 2)
request2 = indexedDB.open(dbname)
request3 = indexedDB.open(dbname, 2)

Close the connection to unblock the delete
connection.close()

onDeleteSuccess():

onRequest1Success():
order.push(1)

onRequest2Success():
order.push(2)

onRequest3Success():
order.push(3)

checkOrder():
PASS JSON.stringify(order) is "[1,2,3]"
PASS successfullyParsed is true

TEST COMPLETE

