blob: 602e9fd7f50c3e778b365f65bc52c8bbc6295d95 [file] [log] [blame]
Test IndexedDB transaction internal active flag.
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)
store = db.createObjectStore('store')
store.createIndex('index', 'keypath')
runTransaction():
transaction = db.transaction('store', 'readwrite')
Verify that transactions are created with |active| flag set:
store = transaction.objectStore('store')
index = store.index('index')
PASS store.add(0, 0) did not throw exception.
PASS store.put(0, 0) did not throw exception.
PASS store.get(0) did not throw exception.
PASS store.get(IDBKeyRange.only(0)) did not throw exception.
PASS store.delete(0) did not throw exception.
PASS store.delete(IDBKeyRange.only(0)) did not throw exception.
PASS store.count() did not throw exception.
PASS store.count(0) did not throw exception.
PASS store.count(IDBKeyRange.only(0)) did not throw exception.
PASS store.clear() did not throw exception.
PASS store.openCursor() did not throw exception.
PASS store.openCursor(0) did not throw exception.
PASS store.openCursor(0, 'next') did not throw exception.
PASS store.openCursor(IDBKeyRange.only(0)) did not throw exception.
PASS store.openCursor(IDBKeyRange.only(0), 'next') did not throw exception.
PASS index.get(0) did not throw exception.
PASS index.get(IDBKeyRange.only(0)) did not throw exception.
PASS index.getKey(0) did not throw exception.
PASS index.getKey(IDBKeyRange.only(0)) did not throw exception.
PASS index.count() did not throw exception.
PASS index.count(0) did not throw exception.
PASS index.count(IDBKeyRange.only(0)) did not throw exception.
PASS index.openCursor() did not throw exception.
PASS index.openCursor(0) did not throw exception.
PASS index.openCursor(0, 'next') did not throw exception.
PASS index.openCursor(IDBKeyRange.only(0)) did not throw exception.
PASS index.openCursor(IDBKeyRange.only(0), 'next') did not throw exception.
PASS index.openKeyCursor() did not throw exception.
PASS index.openKeyCursor(0) did not throw exception.
PASS index.openKeyCursor(0, 'next') did not throw exception.
PASS index.openKeyCursor(IDBKeyRange.only(0)) did not throw exception.
PASS index.openKeyCursor(IDBKeyRange.only(0), 'next') did not throw exception.
Transaction shouldn't be active inside a non-IDB-event callback
setTimeout(testTimeout, 0)
testTimeout():
store = transaction.objectStore('store')
index = store.index('index')
Expecting exception from store.add(0, 0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
Expecting exception from store.put(0, 0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
Expecting exception from store.get(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.get(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: A request was placed against a transaction which is currently not active, or which is finished.
Expecting exception from store.delete(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.delete(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.count()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.count(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.count(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.clear()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'clear' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.openCursor()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.openCursor(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.openCursor(0, 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.openCursor(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from store.openCursor(IDBKeyRange.only(0), 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
Expecting exception from index.get(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'get' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.get(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'get' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.getKey(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.getKey(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.count()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.count(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.count(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'count' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openCursor()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openCursor(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openCursor(0, 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openCursor(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openCursor(IDBKeyRange.only(0), 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openKeyCursor()
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openKeyCursor(0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openKeyCursor(0, 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openKeyCursor(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
Expecting exception from index.openKeyCursor(IDBKeyRange.only(0), 'next')
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
testEventCallback():
Transaction should be active inside a non-IDB-event callback
store = transaction.objectStore('store')
index = store.index('index')
PASS store.add(0, 0) did not throw exception.
PASS store.put(0, 0) did not throw exception.
PASS store.get(0) did not throw exception.
PASS store.get(IDBKeyRange.only(0)) did not throw exception.
PASS store.delete(0) did not throw exception.
PASS store.delete(IDBKeyRange.only(0)) did not throw exception.
PASS store.count() did not throw exception.
PASS store.count(0) did not throw exception.
PASS store.count(IDBKeyRange.only(0)) did not throw exception.
PASS store.clear() did not throw exception.
PASS store.openCursor() did not throw exception.
PASS store.openCursor(0) did not throw exception.
PASS store.openCursor(0, 'next') did not throw exception.
PASS store.openCursor(IDBKeyRange.only(0)) did not throw exception.
PASS store.openCursor(IDBKeyRange.only(0), 'next') did not throw exception.
PASS index.get(0) did not throw exception.
PASS index.get(IDBKeyRange.only(0)) did not throw exception.
PASS index.getKey(0) did not throw exception.
PASS index.getKey(IDBKeyRange.only(0)) did not throw exception.
PASS index.count() did not throw exception.
PASS index.count(0) did not throw exception.
PASS index.count(IDBKeyRange.only(0)) did not throw exception.
PASS index.openCursor() did not throw exception.
PASS index.openCursor(0) did not throw exception.
PASS index.openCursor(0, 'next') did not throw exception.
PASS index.openCursor(IDBKeyRange.only(0)) did not throw exception.
PASS index.openCursor(IDBKeyRange.only(0), 'next') did not throw exception.
PASS index.openKeyCursor() did not throw exception.
PASS index.openKeyCursor(0) did not throw exception.
PASS index.openKeyCursor(0, 'next') did not throw exception.
PASS index.openKeyCursor(IDBKeyRange.only(0)) did not throw exception.
PASS index.openKeyCursor(IDBKeyRange.only(0), 'next') did not throw exception.
transactionComplete():
Expecting exception from store = transaction.objectStore('store')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'objectStore' on 'IDBTransaction': The transaction finished.
PASS successfullyParsed is true
TEST COMPLETE