blob: 640af262218e5a7b195e72ac41d63be319acf52d [file] [log] [blame]
Test that IndexedDB's cursor key/primaryKey/value properties preserve mutations.
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, 1)
onUpgradeNeeded():
db = event.target.result
store = db.createObjectStore('store')
index = store.createIndex('index', 'id')
store.put({id: ['indexKey']}, ['primaryKey'])
onOpenSuccess():
db = event.target.result
trans = db.transaction('store')
store = trans.objectStore('store')
index = store.index('index')
request = index.openCursor()
onCursorSuccess():
cursor = event.target.result
PASS cursor is non-null.
PASS areArraysEqual(cursor.key, ['indexKey']) is true
PASS areArraysEqual(cursor.primaryKey, ['primaryKey']) is true
Check identity:
v = cursor.key
PASS v === cursor.key is true
Check read-only:
cursor.key = null
PASS v === cursor.key is true
Check mutability:
cursor.key.expando = 123
PASS cursor.key.expando is 123
Check identity:
v = cursor.primaryKey
PASS v === cursor.primaryKey is true
Check read-only:
cursor.primaryKey = null
PASS v === cursor.primaryKey is true
Check mutability:
cursor.primaryKey.expando = 123
PASS cursor.primaryKey.expando is 123
Check identity:
v = cursor.value
PASS v === cursor.value is true
Check read-only:
cursor.value = null
PASS v === cursor.value is true
Check mutability:
cursor.value.expando = 123
PASS cursor.value.expando is 123
PASS successfullyParsed is true
TEST COMPLETE