130 lines
2.9 KiB
Plaintext
130 lines
2.9 KiB
Plaintext
Test IndexedDB's cursor mutation
|
|
|
|
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)
|
|
|
|
setupObjectStoreAndCreateIndex():
|
|
objectStore = db.createObjectStore('foo', { keyPath: 'ss' })
|
|
index = objectStore.createIndex('name', 'name', { unique: true })
|
|
objectStoreData = [
|
|
{ ss: '237-23-7732', name: 'Bob' },
|
|
{ ss: '237-23-7733', name: 'Ann' },
|
|
{ ss: '237-23-7734', name: 'Ron' },
|
|
{ ss: '237-23-7735', name: 'Sue' },
|
|
{ ss: '237-23-7736', name: 'Joe' },
|
|
{ ss: '237-23-7737', name: 'Pat' }
|
|
]
|
|
objectStore.add(objectStoreData[0])
|
|
objectStore.add(objectStoreData[1])
|
|
objectStore.add(objectStoreData[2])
|
|
objectStore.add(objectStoreData[3])
|
|
objectStore.add(objectStoreData[4])
|
|
|
|
setupCursor():
|
|
count = 0
|
|
sawAdded = false
|
|
sawRemoved = false
|
|
request = objectStore.openCursor()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Bob"
|
|
sawRemoved = true
|
|
count++
|
|
cursor.continue()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Ann"
|
|
count++
|
|
cursor.continue()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Ron"
|
|
count++
|
|
cursor.continue()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Sue"
|
|
count++
|
|
cursor.continue()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Joe"
|
|
count++
|
|
cursor.continue()
|
|
|
|
iterateCursor():
|
|
cursor = event.target.result
|
|
|
|
checkCursorResults():
|
|
PASS count is objectStoreData.length - 1
|
|
PASS sawAdded is false
|
|
PASS sawRemoved is true
|
|
|
|
setupMutatingCursor():
|
|
count = 0
|
|
sawAdded = false
|
|
sawRemoved = false
|
|
[objectStoreDataNameSort is an array of indexes into objectStoreData in alphabetical order by name]
|
|
objectStoreDataNameSort = [ 1, 4, 5, 2, 3 ]
|
|
|
|
trans = db.transaction('foo', 'readwrite')
|
|
objectStore = trans.objectStore('foo')
|
|
request = objectStore.index('name').openCursor()
|
|
trans.oncomplete = checkMutatingCursorResults
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Ann"
|
|
count++
|
|
|
|
Mutating the object store:
|
|
Removing Bob
|
|
request = objectStore.delete(objectStoreData[0].ss)
|
|
|
|
addFinalData():
|
|
Adding Pat
|
|
request = objectStore.add(objectStoreData[objectStoreData.length - 1])
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Joe"
|
|
count++
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Pat"
|
|
sawAdded = true
|
|
count++
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Ron"
|
|
count++
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
PASS cursor.value.name is "Sue"
|
|
count++
|
|
|
|
iterateMutatingCursor():
|
|
cursor = event.target.result
|
|
|
|
checkMutatingCursorResults():
|
|
PASS count is objectStoreData.length - 1
|
|
PASS sawAdded is true
|
|
PASS sawRemoved is false
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|