| Ensure pending open waits for version change transaction to complete. |
| |
| 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) |
| calling open() - callback should wait until VERSION_CHANGE transaction is complete |
| indexedDB.open(dbname) |
| setVersion() callback |
| starting work in VERSION_CHANGE transaction |
| self.state = 'VERSION_CHANGE started' |
| store = db.createObjectStore('test-store') |
| Expecting exception from db.transaction('test-store') |
| PASS Exception was thrown. |
| PASS code is DOMException.INVALID_STATE_ERR |
| PASS ename is 'InvalidStateError' |
| Exception message: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running. |
| store.put(0, 0) |
| in put's onsuccess |
| store.put(1, 1) |
| in put's onsuccess |
| store.put(2, 2) |
| in put's onsuccess |
| store.put(3, 3) |
| in put's onsuccess |
| store.put(4, 4) |
| in put's onsuccess |
| store.put(5, 5) |
| in put's onsuccess |
| store.put(6, 6) |
| in put's onsuccess |
| store.put(7, 7) |
| in put's onsuccess |
| store.put(8, 8) |
| in put's onsuccess |
| store.put(9, 9) |
| in put's onsuccess |
| ending work in VERSION_CHANGE transaction |
| self.state = 'VERSION_CHANGE finished' |
| open() callback - this should appear after VERSION_CHANGE transaction ends |
| PASS self.state is "VERSION_CHANGE finished" |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |