379 lines
19 KiB
Plaintext
379 lines
19 KiB
Plaintext
Test that IndexedDB objects that have been deleted throw exceptions
|
|
|
|
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)
|
|
|
|
testStore():
|
|
deletedStore = connection.createObjectStore('deletedStore')
|
|
connection.deleteObjectStore('deletedStore')
|
|
|
|
Expecting exception from deletedStore.put(0, 0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
|
|
Expecting exception from deletedStore.add(0, 0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
|
|
Expecting exception from deletedStore.delete(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'delete' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.delete(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'delete' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.get(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.get(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.clear()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'clear' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.openCursor()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.openCursor(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.openCursor(0, 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.openCursor(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.openCursor(IDBKeyRange.only(0), 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.createIndex('name', 'path')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.index('name')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'index' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.deleteIndex('name')
|
|
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.
|
|
Expecting exception from deletedStore.count()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.count(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBObjectStore': The object store has been deleted.
|
|
Expecting exception from deletedStore.count(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBObjectStore': The object store has been deleted.
|
|
|
|
testIndex():
|
|
store = connection.createObjectStore('store')
|
|
deletedIndex = store.createIndex('deletedIndex', 'path')
|
|
store.deleteIndex('deletedIndex')
|
|
|
|
Expecting exception from deletedIndex.openCursor()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openCursor(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openCursor(0, 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openCursor(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openCursor(IDBKeyRange.only(0), 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openKeyCursor()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openKeyCursor(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openKeyCursor(0, 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openKeyCursor(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.openKeyCursor(IDBKeyRange.only(0), 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.get(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.get(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.getKey(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.getKey(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.count()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.count(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from deletedIndex.count(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
|
|
testTransitiveDeletion():
|
|
deletedStore = connection.createObjectStore('deletedStore')
|
|
indexOfDeletedStore = deletedStore.createIndex('index', 'path')
|
|
connection.deleteObjectStore('deletedStore')
|
|
|
|
Expecting exception from indexOfDeletedStore.openCursor()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openCursor(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openCursor(0, 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openCursor(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openCursor(IDBKeyRange.only(0), 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openKeyCursor()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openKeyCursor(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openKeyCursor(0, 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openKeyCursor(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.openKeyCursor(IDBKeyRange.only(0), 'next')
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.get(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.get(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.getKey(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.getKey(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.count()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.count(0)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
Expecting exception from indexOfDeletedStore.count(IDBKeyRange.only(0))
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.
|
|
|
|
testObjectStoreCursor():
|
|
deletedStore = connection.createObjectStore('deletedStore')
|
|
deletedStore.put(0, 0)
|
|
deletedStore.openCursor()
|
|
cursor = request.result
|
|
PASS cursor.key is 0
|
|
PASS cursor.value is 0
|
|
connection.deleteObjectStore('deletedStore')
|
|
Expecting exception from cursor.delete()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'delete' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.update(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'update' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.continue()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'continue' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.advance(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'advance' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
|
|
testIndexCursor():
|
|
store.put({id: 123}, 0)
|
|
deletedIndex = store.createIndex('deletedIndex', 'id')
|
|
deletedIndex.openCursor()
|
|
cursor = request.result
|
|
PASS cursor.key is 123
|
|
PASS cursor.primaryKey is 0
|
|
store.deleteIndex('deletedIndex')
|
|
Expecting exception from cursor.delete()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'delete' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.update(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'update' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.continue()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'continue' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.advance(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'advance' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
|
|
testIndexOfDeletedStoreCursor():
|
|
deletedStore = connection.createObjectStore('deletedStore')
|
|
deletedStore.put({id: 123}, 0)
|
|
index = deletedStore.createIndex('index', 'id')
|
|
index.openCursor()
|
|
cursor = request.result
|
|
PASS cursor.key is 123
|
|
PASS cursor.primaryKey is 0
|
|
connection.deleteObjectStore('deletedStore')
|
|
Expecting exception from cursor.delete()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'delete' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.update(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'update' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.continue()
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'continue' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
Expecting exception from cursor.advance(1)
|
|
PASS Exception was thrown.
|
|
PASS code is DOMException.INVALID_STATE_ERR
|
|
PASS ename is 'InvalidStateError'
|
|
Exception message: Failed to execute 'advance' on 'IDBCursor': The cursor's source or effective object store has been deleted.
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|