Test IndexedDB: adds, gets, deletes, and re-gets a record in a variety of different object store configurations On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". data = [ { name: 'inline key; key generator', autoIncrement: true, storedObject: {name: 'Lincoln'}, keyName: 'id', keyValue: undefined, }, { name: 'inline key; no key generator', autoIncrement: false, storedObject: {id: 1, name: 'Lincoln'}, keyName: 'id', keyValue: undefined, }, { name: 'out of line key; key generator', autoIncrement: true, storedObject: {name: 'Lincoln'}, keyName: undefined, keyValue: undefined, }, { name: 'out of line key; no key generator', autoIncrement: false, storedObject: {name: 'Lincoln'}, keyName: undefined, keyValue: 1, } ]; i = 0; dbname = "object-store-remove-values.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) objectStore = db.createObjectStore(test.name, { keyPath: test.keyName, autoIncrement: test.autoIncrement }); request = objectStore.add(test.storedObject); id = event.target.result; request = objectStore.get(id); PASS test.storedObject.name is event.target.result.name request = objectStore.delete(id); request = objectStore.get(id); PASS event.target.result === undefined is true dbname = "object-store-remove-values.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) objectStore = db.createObjectStore(test.name, { keyPath: test.keyName, autoIncrement: test.autoIncrement }); request = objectStore.add(test.storedObject); id = event.target.result; request = objectStore.get(id); PASS test.storedObject.name is event.target.result.name request = objectStore.delete(id); request = objectStore.get(id); PASS event.target.result === undefined is true dbname = "object-store-remove-values.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) objectStore = db.createObjectStore(test.name, { autoIncrement: test.autoIncrement }); request = objectStore.add(test.storedObject); id = event.target.result; request = objectStore.get(id); PASS test.storedObject.name is event.target.result.name request = objectStore.delete(id); request = objectStore.get(id); PASS event.target.result === undefined is true dbname = "object-store-remove-values.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) objectStore = db.createObjectStore(test.name, { autoIncrement: test.autoIncrement }); request = objectStore.add(test.storedObject, test.keyValue); id = event.target.result; request = objectStore.get(id); PASS test.storedObject.name is event.target.result.name request = objectStore.delete(id); request = objectStore.get(id); PASS event.target.result === undefined is true PASS successfullyParsed is true TEST COMPLETE