76 lines
1.8 KiB
Plaintext
76 lines
1.8 KiB
Plaintext
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;
|
|
|
|
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
|
|
|