cf487bc2c8aa241485a2407585ca73ec42aaeea3
[WebKit-https.git] / LayoutTests / storage / indexeddb / key-type-array-expected.txt
1 Test IndexedDB key types
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.deleteDatabase(dbname)
9 indexedDB.open(dbname)
10 db.createObjectStore('store');
11
12 trans = db.transaction('store', 'readwrite')
13 store = trans.objectStore('store')
14
15 long_array = []; for (i = 0; i < 1000; ++i) { long_array.push('abc', 123, new Date(0), []); }
16
17 array that contains non-numeric self-reference
18 self_referrential_array = []; self_referrential_array.self = self_referrential_array;
19
20 testing array key: []
21 store.put('value1', []);
22 store.get([]);
23 PASS getreq.result is "value1"
24
25 testing array key: [-Infinity]
26 store.put('value2', [-Infinity]);
27 store.get([-Infinity]);
28 PASS getreq.result is "value2"
29
30 testing array key: [-Number.MAX_VALUE]
31 store.put('value3', [-Number.MAX_VALUE]);
32 store.get([-Number.MAX_VALUE]);
33 PASS getreq.result is "value3"
34
35 testing array key: [-1]
36 store.put('value4', [-1]);
37 store.get([-1]);
38 PASS getreq.result is "value4"
39
40 testing array key: [-Number.MIN_VALUE]
41 store.put('value5', [-Number.MIN_VALUE]);
42 store.get([-Number.MIN_VALUE]);
43 PASS getreq.result is "value5"
44
45 testing array key: [0]
46 store.put('value6', [0]);
47 store.get([0]);
48 PASS getreq.result is "value6"
49
50 testing array key: [Number.MIN_VALUE]
51 store.put('value7', [Number.MIN_VALUE]);
52 store.get([Number.MIN_VALUE]);
53 PASS getreq.result is "value7"
54
55 testing array key: [1]
56 store.put('value8', [1]);
57 store.get([1]);
58 PASS getreq.result is "value8"
59
60 testing array key: [Number.MAX_VALUE]
61 store.put('value9', [Number.MAX_VALUE]);
62 store.get([Number.MAX_VALUE]);
63 PASS getreq.result is "value9"
64
65 testing array key: [Infinity]
66 store.put('value10', [Infinity]);
67 store.get([Infinity]);
68 PASS getreq.result is "value10"
69
70 testing array key: [1,2,3]
71 store.put('value11', [1,2,3]);
72 store.get([1,2,3]);
73 PASS getreq.result is "value11"
74
75 testing array key: [new Date(0)]
76 store.put('value12', [new Date(0)]);
77 store.get([new Date(0)]);
78 PASS getreq.result is "value12"
79
80 testing array key: [new Date('2525-01-01T00:00:00Z')]
81 store.put('value13', [new Date('2525-01-01T00:00:00Z')]);
82 store.get([new Date('2525-01-01T00:00:00Z')]);
83 PASS getreq.result is "value13"
84
85 testing array key: [new Date(0), new Date('2525-01-01T00:00:00Z')]
86 store.put('value14', [new Date(0), new Date('2525-01-01T00:00:00Z')]);
87 store.get([new Date(0), new Date('2525-01-01T00:00:00Z')]);
88 PASS getreq.result is "value14"
89
90 testing array key: ['']
91 store.put('value15', ['']);
92 store.get(['']);
93 PASS getreq.result is "value15"
94
95 testing array key: ['']
96 store.put('value16', ['']);
97 store.get(['']);
98 PASS getreq.result is "value16"
99
100 testing array key: ['abc123']
101 store.put('value17', ['abc123']);
102 store.get(['abc123']);
103 PASS getreq.result is "value17"
104
105 testing array key: ['abc', 123]
106 store.put('value18', ['abc', 123]);
107 store.get(['abc', 123]);
108 PASS getreq.result is "value18"
109
110 testing array key: [[]]
111 store.put('value19', [[]]);
112 store.get([[]]);
113 PASS getreq.result is "value19"
114
115 testing array key: [[], []]
116 store.put('value20', [[], []]);
117 store.get([[], []]);
118 PASS getreq.result is "value20"
119
120 testing array key: [[], [], []]
121 store.put('value21', [[], [], []]);
122 store.get([[], [], []]);
123 PASS getreq.result is "value21"
124
125 testing array key: [[[]]]
126 store.put('value22', [[[]]]);
127 store.get([[[]]]);
128 PASS getreq.result is "value22"
129
130 testing array key: [[[[]]]]
131 store.put('value23', [[[[]]]]);
132 store.get([[[[]]]]);
133 PASS getreq.result is "value23"
134
135 testing array key: [123, 'abc', new Date(0), []]
136 store.put('value24', [123, 'abc', new Date(0), []]);
137 store.get([123, 'abc', new Date(0), []]);
138 PASS getreq.result is "value24"
139
140 testing array key: [[123, 'abc', new Date(0), []], [456, 'def', new Date(999), [[]]]]
141 store.put('value25', [[123, 'abc', new Date(0), []], [456, 'def', new Date(999), [[]]]]);
142 store.get([[123, 'abc', new Date(0), []], [456, 'def', new Date(999), [[]]]]);
143 PASS getreq.result is "value25"
144
145 testing array key: long_array
146 store.put('value26', long_array);
147 store.get(long_array);
148 PASS getreq.result is "value26"
149
150 testing array key: self_referrential_array
151 store.put('value27', self_referrential_array);
152 store.get(self_referrential_array);
153 PASS getreq.result is "value27"
154
155 trans = db.transaction('store', 'readwrite')
156 store = trans.objectStore('store')
157
158 array that contains itself: array = [ array ]
159 cyclic_array = []; cyclic_array.push(cyclic_array)
160 array that contains itself, one level down: array = [ [ array ] ]
161 cyclic_array2 = []; cyclic_array2.push([cyclic_array2])
162 array that contains itself, not as first element: array = [1, 'b', [], array]
163 cyclic_array3 = [1, 'b', []]; cyclic_array3.push(cyclic_array3)
164 array that contains array that contains itself
165 cyclic_array4 = [cyclic_array];
166
167 testing invalid array key: [ void 0 ]
168 Expecting exception from store.put('value', [ void 0 ]);
169 PASS Exception was thrown.
170 PASS code is 0
171 PASS ename is 'DataError'
172 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
173
174 testing invalid array key: [ true ]
175 Expecting exception from store.put('value', [ true ]);
176 PASS Exception was thrown.
177 PASS code is 0
178 PASS ename is 'DataError'
179 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
180
181 testing invalid array key: [ false ]
182 Expecting exception from store.put('value', [ false ]);
183 PASS Exception was thrown.
184 PASS code is 0
185 PASS ename is 'DataError'
186 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
187
188 testing invalid array key: [ NaN ]
189 Expecting exception from store.put('value', [ NaN ]);
190 PASS Exception was thrown.
191 PASS code is 0
192 PASS ename is 'DataError'
193 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
194
195 testing invalid array key: [ null ]
196 Expecting exception from store.put('value', [ null ]);
197 PASS Exception was thrown.
198 PASS code is 0
199 PASS ename is 'DataError'
200 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
201
202 testing invalid array key: [ {} ]
203 Expecting exception from store.put('value', [ {} ]);
204 PASS Exception was thrown.
205 PASS code is 0
206 PASS ename is 'DataError'
207 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
208
209 testing invalid array key: [ function () {} ]
210 Expecting exception from store.put('value', [ function () {} ]);
211 PASS Exception was thrown.
212 PASS code is 0
213 PASS ename is 'DataError'
214 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
215
216 testing invalid array key: [ /regex/ ]
217 Expecting exception from store.put('value', [ /regex/ ]);
218 PASS Exception was thrown.
219 PASS code is 0
220 PASS ename is 'DataError'
221 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
222
223 testing invalid array key: [ self ]
224 Expecting exception from store.put('value', [ self ]);
225 PASS Exception was thrown.
226 PASS code is 0
227 PASS ename is 'DataError'
228 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
229
230 testing invalid array key: [ self.document ]
231 Expecting exception from store.put('value', [ self.document ]);
232 PASS Exception was thrown.
233 PASS code is 0
234 PASS ename is 'DataError'
235 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
236
237 testing invalid array key: [ self.document.body ]
238 Expecting exception from store.put('value', [ self.document.body ]);
239 PASS Exception was thrown.
240 PASS code is 0
241 PASS ename is 'DataError'
242 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
243
244 testing invalid array key: cyclic_array
245 Expecting exception from store.put('value', cyclic_array);
246 PASS Exception was thrown.
247 PASS code is 0
248 PASS ename is 'DataError'
249 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
250
251 testing invalid array key: cyclic_array2
252 Expecting exception from store.put('value', cyclic_array2);
253 PASS Exception was thrown.
254 PASS code is 0
255 PASS ename is 'DataError'
256 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
257
258 testing invalid array key: cyclic_array3
259 Expecting exception from store.put('value', cyclic_array3);
260 PASS Exception was thrown.
261 PASS code is 0
262 PASS ename is 'DataError'
263 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
264
265 testing invalid array key: cyclic_array4
266 Expecting exception from store.put('value', cyclic_array4);
267 PASS Exception was thrown.
268 PASS code is 0
269 PASS ename is 'DataError'
270 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
271
272 testing invalid array key: Array(1000)
273 Expecting exception from store.put('value', Array(1000));
274 PASS Exception was thrown.
275 PASS code is 0
276 PASS ename is 'DataError'
277 Exception message: Failed to store record in an IDBObjectStore: The parameter is not a valid key.
278
279 PASS indexedDB.cmp(makeArrayOfDepth(25), 0) is 1
280 PASS indexedDB.cmp(makeArrayOfDepth(250), 0) is 1
281 Expecting exception from indexedDB.cmp(makeArrayOfDepth(2500), 0)
282 PASS Exception was thrown.
283 PASS code is 0
284 PASS ename is 'DataError'
285 Exception message: Failed to execute 'cmp' on 'IDBFactory': The parameter is not a valid key.
286
287 PASS successfullyParsed is true
288
289 TEST COMPLETE
290