Test IndexedDB readonly properties

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)
transaction = event.target.transaction;
trying to set readonly property transaction.mode
transaction.mode = 666
PASS transaction.mode is still versionchange
trying to set readonly property transaction.db
transaction.db = this
PASS transaction.db is still [object IDBDatabase]
Deleted all object stores.
objectStore = db.createObjectStore('foo');
trying to set readonly property objectStore.keyPath
objectStore.keyPath = 'bar'
PASS objectStore.keyPath is still null
result = objectStore.add({}, 'first');
result = objectStore.openCursor();
cursor = event.target.result;
trying to set readonly property cursor.source
cursor.source = this
PASS cursor.source is still [object IDBObjectStore]
trying to set readonly property cursor.direction
cursor.direction = 666
PASS cursor.direction is still next
trying to set readonly property cursor.key
cursor.key = Infinity
PASS cursor.key is still first
trying to set readonly property cursor.primaryKey
cursor.primaryKey = Infinity
PASS cursor.primaryKey is still first
index = objectStore.createIndex('first', 'first');
trying to set readonly property index.objectStore
index.objectStore = this
PASS index.objectStore is still [object IDBObjectStore]
trying to set readonly property index.keyPath
index.keyPath = 'bar'
PASS index.keyPath is still first
trying to set readonly property index.unique
index.unique = true
PASS index.unique is still false
trying to set readonly property keyRange.lower
keyRange.lower = Infinity
PASS keyRange.lower is still first
trying to set readonly property keyRange.upper
keyRange.upper = Infinity
PASS keyRange.upper is still first
trying to set readonly property keyRange.lowerOpen
keyRange.lowerOpen = true
PASS keyRange.lowerOpen is still false
trying to set readonly property keyRange.upperOpen
keyRange.upperOpen = true
PASS keyRange.upperOpen is still false
trying to set readonly property request.result
request.result = Infinity
PASS request.result is still [object IDBDatabase]
trying to set readonly property request.error
request.error = {}
PASS request.error is still null
trying to set readonly property request.source
request.source = this
PASS request.source is still null
trying to set readonly property request.transaction
request.transaction = this
PASS request.transaction is still null
trying to set readonly property request.readyState
request.readyState = 666
PASS request.readyState is still done
db = event.target.result
trying to set readonly property db.name
db.name = 'bar'
PASS db.name is still readonly-private.html
PASS successfullyParsed is true

TEST COMPLETE

