| Test IndexedDB: iterating backwards through an index, skipping duplicates |
| |
| 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); |
| 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); |
| trans = db.transaction(objectStoreName, 'readwrite') |
| objectStore = trans.objectStore(objectStoreName) |
| testPrev() |
| trans = db.transaction(objectStoreName) |
| objectStore = trans.objectStore(objectStoreName); |
| keyIndex = 8; |
| request = objectStore.index('height').openCursor(null, 'prev'); |
| cursor = event.target.result; |
| PASS cursor.key is 73 |
| PASS cursor.primaryKey is '237-23-7740' |
| PASS cursor.value.name is 'Sam' |
| PASS cursor.value.height is 73 |
| PASS cursor.value.weight is 110 |
| cursor.continue(); |
| keyIndex--; |
| => 7 |
| cursor = event.target.result; |
| PASS cursor.key is 73 |
| PASS cursor.primaryKey is '237-23-7734' |
| PASS cursor.value.name is 'Ron' |
| PASS cursor.value.height is 73 |
| PASS cursor.value.weight is 180 |
| cursor.continue(); |
| keyIndex--; |
| => 6 |
| cursor = event.target.result; |
| PASS cursor.key is 65 |
| PASS cursor.primaryKey is '237-23-7739' |
| PASS cursor.value.name is 'Jef' |
| PASS cursor.value.height is 65 |
| PASS cursor.value.weight is 120 |
| cursor.continue(); |
| keyIndex--; |
| => 5 |
| cursor = event.target.result; |
| PASS cursor.key is 65 |
| PASS cursor.primaryKey is '237-23-7738' |
| PASS cursor.value.name is 'Leo' |
| PASS cursor.value.height is 65 |
| PASS cursor.value.weight is 180 |
| cursor.continue(); |
| keyIndex--; |
| => 4 |
| cursor = event.target.result; |
| PASS cursor.key is 65 |
| PASS cursor.primaryKey is '237-23-7737' |
| PASS cursor.value.name is 'Pat' |
| PASS cursor.value.height is 65 |
| PASS cursor.value.weight is 100 |
| cursor.continue(); |
| keyIndex--; |
| => 3 |
| cursor = event.target.result; |
| PASS cursor.key is 65 |
| PASS cursor.primaryKey is '237-23-7736' |
| PASS cursor.value.name is 'Joe' |
| PASS cursor.value.height is 65 |
| PASS cursor.value.weight is 150 |
| cursor.continue(); |
| keyIndex--; |
| => 2 |
| cursor = event.target.result; |
| PASS cursor.key is 60 |
| PASS cursor.primaryKey is '237-23-7732' |
| PASS cursor.value.name is 'Bob' |
| PASS cursor.value.height is 60 |
| PASS cursor.value.weight is 120 |
| cursor.continue(); |
| keyIndex--; |
| => 1 |
| cursor = event.target.result; |
| PASS cursor.key is 58 |
| PASS cursor.primaryKey is '237-23-7735' |
| PASS cursor.value.name is 'Sue' |
| PASS cursor.value.height is 58 |
| PASS cursor.value.weight is 130 |
| cursor.continue(); |
| keyIndex--; |
| => 0 |
| cursor = event.target.result; |
| PASS cursor.key is 52 |
| PASS cursor.primaryKey is '237-23-7733' |
| PASS cursor.value.name is 'Ann' |
| PASS cursor.value.height is 52 |
| PASS cursor.value.weight is 110 |
| cursor.continue(); |
| keyIndex--; |
| => -1 |
| cursor = event.target.result; |
| No cursor: null |
| PASS keyIndex is -1 |
| testPrevNoDuplicate() |
| objectStore = db.transaction(objectStoreName).objectStore(objectStoreName); |
| keyIndex = 8; |
| request = objectStore.index('height').openCursor(null, 'prevunique'); |
| cursor = event.target.result; |
| keyIndex -= 1 |
| => Entering with keyIndex = 7 |
| PASS cursor.key is 73 |
| PASS cursor.primaryKey is '237-23-7734' |
| PASS cursor.value.name is 'Ron' |
| PASS cursor.value.height is 73 |
| PASS cursor.value.weight is 180 |
| cursor.continue(); |
| keyIndex--; |
| cursor = event.target.result; |
| keyIndex -= 3; |
| => Entering with keyIndex = 3 |
| PASS cursor.key is 65 |
| PASS cursor.primaryKey is '237-23-7736' |
| PASS cursor.value.name is 'Joe' |
| PASS cursor.value.height is 65 |
| PASS cursor.value.weight is 150 |
| cursor.continue(); |
| keyIndex--; |
| cursor = event.target.result; |
| => Entering with keyIndex = 2 |
| PASS cursor.key is 60 |
| PASS cursor.primaryKey is '237-23-7732' |
| PASS cursor.value.name is 'Bob' |
| PASS cursor.value.height is 60 |
| PASS cursor.value.weight is 120 |
| cursor.continue(); |
| keyIndex--; |
| cursor = event.target.result; |
| => Entering with keyIndex = 1 |
| PASS cursor.key is 58 |
| PASS cursor.primaryKey is '237-23-7735' |
| PASS cursor.value.name is 'Sue' |
| PASS cursor.value.height is 58 |
| PASS cursor.value.weight is 130 |
| cursor.continue(); |
| keyIndex--; |
| cursor = event.target.result; |
| => Entering with keyIndex = 0 |
| PASS cursor.key is 52 |
| PASS cursor.primaryKey is '237-23-7733' |
| PASS cursor.value.name is 'Ann' |
| PASS cursor.value.height is 52 |
| PASS cursor.value.weight is 110 |
| cursor.continue(); |
| keyIndex--; |
| cursor = event.target.result; |
| => Entering with keyIndex = -1 |
| No cursor: null |
| PASS keyIndex is -1 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |