chromium/third_party/blink/web_tests/storage/indexeddb/transaction-active-flag-expected.txt

Test IndexedDB transaction internal active flag.

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

dbname = "transaction-active-flag.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store = db.createObjectStore('store')
store.createIndex('index', 'keypath')


runTransaction():
transaction = db.transaction('store', 'readwrite', {durability: 'relaxed'})


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 execute 'add' on 'IDBObjectStore': The transaction is not active.
Expecting exception from store.put(0, 0)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'put' on 'IDBObjectStore': The transaction is not active.
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 not active.
Expecting exception from store.get(IDBKeyRange.only(0))
PASS Exception was thrown.
PASS code is 0
PASS ename is 'TransactionInactiveError'
Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.
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 not active.


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 has finished.
PASS successfullyParsed is true

TEST COMPLETE