| Test IndexedDB's cursor skips deleted entries. |
| |
| 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) |
| setVersionSuccess(): |
| trans = event.target.transaction |
| PASS trans is non-null. |
| objectStore = db.createObjectStore('store', {keyPath: 'id'}) |
| objectStore.createIndex('nameIndex', 'name') |
| |
| resetObjectStore(): |
| |
| basicCursorTest() |
| trans = db.transaction(['store'], 'readwrite') |
| |
| testCursor(): |
| trans.objectStore('store').openCursor(IDBKeyRange.lowerBound(0)) |
| 0: Alpha |
| 1: Bravo |
| request = trans.objectStore('store').delete(0) |
| 2: Charlie |
| request = trans.objectStore('store').delete(25) |
| 3: Delta |
| request = trans.objectStore('store').delete(5) |
| request = trans.objectStore('store').delete(6) |
| request = trans.objectStore('store').delete(7) |
| 4: Echo |
| 8: India |
| 9: Juliet |
| 10: Kilo |
| request = trans.objectStore('store').delete(10) |
| 11: Lima |
| 12: Mike |
| request = trans.objectStore('store').delete(13) |
| 14: Oscar |
| 15: Papa |
| request = trans.objectStore('store').delete(14) |
| 16: Quebec |
| 17: Romeo |
| 18: Sierra |
| 19: Tango |
| 20: Uniform |
| request = trans.objectStore('store').delete(17) |
| request = trans.objectStore('store').delete(18) |
| 21: Victor |
| 22: Whiskey |
| 23: X-ray |
| 24: Yankee |
| |
| |
| resetObjectStore(): |
| |
| reverseCursorTest(): |
| |
| testCursor(): |
| trans.objectStore('store').openCursor(IDBKeyRange.lowerBound(0), 'prev') |
| 25: Zulu |
| 24: Yankee |
| request = trans.objectStore('store').delete(25) |
| 23: X-ray |
| request = trans.objectStore('store').delete(0) |
| 22: Whiskey |
| request = trans.objectStore('store').delete(20) |
| request = trans.objectStore('store').delete(19) |
| request = trans.objectStore('store').delete(18) |
| 21: Victor |
| 17: Romeo |
| 16: Quebec |
| 15: Papa |
| request = trans.objectStore('store').delete(15) |
| 14: Oscar |
| 13: November |
| request = trans.objectStore('store').delete(12) |
| 11: Lima |
| 10: Kilo |
| request = trans.objectStore('store').delete(11) |
| 9: Juliet |
| 8: India |
| 7: Hotel |
| 6: Golf |
| 5: Foxtrot |
| request = trans.objectStore('store').delete(7) |
| request = trans.objectStore('store').delete(8) |
| 4: Echo |
| 3: Delta |
| 2: Charlie |
| 1: Bravo |
| |
| |
| resetObjectStore(): |
| |
| indexCursorTest(): |
| |
| testCursor(): |
| trans.objectStore('store').index('nameIndex').openCursor(IDBKeyRange.lowerBound('Alpha')) |
| 0: Alpha |
| 1: Bravo |
| request = trans.objectStore('store').delete(0) |
| 2: Charlie |
| request = trans.objectStore('store').delete(25) |
| 3: Delta |
| request = trans.objectStore('store').delete(5) |
| request = trans.objectStore('store').delete(6) |
| request = trans.objectStore('store').delete(7) |
| 4: Echo |
| 8: India |
| 9: Juliet |
| 10: Kilo |
| request = trans.objectStore('store').delete(10) |
| 11: Lima |
| 12: Mike |
| request = trans.objectStore('store').delete(13) |
| 14: Oscar |
| 15: Papa |
| request = trans.objectStore('store').delete(14) |
| 16: Quebec |
| 17: Romeo |
| 18: Sierra |
| 19: Tango |
| 20: Uniform |
| request = trans.objectStore('store').delete(17) |
| request = trans.objectStore('store').delete(18) |
| 21: Victor |
| 22: Whiskey |
| 23: X-ray |
| 24: Yankee |
| |
| transactionComplete(): |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |