blob: 3ef9de25fd02d8094b92bb72d7b28319676acdb5 [file] [log] [blame]
Test IndexedDB transaction basics.
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)
PASS self.db.objectStoreNames is []
PASS self.db.objectStoreNames.length is 0
PASS self.db.objectStoreNames.contains('storeFail') is false
request = newConnection()
indexedDB.open(dbname, 2)
addRemoveIDBObjects():
trans = event.target.transaction
PASS trans is non-null.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
db.deleteObjectStore('storeFail')
Expecting exception from store.deleteIndex('indexFail')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
testSetVersionAbort2():
PASS self.db.objectStoreNames is []
PASS self.db.objectStoreNames.length is 0
PASS self.db.objectStoreNames.contains('storeFail') is false
request = newConnection()
indexedDB.open(dbname, 3)
addRemoveAddIDBObjects():
trans = event.target.transaction
PASS trans is non-null.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
db.deleteObjectStore('storeFail')
Expecting exception from store.deleteIndex('indexFail')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
testSetVersionAbort3():
PASS event.cancelable is false
PASS self.db.objectStoreNames is []
PASS self.db.objectStoreNames.length is 0
PASS self.db.objectStoreNames.contains('storeFail') is false
request = newConnection()
indexedDB.open(dbname, 4)
addIDBObjects():
PASS event.cancelable is false
trans = event.target.transaction
PASS trans is non-null.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
testInactiveAbortedTransaction():
Expecting exception from index.openCursor()
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
Expecting exception from index.openKeyCursor()
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
Expecting exception from index.get(0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.
Expecting exception from index.getKey(0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.
Expecting exception from index.count()
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
Expecting exception from store.put(0, 0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
Expecting exception from store.add(0, 0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
Expecting exception from store.delete(0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'delete' on 'IDBObjectStore': The object store has been deleted.
Expecting exception from store.clear()
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'clear' on 'IDBObjectStore': The object store has been deleted.
Expecting exception from store.get(0)
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'get' on 'IDBObjectStore': The object store has been deleted.
Expecting exception from store.openCursor()
PASS Exception was thrown.
PASS code is 11
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
testSetVersionAbort4():
PASS self.db.objectStoreNames is []
PASS self.db.objectStoreNames.length is 0
PASS self.db.objectStoreNames.contains('storeFail') is false
request = newConnection()
indexedDB.open(dbname, 5)
addIDBObjectsAndCommit():
trans = event.target.transaction
PASS trans is non-null.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
testInactiveCompletedTransaction():
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.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.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.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.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 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.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.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.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.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.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.
testSetVersionAbort5():
PASS db.objectStoreNames is ['storeFail']
PASS db.objectStoreNames.length is 1
PASS db.objectStoreNames.contains('storeFail') is true
request = newConnection()
indexedDB.open(dbname, 6)
removeIDBObjects():
trans = event.target.transaction
PASS trans is non-null.
store = trans.objectStore('storeFail')
store.deleteIndex('indexFail')
db.deleteObjectStore('storeFail')
testSetVersionAbort6():
PASS db.objectStoreNames is ['storeFail']
PASS db.objectStoreNames.length is 1
PASS db.objectStoreNames.contains('storeFail') is true
request = newConnection()
indexedDB.open(dbname, 7)
setVersionSuccess():
trans = event.target.transaction
PASS trans is non-null.
Deleted all object stores.
db.createObjectStore('storeName', null)
completeCallback():
PASS event.cancelable is false
PASS complete event fired
db.transaction(['storeName'])
store = transaction.objectStore('storeName')
PASS store.name is "storeName"
PASS complete event fired
Verifying DOMStringList works as argument for IDBDatabase.transaction()
db.objectStoreNames is [object DOMStringList]
... which contains: ["storeName"]
transaction = db.transaction(db.objectStoreNames)
PASS no exception thrown
PASS transaction.objectStore("storeName") is non-null.
PASS all stores present in transaction
Verify that specifying an invalid mode raises an exception
Expecting TypeError exception from db.transaction(['storeName'], 'lsakjdf')
PASS Exception was thrown.
PASS db.transaction(['storeName'], 'lsakjdf') threw TypeError: Argument 2 ('mode') to IDBDatabase.transaction must be one of: "readonly", "readwrite", "versionchange"
Test that null and undefined are treated as strings
Expecting exception from db.transaction(null)
PASS Exception was thrown.
PASS code is DOMException.NOT_FOUND_ERR
PASS ename is 'NotFoundError'
Exception message: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
Expecting exception from db.transaction(undefined)
PASS Exception was thrown.
PASS code is DOMException.NOT_FOUND_ERR
PASS ename is 'NotFoundError'
Exception message: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
request = newConnection()
indexedDB.open(dbname, 8)
db.createObjectStore('null')
db.createObjectStore('undefined')
PASS transaction = db.transaction(null) did not throw exception.
PASS transaction.objectStore('null') is non-null.
PASS transaction = db.transaction(undefined) did not throw exception.
PASS transaction.objectStore('undefined') is non-null.
PASS successfullyParsed is true
TEST COMPLETE