[Worker] Test IndexedDB workers, recursion, and transaction termination.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Starting worker: resources/transaction-complete-workers.js
[Worker] indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
[Worker]
[Worker] indexedDB.deleteDatabase(dbname)
[Worker] indexedDB.open(dbname)
[Worker]
[Worker] prepareDatabase():
[Worker] db.createObjectStore('store')
[Worker]
[Worker] createTransaction():
[Worker] transaction = db.transaction('store')
[Worker] store = transaction.objectStore('store')
PASS [Worker] Transaction completed
[Worker] Expecting exception from store.get(0)
PASS [Worker] Exception was thrown.
PASS [Worker] code is 0
PASS [Worker] ename is 'TransactionInactiveError'
[Worker] Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
[Worker]
[Worker] recursionTest():
[Worker] transaction = db.transaction('store')
[Worker] store = transaction.objectStore('store')
[Worker] store.get(0)
PASS [Worker] transaction is active
[Worker] recursion depth: 1
[Worker] store.get(0)
PASS [Worker] transaction is still active
[Worker] recursion depth: 2
[Worker] store.get(0)
PASS [Worker] transaction is still active
[Worker] recursion depth: 3
[Worker] store.get(0)
PASS [Worker] transaction is still active
[Worker] recursion depth: 3
[Worker] store.get(0)
PASS [Worker] transaction is still active
[Worker] recursion depth: 2
[Worker] store.get(0)
PASS [Worker] transaction is still active
[Worker] recursion depth: 1
[Worker] store.get(0)
PASS [Worker] transaction is still active
PASS [Worker] transaction completed
[Worker] Expecting exception from store.get(0)
PASS [Worker] Exception was thrown.
PASS [Worker] code is 0
PASS [Worker] ename is 'TransactionInactiveError'
[Worker] Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
[Worker]
[Worker] trying a timeout callback:
[Worker] setTimeout(timeoutTest, 0)
[Worker]
[Worker] timeoutTest():
[Worker] transaction = db.transaction('store')
[Worker] store = transaction.objectStore('store')
PASS [Worker] transaction started in setTimeout() callback completed
[Worker] Expecting exception from store.get(0)
PASS [Worker] Exception was thrown.
PASS [Worker] code is 0
PASS [Worker] ename is 'TransactionInactiveError'
[Worker] Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
[Worker]
[Worker] errorTest():
[Worker] self.old_onerror = self.onerror
[Worker] self.onerror = errorHandler
[Worker]
[Worker] errorHandler():
[Worker] self.onerror = self.old_onerror
[Worker] transaction = db.transaction('store')
[Worker] store = transaction.objectStore('store')
Got expected error from worker, ignoring
event.preventDefault()
PASS [Worker] Transaction completed
[Worker] Expecting exception from store.get(0)
PASS [Worker] Exception was thrown.
PASS [Worker] code is 0
PASS [Worker] ename is 'TransactionInactiveError'
[Worker] Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
PASS successfullyParsed is true

TEST COMPLETE

