Test IndexedDB keyPaths 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) testing simple identifier Deleted all object stores. objectStore = db.createObjectStore(testData[nextToOpen].name, {keyPath: testData[nextToOpen].keyPath}); result = objectStore.add(testData[nextToOpen].value); result = objectStore.openCursor(); cursor = event.target.result; PASS cursor.key is testData[nextToOpen].key testing simple identifiers Deleted all object stores. objectStore = db.createObjectStore(testData[nextToOpen].name, {keyPath: testData[nextToOpen].keyPath}); result = objectStore.add(testData[nextToOpen].value); result = objectStore.openCursor(); cursor = event.target.result; PASS cursor.key is testData[nextToOpen].key testing nested identifiers Deleted all object stores. objectStore = db.createObjectStore(testData[nextToOpen].name, {keyPath: testData[nextToOpen].keyPath}); result = objectStore.add(testData[nextToOpen].value); result = objectStore.openCursor(); cursor = event.target.result; PASS cursor.key is testData[nextToOpen].key testing nested identifiers with distractions Deleted all object stores. objectStore = db.createObjectStore(testData[nextToOpen].name, {keyPath: testData[nextToOpen].keyPath}); result = objectStore.add(testData[nextToOpen].value); result = objectStore.openCursor(); cursor = event.target.result; PASS cursor.key is testData[nextToOpen].key PASS successfullyParsed is true TEST COMPLETE