| Regression test for WK82678 - don't commit after a blocked event |
| |
| 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) |
| db.onversionchange = onVersionChange |
| store = db.createObjectStore('store1') |
| |
| holdConnection(): |
| holding connection until versionchange event |
| |
| Starting worker: resources/dont-commit-on-blocked-worker.js |
| [Worker] indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; |
| [Worker] |
| [Worker] opening database connection |
| [Worker] request = indexedDB.open('dont-commit-on-blocked.html', 2) |
| [Worker] state = 'setversion' |
| [Worker] request.onblocked = onSetVersionBlocked |
| [Worker] request.onupgradeneeded = onSetVersionSuccess |
| [Worker] spinning for 100ms to let events be queued but prevent dispatch |
| [Worker] done spinning |
| [Worker] |
| [Worker] onSetVersionBlocked(): |
| PASS [Worker] state is "setversion" |
| [Worker] state = 'blocked' |
| [Worker] |
| [Worker] onSetVersionSuccess(): |
| [Worker] db = event.target.result |
| PASS [Worker] state is "blocked" |
| [Worker] state = 'success' |
| [Worker] creating object store - will fail if transaction commited after blocked event |
| [Worker] db.createObjectStore('store2') |
| [Worker] |
| [Worker] onTransactionComplete |
| PASS [Worker] state is "success" |
| PASS [Worker] Number(db.version) is 2 |
| PASS [Worker] db.objectStoreNames.contains('store1') is true |
| PASS [Worker] db.objectStoreNames.contains('store2') is true |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |