Test IndexedDB: iterating through index cursors with keys and key ranges

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)
objectStore = db.createObjectStore(objectStoreName);
First, add all our data to the object store.
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
Now create the indexes.
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
PASS objectStore.indexNames.length is indexData.length
objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
PASS objectStore.indexNames.length is indexData.length
PASS found is true
index = objectStore.index(indexData[i].name);
PASS index.name is indexData[i].name
PASS index.keyPath is indexData[i].keyPath
PASS index.unique is true
PASS found is true
index = objectStore.index(indexData[i].name);
PASS index.name is indexData[i].name
PASS index.keyPath is indexData[i].keyPath
PASS index.unique is false
PASS found is true
index = objectStore.index(indexData[i].name);
PASS index.name is indexData[i].name
PASS index.keyPath is indexData[i].keyPath
PASS index.unique is false
request = objectStore.index('name').getKey('Bob');
PASS event.target.result is '237-23-7732'
request = objectStore.index('name').get('Bob');
PASS event.target.result.name is 'Bob'
PASS event.target.result.height is 60
PASS event.target.result.weight is 120
request = objectStore.index('name').openKeyCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS 'value' in cursor is false
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreData.length
request = objectStore.index('weight').openKeyCursor(null, 'next');
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataWeightSort[keyIndex].value.weight
PASS cursor.primaryKey is objectStoreDataWeightSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreData.length
objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
keyIndex = objectStoreDataNameSort.length - 1;
request = objectStore.index('name').openKeyCursor(null, 'prev');
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex--;
cursor = event.target.result;
PASS keyIndex is -1
keyRange = IDBKeyRange.bound('Bob', 'Ron');
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 2;
keyRange = IDBKeyRange.bound('Bob', 'Ron', true);
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 1;
keyRange = IDBKeyRange.bound('Bob', 'Ron', false, true);
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 2;
keyRange = IDBKeyRange.bound('Bob', 'Ron', true, true);
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 1;
keyRange = IDBKeyRange.lowerBound('Bob');
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreDataNameSort.length
keyIndex = 2;
keyRange = IDBKeyRange.lowerBound('Bob', true);
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreDataNameSort.length
keyIndex = 0;
keyRange = IDBKeyRange.upperBound('Joe');
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 3
keyIndex = 0;
keyRange = IDBKeyRange.upperBound('Joe', true);
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 2
keyIndex = 3;
keyRange = IDBKeyRange.only('Pat');
request = objectStore.index('name').openKeyCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 0;
request = objectStore.index('name').openCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreDataNameSort.length
keyIndex = objectStoreDataNameSort.length - 1;
request = objectStore.index('name').openCursor(null, 'prev');
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS keyIndex is -1
keyIndex = 1;
keyRange = IDBKeyRange.bound('Bob', 'Ron');
request = objectStore.index('name').openCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 2;
keyRange = IDBKeyRange.bound('Bob', 'Ron', true);
request = objectStore.index('name').openCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 1;
keyRange = IDBKeyRange.bound('Bob', 'Ron', false, true);
request = objectStore.index('name').openCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 2;
keyRange = IDBKeyRange.bound('Bob', 'Ron', true, true);
request = objectStore.index('name').openCursor(keyRange);
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 4;
keyRange = IDBKeyRange.bound('Bob', 'Ron');
request = objectStore.index('name').openCursor(keyRange, 'prev');
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex--;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex--;
cursor = event.target.result;
PASS keyIndex is 0
keyIndex = 3;
keyRange = IDBKeyRange.only(65);
request = objectStore.index('height').openKeyCursor(keyRange, 'next');
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 3;
keyRange = IDBKeyRange.only(65);
request = objectStore.index('height').openKeyCursor(keyRange, 'nextunique');
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 3;
keyRange = IDBKeyRange.only(65);
request = objectStore.index('height').openCursor(keyRange, 'next');
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
PASS cursor.value.name is objectStoreDataHeightSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataHeightSort[keyIndex].value.weight
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
PASS cursor.value.name is objectStoreDataHeightSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataHeightSort[keyIndex].value.weight
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 5
keyIndex = 3;
keyRange = IDBKeyRange.only(65);
request = objectStore.index('height').openCursor(keyRange, 'nextunique');
cursor = event.target.result;
PASS cursor.key is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.primaryKey is objectStoreDataHeightSort[keyIndex].key
PASS cursor.value.name is objectStoreDataHeightSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataHeightSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataHeightSort[keyIndex].value.weight
cursor.continue();
keyIndex++;
cursor = event.target.result;
PASS keyIndex is 4
keyIndex = 0;
request = objectStore.index('name').openKeyCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue(nextKey);
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex = 3;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreData.length
keyIndex = 0;
request = objectStore.index('name').openKeyCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue(nextKey);
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
cursor = event.target.result;
PASS keyIndex is objectStoreData.length
keyIndex = 0;
request = objectStore.index('name').openCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue(nextKey);
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex = 3;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Pat' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
keyIndex++;
cursor = event.target.result;
PASS keyIndex is objectStoreDataNameSort.length
keyIndex = 0;
request = objectStore.index('name').openCursor();
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue(nextKey);
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
nextKey = !keyIndex ? 'Flo' : undefined;
cursor.continue();
PASS cursor.key is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.primaryKey is objectStoreDataNameSort[keyIndex].key
PASS cursor.value.name is objectStoreDataNameSort[keyIndex].value.name
PASS cursor.value.height is objectStoreDataNameSort[keyIndex].value.height
PASS cursor.value.weight is objectStoreDataNameSort[keyIndex].value.weight
cursor = event.target.result;
PASS keyIndex is objectStoreDataNameSort.length
PASS successfullyParsed is true

TEST COMPLETE

