1Test IndexedDB's IDBObjectStore auto-increment feature. 2 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 4 5 6webkitIndexedDB.open('objectstore-autoincrement') 7openSuccess(): 8db = event.target.result 9db.setVersion('new version') 10setVersionSuccess(): 11trans = event.target.result 12PASS trans !== null is true 13Deleted all object stores. 14createObjectStore(): 15store = db.createObjectStore('StoreWithKeyPath', {keyPath: 'id', autoIncrement: true}) 16db.createObjectStore('StoreWithAutoIncrement', {autoIncrement: true}) 17db.createObjectStore('PlainOldStore', {autoIncrement: false}) 18storeNames = db.objectStoreNames 19PASS store.name is "StoreWithKeyPath" 20PASS store.keyPath is 'id' 21PASS storeNames.contains('StoreWithKeyPath') is true 22PASS storeNames.contains('StoreWithAutoIncrement') is true 23PASS storeNames.contains('PlainOldStore') is true 24PASS storeNames.length is 3 25setVersionCompleted(): 26trans = db.transaction([], webkitIDBTransaction.READ_WRITE) 27store = trans.objectStore('StoreWithKeyPath') 28Insert into object store with auto increment and key path, with key in the object. 29store.add({name: 'Jeffersson', number: '7010', id: 3}) 30addJefferssonSuccess(): 31PASS event.target.result is 3 32Insert into object store with auto increment and key path, without key in the object. 33store.add({name: 'Lincoln', number: '7012'}) 34addLincolnWithInjectKeySuccess(): 35PASS event.target.result is 4 36store.get(4) 37getLincolnAfterInjectedKeySuccess(): 38PASS event.target.result.name is "Lincoln" 39PASS event.target.result.number is "7012" 40PASS event.target.result.id is 4 41store = trans.objectStore('StoreWithAutoIncrement') 42Insert into object store with key gen using explicit key 43store.add({name: 'Lincoln', number: '7012'}, 5) 44addLincolnWithExplicitKeySuccess(): 45PASS event.target.result is 5 46store.get(5) 47getLincolnSuccess(): 48PASS event.target.result.name is "Lincoln" 49PASS event.target.result.number is "7012" 50store.put({name: 'Abraham', number: '2107'}) 51putAbrahamSuccess(): 52PASS event.target.result is 6 53store.get(6) 54getAbrahamSuccess(): 55PASS event.target.result.name is "Abraham" 56PASS event.target.result.number is "2107" 57store = trans.objectStore('PlainOldStore') 58Try adding with no key to object store without auto increment. 59store.add({name: 'Adam'}) 60addAdamError(): 61PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR 62event.preventDefault() 63store.add({name: 'Adam'}, 1) 64addAdamSuccess(): 65PASS event.target.result is 1 66PASS successfullyParsed is true 67 68TEST COMPLETE 69 70