64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
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
|
|
|