• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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