Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / storage / indexeddb / objectstore-basics-expected.txt
blob2994471e70fa446acd077a551243060d4b123152
1 Test the basics of IndexedDB's IDBObjectStore.
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
6 dbname = "objectstore-basics.html"
7 indexedDB.deleteDatabase(dbname)
8 indexedDB.open(dbname)
10 prepareDatabase():
11 store = db.createObjectStore('storeName', null)
12 storeNames = db.objectStoreNames
13 PASS 'name' in store is true
14 PASS 'keyPath' in store is true
15 PASS 'indexNames' in store is true
16 PASS 'transaction' in store is true
17 PASS 'autoIncrement' in store is true
18 PASS 'put' in store is true
19 PASS typeof store.put is "function"
20 PASS 'add' in store is true
21 PASS typeof store.add is "function"
22 PASS 'delete' in store is true
23 PASS typeof store.delete is "function"
24 PASS 'get' in store is true
25 PASS typeof store.get is "function"
26 PASS 'clear' in store is true
27 PASS typeof store.clear is "function"
28 PASS 'openCursor' in store is true
29 PASS typeof store.openCursor is "function"
30 PASS 'openKeyCursor' in store is true
31 PASS typeof store.openKeyCursor is "function"
32 PASS 'createIndex' in store is true
33 PASS typeof store.createIndex is "function"
34 PASS 'index' in store is true
35 PASS typeof store.index is "function"
36 PASS 'deleteIndex' in store is true
37 PASS typeof store.deleteIndex is "function"
38 PASS 'count' in store is true
39 PASS typeof store.count is "function"
40 PASS store.name is "storeName"
41 PASS store.keyPath is null
42 PASS store.autoIncrement is false
43 PASS storeNames.contains('storeName') is true
44 PASS storeNames.length is 1
45 PASS db.createObjectStore('storeWithKeyPath', {keyPath: 'path'}).keyPath is "path"
46 PASS db.createObjectStore('storeWithKeyGenerator', {autoIncrement: true}).autoIncrement is true
47 Ask for an index that doesn't exist:
48 Expecting exception from store.index('asdf')
49 PASS Exception was thrown.
50 PASS code is DOMException.NOT_FOUND_ERR
51 PASS ename is 'NotFoundError'
52 Exception message: Failed to execute 'index' on 'IDBObjectStore': The specified index was not found.
53 createIndex():
54 index = store.createIndex('indexName', 'x', {unique: true})
55 PASS index is non-null.
56 PASS store.indexNames.contains('indexName') is true
57 index = store.index('indexName')
58 PASS index is non-null.
59 Ask for an index that doesn't exist:
60 Expecting exception from store.index('asdf')
61 PASS Exception was thrown.
62 PASS code is DOMException.NOT_FOUND_ERR
63 PASS ename is 'NotFoundError'
64 Exception message: Failed to execute 'index' on 'IDBObjectStore': The specified index was not found.
65 indexedDB.open(dbname, 2)
66 db.close()
67 PASS db.version is 2
68 setVersionTrans = event.target.transaction
69 PASS setVersionTrans is non-null.
70 store = setVersionTrans.objectStore('storeName')
71 index = store.createIndex('indexFail', 'x')
72 PASS db.version is 1
73 PASS store.transaction is setVersionTrans
74 PASS store.indexNames is ['indexName']
75 PASS store.indexNames.length is 1
76 PASS store.indexNames.contains('') is false
77 PASS store.indexNames.contains('indexFail') is false
78 PASS store.indexNames.contains('indexName') is true
79 PASS store.indexNames[0] is "indexName"
80 PASS store.indexNames[1] is undefined.
81 PASS store.indexNames[100] is undefined.
82 PASS store.indexNames.item(1) is null
83 PASS store.indexNames.item(100) is null
85 openAgain():
86 indexedDB.open(dbname)
88 addData():
89 db = event.target.result
90 transaction = db.transaction(['storeName'], 'readwrite')
91 store = transaction.objectStore('storeName')
92 Try to insert data with a Date key:
93 store.add({x: 'foo'}, testDate)
94 Try to insert a value not handled by structured clone:
95 Expecting exception from store.add({x: 'bar', y: self}, 'bar')
96 PASS Exception was thrown.
97 PASS code is DOMException.DATA_CLONE_ERR
98 Exception message: Failed to execute 'add' on 'IDBObjectStore': An object could not be cloned.
99 Try to insert data where key path yields a Date key:
100 store.add({x: testDateB, y: 'value'}, 'key')
101 addSuccess():
102 PASS event.target.result is "key"
103 event.target.source.add({x: 'foo'}, 'zzz')
104 addAgainFailure():
105 PASS event.target.error.name is 'ConstraintError'
106 event.preventDefault()
107 db.transaction(['storeName'], 'readwrite')
108 store = transaction.objectStore('storeName')
109 store.add({x: 'somevalue'}, 'somekey')
110 Expecting exception from store.add({x: 'othervalue'}, null)
111 PASS Exception was thrown.
112 PASS code is 0
113 PASS ename is 'DataError'
114 Exception message: Failed to execute 'add' on 'IDBObjectStore': The parameter is not a valid key.
115 db.transaction(['storeName'], 'readwrite')
116 store = transaction.objectStore('storeName')
117 Ensure invalid key pointed at by index keyPath is ignored
118 store.add({x: null}, 'validkey')
119 db.transaction(['storeName'], 'readwrite')
120 store = transaction.objectStore('storeName')
121 store.get('key')
122 getSuccess():
123 PASS event.target.result.y is "value"
124 store = event.target.source
125 store.get(testDate)
126 getSuccessDateKey():
127 PASS event.target.result.x is "foo"
128 store.delete('key')
129 removeSuccess():
130 PASS event.target.result is undefined
131 store.delete('key')
132 removeSuccessButNotThere():
133 PASS event.target.result is undefined
134 store = event.target.source
135 Passing an invalid key into store.get().
136 Expecting exception from store.get({})
137 PASS Exception was thrown.
138 PASS code is 0
139 PASS ename is 'DataError'
140 Exception message: Failed to execute 'get' on 'IDBObjectStore': The parameter is not a valid key.
141 Passing an invalid key into store.delete().
142 Expecting exception from store.delete({})
143 PASS Exception was thrown.
144 PASS code is 0
145 PASS ename is 'DataError'
146 Exception message: Failed to execute 'delete' on 'IDBObjectStore': The parameter is not a valid key.
147 Passing an invalid key into store.add().
148 Expecting exception from store.add(null, {})
149 PASS Exception was thrown.
150 PASS code is 0
151 PASS ename is 'DataError'
152 Exception message: Failed to execute 'add' on 'IDBObjectStore': The parameter is not a valid key.
153 Passing an invalid key into store.put().
154 Expecting exception from store.put(null, {})
155 PASS Exception was thrown.
156 PASS code is 0
157 PASS ename is 'DataError'
158 Exception message: Failed to execute 'put' on 'IDBObjectStore': The parameter is not a valid key.
160 testPreConditions():
161 indexedDB.open(dbname, 3)
163 upgradeNeeded():
164 storeWithInLineKeys = db.createObjectStore('storeWithInLineKeys', {keyPath: 'key'})
165 storeWithOutOfLineKeys = db.createObjectStore('storeWithOutIOfLineKeys')
166 storeWithIndex = db.createObjectStore('storeWithIndex')
167 index = storeWithIndex.createIndex('indexName', 'indexKey')
169 IDBObjectStore.put()
170 The object store uses in-line keys and the key parameter was provided.
171 Expecting exception from storeWithInLineKeys.put({key: 1}, 'key')
172 PASS Exception was thrown.
173 PASS code is 0
174 PASS ename is 'DataError'
175 Exception message: Failed to execute 'put' on 'IDBObjectStore': The object store uses in-line keys and the key parameter was provided.
176 The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
177 Expecting exception from storeWithOutOfLineKeys.put({})
178 PASS Exception was thrown.
179 PASS code is 0
180 PASS ename is 'DataError'
181 Exception message: Failed to execute 'put' on 'IDBObjectStore': The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
182 The object store uses in-line keys and the result of evaluating the object store's key path yields a value and that value is not a valid key.
183 Expecting exception from storeWithInLineKeys.put({key: null})
184 PASS Exception was thrown.
185 PASS code is 0
186 PASS ename is 'DataError'
187 Exception message: Failed to execute 'put' on 'IDBObjectStore': Evaluating the object store's key path yielded a value that is not a valid key.
188 The object store uses in-line keys but no key generator and the result of evaluating the object store's key path does not yield a value.
189 Expecting exception from storeWithInLineKeys.put({})
190 PASS Exception was thrown.
191 PASS code is 0
192 PASS ename is 'DataError'
193 Exception message: Failed to execute 'put' on 'IDBObjectStore': Evaluating the object store's key path did not yield a value.
194 The key parameter was provided but does not contain a valid key.
195 Expecting exception from storeWithOutOfLineKeys.put({}, null)
196 PASS Exception was thrown.
197 PASS code is 0
198 PASS ename is 'DataError'
199 Exception message: Failed to execute 'put' on 'IDBObjectStore': The parameter is not a valid key.
201 IDBObjectStore.add()
202 The object store uses in-line keys and the key parameter was provided.
203 Expecting exception from storeWithInLineKeys.add({key: 1}, 'key')
204 PASS Exception was thrown.
205 PASS code is 0
206 PASS ename is 'DataError'
207 Exception message: Failed to execute 'add' on 'IDBObjectStore': The object store uses in-line keys and the key parameter was provided.
208 The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
209 Expecting exception from storeWithOutOfLineKeys.add({})
210 PASS Exception was thrown.
211 PASS code is 0
212 PASS ename is 'DataError'
213 Exception message: Failed to execute 'add' on 'IDBObjectStore': The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
214 The object store uses in-line keys and the result of evaluating the object store's key path yields a value and that value is not a valid key.
215 Expecting exception from storeWithInLineKeys.add({key: null})
216 PASS Exception was thrown.
217 PASS code is 0
218 PASS ename is 'DataError'
219 Exception message: Failed to execute 'add' on 'IDBObjectStore': Evaluating the object store's key path yielded a value that is not a valid key.
220 The object store uses in-line keys but no key generator and the result of evaluating the object store's key path does not yield a value.
221 Expecting exception from storeWithInLineKeys.add({})
222 PASS Exception was thrown.
223 PASS code is 0
224 PASS ename is 'DataError'
225 Exception message: Failed to execute 'add' on 'IDBObjectStore': Evaluating the object store's key path did not yield a value.
226 The key parameter was provided but does not contain a valid key.
227 Expecting exception from storeWithOutOfLineKeys.add({}, null)
228 PASS Exception was thrown.
229 PASS code is 0
230 PASS ename is 'DataError'
231 Exception message: Failed to execute 'add' on 'IDBObjectStore': The parameter is not a valid key.
232 PASS successfullyParsed is true
234 TEST COMPLETE