Check that readwrite transactions with overlapping scopes do not run in parallel.

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;

dbname = "transaction-readwrite-exclusive.html"
indexedDB.deleteDatabase(dbname)

openConnection1():
indexedDB.open(dbname, 1)

openOnUpgradeNeeded1():
db = event.target.result
store = db.createObjectStore('store')

openOnSuccess():
db1 = event.target.result

openConnection2():
indexedDB.open(dbname, 1)

openOnSuccess2():
db2 = event.target.result

startWork():
transaction1 = db1.transaction('store', 'readwrite')
transaction2 = db2.transaction('store', 'readwrite')
transaction1PutSuccess = false
transaction1Complete = false
transaction2PutSuccess = false
transaction2Complete = false

Keep transaction1 alive for a while and ensure transaction2 doesn't start
count = 0
transaction1.objectStore('store').put(1, count++)
transaction2.objectStore('store').put(2, 0)

put1OnSuccess():
transaction1PutSuccess = true
transaction1.objectStore('store').put(1, count++)

put1OnSuccess():
transaction1PutSuccess = true
transaction1.objectStore('store').put(1, count++)

put1OnSuccess():
transaction1PutSuccess = true
transaction1.objectStore('store').put(1, count++)

put1OnSuccess():
transaction1PutSuccess = true
transaction1.objectStore('store').put(1, count++)

put1OnSuccess():
transaction1PutSuccess = true

onTransaction1Complete():
transaction1Complete = true
PASS transaction2PutSuccess is false
PASS transaction2Complete is false

put2OnSuccess():
transaction2PutSuccess = true
PASS transaction1Complete is true

onTransaction2Complete():
transaction2Complete = true
PASS transaction1PutSuccess is true
PASS transaction1Complete is true
PASS transaction2PutSuccess is true
PASS successfullyParsed is true

TEST COMPLETE

