Test IndexedDB's openCursor. 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.result PASS trans is non-null. objectStore = db.createObjectStore('test') objectStore.add('myValue1', 'myKey1') objectStore.add('myValue2', 'myKey2') objectStore.add('myValue3', 'myKey3') objectStore.add('myValue4', 'myKey4') openCursor1 trans = db.transaction(['test'], 'readwrite') trans.objectStore('test').openCursor(keyRange) deleteRequest = event.target.result.delete() PASS deleteRequest.source is event.target.result PASS event.target.result.value is "myValue1" event.target.result.continue() deleteRequest = event.target.result.delete() PASS deleteRequest.source is event.target.result PASS event.target.result.value is "myValue2" event.target.result.continue() deleteRequest = event.target.result.delete() PASS deleteRequest.source is event.target.result PASS event.target.result.value is "myValue3" event.target.result.continue() deleteRequest = event.target.result.delete() PASS deleteRequest.source is event.target.result PASS event.target.result.value is "myValue4" event.target.result.continue() PASS counter is 5 trans.objectStore('test').openCursor(keyRange) PASS event.target.result is null trans = db.transaction(['test'], 'readwrite') objectStore = trans.objectStore('test') objectStore.add('myValue1', 'myKey1') openCursor2 objectStore.openCursor(keyRange) PASS [object IDBCursorWithValue] is non-null. deleteRequest = event.target.result.delete() PASS deleteRequest.source is event.target.result objectStore.get('myKey1') PASS event.target.result is undefined PASS successfullyParsed is true TEST COMPLETE