127 lines
2.8 KiB
Plaintext
127 lines
2.8 KiB
Plaintext
Test IndexedDB's cursor value property.
|
|
|
|
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)
|
|
db.createObjectStore('store')
|
|
|
|
testCursor():
|
|
transaction = db.transaction('store', 'readwrite')
|
|
store = transaction.objectStore('store')
|
|
store.put({a: 1, b: 10}, 'key1')
|
|
store.put({a: 2, b: 20}, 'key2')
|
|
store.put({a: 3, b: 30}, 'key3')
|
|
store.put({a: 4, b: 40}, 'key4')
|
|
store.put({a: 5, b: 50}, 'key5')
|
|
request = store.openCursor()
|
|
|
|
----------
|
|
Value at index: 0
|
|
cursor = request.result
|
|
PASS cursor.key is expectedKey
|
|
|
|
Check expected values:
|
|
PASS cursor.value.a is expectedA
|
|
PASS cursor.value.b is expectedB
|
|
PASS cursor.value.foo is undefined
|
|
|
|
Modify values:
|
|
cursor.value.a = 3
|
|
delete cursor.value.b
|
|
cursor.value.foo = 'bar'
|
|
|
|
Ensure modifications are retained:
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object value survives gc
|
|
gc()
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object identity
|
|
localValueRef = cursor.value
|
|
PASS localValueRef is cursor.value
|
|
|
|
----------
|
|
Value at index: 1
|
|
cursor = request.result
|
|
PASS cursor.key is expectedKey
|
|
|
|
Check expected values:
|
|
PASS cursor.value.a is expectedA
|
|
PASS cursor.value.b is expectedB
|
|
PASS cursor.value.foo is undefined
|
|
|
|
Modify values:
|
|
cursor.value.a = 3
|
|
delete cursor.value.b
|
|
cursor.value.foo = 'bar'
|
|
|
|
Ensure modifications are retained:
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object value survives gc
|
|
gc()
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object identity
|
|
localValueRef = cursor.value
|
|
PASS localValueRef is cursor.value
|
|
|
|
----------
|
|
Value at index: 3
|
|
cursor = request.result
|
|
PASS cursor.key is expectedKey
|
|
|
|
Check expected values:
|
|
PASS cursor.value.a is expectedA
|
|
PASS cursor.value.b is expectedB
|
|
PASS cursor.value.foo is undefined
|
|
|
|
Modify values:
|
|
cursor.value.a = 3
|
|
delete cursor.value.b
|
|
cursor.value.foo = 'bar'
|
|
|
|
Ensure modifications are retained:
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object value survives gc
|
|
gc()
|
|
PASS cursor.value.a is 3
|
|
PASS cursor.value.b is undefined
|
|
PASS cursor.value.foo is 'bar'
|
|
|
|
Check object identity
|
|
localValueRef = cursor.value
|
|
PASS localValueRef is cursor.value
|
|
|
|
ensureModificationsNotPersisted():
|
|
transaction = db.transaction('store', 'readonly')
|
|
store = transaction.objectStore('store')
|
|
request = store.openCursor()
|
|
cursor = request.result
|
|
PASS cursor.key is 'key1'
|
|
|
|
Check expected values:
|
|
PASS cursor.value.a is 1
|
|
PASS cursor.value.b is 10
|
|
PASS cursor.value.foo is undefined
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|