IndexedDB: don't expose IDBDatabaseError to script
[WebKit-https.git] / LayoutTests / storage / indexeddb / objectstore-basics-expected.txt
1 Test the basics of IndexedDB's IDBObjectStore.
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
7
8 indexedDB.open('objectstore-basics')
9 openSuccess():
10 db = event.target.result
11 db.setVersion('new version')
12 setVersionSuccess():
13 trans = event.target.result
14 PASS trans !== null is true
15 Deleted all object stores.
16 createObjectStore():
17 store = db.createObjectStore('storeName', null)
18 storeNames = db.objectStoreNames
19 PASS 'name' in store is true
20 PASS 'keyPath' in store is true
21 PASS 'indexNames' in store is true
22 PASS 'transaction' in store is true
23 PASS 'put' in store is true
24 PASS typeof store.put is "function"
25 PASS 'add' in store is true
26 PASS typeof store.add is "function"
27 PASS 'delete' in store is true
28 PASS typeof store.delete is "function"
29 PASS 'get' in store is true
30 PASS typeof store.get is "function"
31 PASS 'clear' in store is true
32 PASS typeof store.clear is "function"
33 PASS 'openCursor' in store is true
34 PASS typeof store.openCursor is "function"
35 PASS 'createIndex' in store is true
36 PASS typeof store.createIndex is "function"
37 PASS 'index' in store is true
38 PASS typeof store.index is "function"
39 PASS 'deleteIndex' in store is true
40 PASS typeof store.deleteIndex is "function"
41 PASS 'count' in store is true
42 PASS typeof store.count is "function"
43 PASS store.name is "storeName"
44 PASS store.keyPath is null
45 PASS storeNames.contains('storeName') is true
46 PASS storeNames.length is 1
47 Ask for an index that doesn't exist:
48 index = store.index('asdf')
49 PASS Exception thrown.
50 PASS code is IDBDatabaseException.NOT_FOUND_ERR
51 createIndex():
52 index = store.createIndex('indexName', 'x', {unique: true})
53 PASS index !== null is true
54 PASS store.indexNames.contains('indexName') is true
55 index = store.index('indexName')
56 PASS index !== null is true
57 Ask for an index that doesn't exist:
58 index = store.index('asdf')
59 PASS Exception thrown.
60 PASS code is IDBDatabaseException.NOT_FOUND_ERR
61 db.setVersion("version fail")
62 PASS db.version is "version fail"
63 setVersionTrans = event.target.result
64 PASS setVersionTrans !== null is true
65 store = setVersionTrans.objectStore('storeName')
66 index = store.createIndex('indexFail', 'x')
67 PASS db.version is "new version"
68 PASS store.transaction is setVersionTrans
69 PASS store.indexNames is ['indexName']
70 PASS store.indexNames.length is 1
71 PASS store.indexNames.contains('') is false
72 PASS store.indexNames.contains('indexFail') is false
73 PASS store.indexNames.contains('indexName') is true
74 PASS store.indexNames[0] is "indexName"
75 PASS store.indexNames[1] is null
76 PASS store.indexNames[100] is null
77 PASS store.indexNames.item(1) is null
78 PASS store.indexNames.item(100) is null
79 transaction = db.transaction(['storeName'], IDBTransaction.READ_WRITE)
80 store = transaction.objectStore('storeName')
81 Try to insert data with a Date key:
82 store.add({x: 'foo'}, testDate)
83 Try to insert a value not handled by structured clone:
84 store.add({x: 'bar', y: self}, 'bar')
85 PASS Exception thrown
86 PASS code is 25
87 Try to insert data where key path yields a Date key:
88 store.add({x: testDateB, y: 'value'}, 'key')
89 addSuccess():
90 PASS event.target.result is "key"
91 event.target.source.add({x: 'foo'}, 'zzz')
92 addAgainFailure():
93 PASS event.target.errorCode is IDBDatabaseException.CONSTRAINT_ERR
94 event.preventDefault()
95 db.transaction(['storeName'], IDBTransaction.READ_WRITE)
96 store = transaction.objectStore('storeName')
97 store.add({x: 'somevalue'}, 'somekey')
98 Expecting exception from store.add({x: 'othervalue'}, null)
99 PASS Exception was thrown.
100 PASS code is IDBDatabaseException.DATA_ERR
101 db.transaction(['storeName'], IDBTransaction.READ_WRITE)
102 store = transaction.objectStore('storeName')
103 Expecting exception from store.add({x: null}, 'validkey')
104 PASS Exception was thrown.
105 PASS code is IDBDatabaseException.DATA_ERR
106 db.transaction(['storeName'], IDBTransaction.READ_WRITE)
107 store = transaction.objectStore('storeName')
108 store.get('key')
109 getSuccess():
110 PASS event.target.result.y is "value"
111 store = event.target.source
112 store.get(testDate)
113 getSuccessDateKey():
114 PASS event.target.result.x is "foo"
115 store.delete('key')
116 removeSuccess():
117 PASS event.target.result is undefined
118 store.delete('key')
119 removeSuccessButNotThere():
120 PASS event.target.result is undefined
121 store = event.target.source
122 Passing an invalid key into store.get().
123 Expecting exception from store.get({})
124 PASS Exception was thrown.
125 PASS code is IDBDatabaseException.DATA_ERR
126 Passing an invalid key into store.delete().
127 Expecting exception from store.delete({})
128 PASS Exception was thrown.
129 PASS code is IDBDatabaseException.DATA_ERR
130 Passing an invalid key into store.add().
131 Expecting exception from store.add(null, {})
132 PASS Exception was thrown.
133 PASS code is IDBDatabaseException.DATA_ERR
134 Passing an invalid key into store.put().
135 Expecting exception from store.put(null, {})
136 PASS Exception was thrown.
137 PASS code is IDBDatabaseException.DATA_ERR
138
139 testPreConditions():
140 db.setVersion('precondition version')
141 storeWithInLineKeys = db.createObjectStore('storeWithInLineKeys', {keyPath: 'key'})
142 storeWithOutOfLineKeys = db.createObjectStore('storeWithOutIOfLineKeys')
143 storeWithIndex = db.createObjectStore('storeWithIndex')
144 index = storeWithIndex.createIndex('indexName', 'indexKey')
145
146 IDBObjectStore.put()
147 The object store uses in-line keys and the key parameter was provided.
148 Expecting exception from storeWithInLineKeys.put({key: 1}, 'key')
149 PASS Exception was thrown.
150 PASS code is IDBDatabaseException.DATA_ERR
151 The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
152 Expecting exception from storeWithOutOfLineKeys.put({})
153 PASS Exception was thrown.
154 PASS code is IDBDatabaseException.DATA_ERR
155 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.
156 Expecting exception from storeWithInLineKeys.put({key: null})
157 PASS Exception was thrown.
158 PASS code is IDBDatabaseException.DATA_ERR
159 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.
160 Expecting exception from storeWithInLineKeys.put({})
161 PASS Exception was thrown.
162 PASS code is IDBDatabaseException.DATA_ERR
163 The key parameter was provided but does not contain a valid key.
164 Expecting exception from storeWithOutOfLineKeys.put({}, null)
165 PASS Exception was thrown.
166 PASS code is IDBDatabaseException.DATA_ERR
167 If there are any indexes referencing this object store whose key path is a string, evaluating their key path on the value parameter yields a value, and that value is not a valid key.
168 Expecting exception from storeWithIndex.put({indexKey: null}, 'key')
169 PASS Exception was thrown.
170 PASS code is IDBDatabaseException.DATA_ERR
171
172 IDBObjectStore.add()
173 The object store uses in-line keys and the key parameter was provided.
174 Expecting exception from storeWithInLineKeys.add({key: 1}, 'key')
175 PASS Exception was thrown.
176 PASS code is IDBDatabaseException.DATA_ERR
177 The object store uses out-of-line keys and has no key generator and the key parameter was not provided.
178 Expecting exception from storeWithOutOfLineKeys.add({})
179 PASS Exception was thrown.
180 PASS code is IDBDatabaseException.DATA_ERR
181 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.
182 Expecting exception from storeWithInLineKeys.add({key: null})
183 PASS Exception was thrown.
184 PASS code is IDBDatabaseException.DATA_ERR
185 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.
186 Expecting exception from storeWithInLineKeys.add({})
187 PASS Exception was thrown.
188 PASS code is IDBDatabaseException.DATA_ERR
189 The key parameter was provided but does not contain a valid key.
190 Expecting exception from storeWithOutOfLineKeys.add({}, null)
191 PASS Exception was thrown.
192 PASS code is IDBDatabaseException.DATA_ERR
193 If there are any indexes referencing this object store whose key path is a string, evaluating their key path on the value parameter yields a value, and that value is not a valid key.
194 Expecting exception from storeWithIndex.add({indexKey: null}, 'key')
195 PASS Exception was thrown.
196 PASS code is IDBDatabaseException.DATA_ERR
197 PASS successfullyParsed is true
198
199 TEST COMPLETE
200