IndexedDB: don't expose IDBDatabaseError to script
[WebKit-https.git] / LayoutTests / storage / indexeddb / structured-clone-expected.txt
1 Test structured clone permutations in IndexedDB. File/FileList tests require DumpRenderTree.
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
9 Prepare Database
10 indexedDB.deleteDatabase('structured-clone')
11 indexedDB.open('structured-clone')
12 db = request.result
13 PASS db.version is ""
14 db.setVersion('1')
15 db.createObjectStore('storeName')
16
17 Running tests...
18
19 Testing: undefined
20 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
21 store = transaction.objectStore('storeName')
22 store.put(value, 'key')
23 store.get('key')
24 PASS is(test_data, result) is true
25
26
27 Testing: null
28 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
29 store = transaction.objectStore('storeName')
30 store.put(value, 'key')
31 store.get('key')
32 PASS is(test_data, result) is true
33
34
35 Testing boolean primitives
36
37 Testing: true
38 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
39 store = transaction.objectStore('storeName')
40 store.put(value, 'key')
41 store.get('key')
42 PASS is(test_data, result) is true
43
44 Testing: false
45 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
46 store = transaction.objectStore('storeName')
47 store.put(value, 'key')
48 store.get('key')
49 PASS is(test_data, result) is true
50
51
52 Testing number primitives
53
54 Testing: NaN
55 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
56 store = transaction.objectStore('storeName')
57 store.put(value, 'key')
58 store.get('key')
59 PASS is(test_data, result) is true
60
61 Testing: -Infinity
62 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
63 store = transaction.objectStore('storeName')
64 store.put(value, 'key')
65 store.get('key')
66 PASS is(test_data, result) is true
67
68 Testing: -Number.MAX_VALUE
69 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
70 store = transaction.objectStore('storeName')
71 store.put(value, 'key')
72 store.get('key')
73 PASS is(test_data, result) is true
74
75 Testing: -Number.MIN_VALUE
76 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
77 store = transaction.objectStore('storeName')
78 store.put(value, 'key')
79 store.get('key')
80 PASS is(test_data, result) is true
81
82 Testing: -0
83 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
84 store = transaction.objectStore('storeName')
85 store.put(value, 'key')
86 store.get('key')
87 PASS is(test_data, result) is true
88
89 Testing: 0
90 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
91 store = transaction.objectStore('storeName')
92 store.put(value, 'key')
93 store.get('key')
94 PASS is(test_data, result) is true
95
96 Testing: Number.MIN_VALUE
97 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
98 store = transaction.objectStore('storeName')
99 store.put(value, 'key')
100 store.get('key')
101 PASS is(test_data, result) is true
102
103 Testing: Number.MAX_VALUE
104 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
105 store = transaction.objectStore('storeName')
106 store.put(value, 'key')
107 store.get('key')
108 PASS is(test_data, result) is true
109
110 Testing: Infinity
111 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
112 store = transaction.objectStore('storeName')
113 store.put(value, 'key')
114 store.get('key')
115 PASS is(test_data, result) is true
116
117
118 Testing string primitives
119
120 Testing: ''
121 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
122 store = transaction.objectStore('storeName')
123 store.put(value, 'key')
124 store.get('key')
125 PASS is(test_data, result) is true
126
127 Testing: 'this is a sample string'
128 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
129 store = transaction.objectStore('storeName')
130 store.put(value, 'key')
131 store.get('key')
132 PASS is(test_data, result) is true
133
134 Testing: 'null(\0)'
135 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
136 store = transaction.objectStore('storeName')
137 store.put(value, 'key')
138 store.get('key')
139 PASS is(test_data, result) is true
140
141
142 Testing Boolean objects
143
144 Testing: new Boolean(true)
145 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
146 store = transaction.objectStore('storeName')
147 store.put(value, 'key')
148 store.get('key')
149 PASS typeof result is "object"
150 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
151 PASS test_data !== result is true
152 PASS result.toString() is test_data.toString()
153 PASS is(test_data.valueOf(), result.valueOf()) is true
154
155 Testing: new Boolean(false)
156 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
157 store = transaction.objectStore('storeName')
158 store.put(value, 'key')
159 store.get('key')
160 PASS typeof result is "object"
161 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
162 PASS test_data !== result is true
163 PASS result.toString() is test_data.toString()
164 PASS is(test_data.valueOf(), result.valueOf()) is true
165
166
167 Testing Number objects
168
169 Testing: new Number(NaN)
170 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
171 store = transaction.objectStore('storeName')
172 store.put(value, 'key')
173 store.get('key')
174 PASS typeof result is "object"
175 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
176 PASS test_data !== result is true
177 PASS result.toString() is test_data.toString()
178 PASS is(test_data.valueOf(), result.valueOf()) is true
179
180 Testing: new Number(-Infinity)
181 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
182 store = transaction.objectStore('storeName')
183 store.put(value, 'key')
184 store.get('key')
185 PASS typeof result is "object"
186 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
187 PASS test_data !== result is true
188 PASS result.toString() is test_data.toString()
189 PASS is(test_data.valueOf(), result.valueOf()) is true
190
191 Testing: new Number(-Number.MAX_VALUE)
192 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
193 store = transaction.objectStore('storeName')
194 store.put(value, 'key')
195 store.get('key')
196 PASS typeof result is "object"
197 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
198 PASS test_data !== result is true
199 PASS result.toString() is test_data.toString()
200 PASS is(test_data.valueOf(), result.valueOf()) is true
201
202 Testing: new Number(-Number.MIN_VALUE)
203 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
204 store = transaction.objectStore('storeName')
205 store.put(value, 'key')
206 store.get('key')
207 PASS typeof result is "object"
208 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
209 PASS test_data !== result is true
210 PASS result.toString() is test_data.toString()
211 PASS is(test_data.valueOf(), result.valueOf()) is true
212
213 Testing: new Number(-0)
214 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
215 store = transaction.objectStore('storeName')
216 store.put(value, 'key')
217 store.get('key')
218 PASS typeof result is "object"
219 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
220 PASS test_data !== result is true
221 PASS result.toString() is test_data.toString()
222 PASS is(test_data.valueOf(), result.valueOf()) is true
223
224 Testing: new Number(0)
225 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
226 store = transaction.objectStore('storeName')
227 store.put(value, 'key')
228 store.get('key')
229 PASS typeof result is "object"
230 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
231 PASS test_data !== result is true
232 PASS result.toString() is test_data.toString()
233 PASS is(test_data.valueOf(), result.valueOf()) is true
234
235 Testing: new Number(Number.MIN_VALUE)
236 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
237 store = transaction.objectStore('storeName')
238 store.put(value, 'key')
239 store.get('key')
240 PASS typeof result is "object"
241 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
242 PASS test_data !== result is true
243 PASS result.toString() is test_data.toString()
244 PASS is(test_data.valueOf(), result.valueOf()) is true
245
246 Testing: new Number(Number.MAX_VALUE)
247 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
248 store = transaction.objectStore('storeName')
249 store.put(value, 'key')
250 store.get('key')
251 PASS typeof result is "object"
252 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
253 PASS test_data !== result is true
254 PASS result.toString() is test_data.toString()
255 PASS is(test_data.valueOf(), result.valueOf()) is true
256
257 Testing: new Number(Infinity)
258 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
259 store = transaction.objectStore('storeName')
260 store.put(value, 'key')
261 store.get('key')
262 PASS typeof result is "object"
263 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
264 PASS test_data !== result is true
265 PASS result.toString() is test_data.toString()
266 PASS is(test_data.valueOf(), result.valueOf()) is true
267
268
269 Testing String objects
270
271 Testing: new String()
272 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
273 store = transaction.objectStore('storeName')
274 store.put(value, 'key')
275 store.get('key')
276 PASS typeof result is "object"
277 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
278 PASS test_data !== result is true
279 PASS result.toString() is test_data.toString()
280 PASS is(test_data.valueOf(), result.valueOf()) is true
281
282 Testing: new String('this is a sample string')
283 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
284 store = transaction.objectStore('storeName')
285 store.put(value, 'key')
286 store.get('key')
287 PASS typeof result is "object"
288 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
289 PASS test_data !== result is true
290 PASS result.toString() is test_data.toString()
291 PASS is(test_data.valueOf(), result.valueOf()) is true
292
293 Testing: new String('null(\0)')
294 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
295 store = transaction.objectStore('storeName')
296 store.put(value, 'key')
297 store.get('key')
298 PASS typeof result is "object"
299 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
300 PASS test_data !== result is true
301 PASS result.toString() is test_data.toString()
302 PASS is(test_data.valueOf(), result.valueOf()) is true
303
304
305 Testing Date objects
306
307 Testing: new Date(-1e13)
308 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
309 store = transaction.objectStore('storeName')
310 store.put(value, 'key')
311 store.get('key')
312 PASS typeof result is "object"
313 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
314 PASS test_data !== result is true
315 PASS result.toString() is test_data.toString()
316 PASS is(test_data.valueOf(), result.valueOf()) is true
317
318 Testing: new Date(-1e12)
319 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
320 store = transaction.objectStore('storeName')
321 store.put(value, 'key')
322 store.get('key')
323 PASS typeof result is "object"
324 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
325 PASS test_data !== result is true
326 PASS result.toString() is test_data.toString()
327 PASS is(test_data.valueOf(), result.valueOf()) is true
328
329 Testing: new Date(-1e9)
330 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
331 store = transaction.objectStore('storeName')
332 store.put(value, 'key')
333 store.get('key')
334 PASS typeof result is "object"
335 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
336 PASS test_data !== result is true
337 PASS result.toString() is test_data.toString()
338 PASS is(test_data.valueOf(), result.valueOf()) is true
339
340 Testing: new Date(-1e6)
341 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
342 store = transaction.objectStore('storeName')
343 store.put(value, 'key')
344 store.get('key')
345 PASS typeof result is "object"
346 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
347 PASS test_data !== result is true
348 PASS result.toString() is test_data.toString()
349 PASS is(test_data.valueOf(), result.valueOf()) is true
350
351 Testing: new Date(-1e3)
352 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
353 store = transaction.objectStore('storeName')
354 store.put(value, 'key')
355 store.get('key')
356 PASS typeof result is "object"
357 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
358 PASS test_data !== result is true
359 PASS result.toString() is test_data.toString()
360 PASS is(test_data.valueOf(), result.valueOf()) is true
361
362 Testing: new Date(0)
363 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
364 store = transaction.objectStore('storeName')
365 store.put(value, 'key')
366 store.get('key')
367 PASS typeof result is "object"
368 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
369 PASS test_data !== result is true
370 PASS result.toString() is test_data.toString()
371 PASS is(test_data.valueOf(), result.valueOf()) is true
372
373 Testing: new Date(1e3)
374 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
375 store = transaction.objectStore('storeName')
376 store.put(value, 'key')
377 store.get('key')
378 PASS typeof result is "object"
379 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
380 PASS test_data !== result is true
381 PASS result.toString() is test_data.toString()
382 PASS is(test_data.valueOf(), result.valueOf()) is true
383
384 Testing: new Date(1e6)
385 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
386 store = transaction.objectStore('storeName')
387 store.put(value, 'key')
388 store.get('key')
389 PASS typeof result is "object"
390 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
391 PASS test_data !== result is true
392 PASS result.toString() is test_data.toString()
393 PASS is(test_data.valueOf(), result.valueOf()) is true
394
395 Testing: new Date(1e9)
396 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
397 store = transaction.objectStore('storeName')
398 store.put(value, 'key')
399 store.get('key')
400 PASS typeof result is "object"
401 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
402 PASS test_data !== result is true
403 PASS result.toString() is test_data.toString()
404 PASS is(test_data.valueOf(), result.valueOf()) is true
405
406 Testing: new Date(1e12)
407 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
408 store = transaction.objectStore('storeName')
409 store.put(value, 'key')
410 store.get('key')
411 PASS typeof result is "object"
412 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
413 PASS test_data !== result is true
414 PASS result.toString() is test_data.toString()
415 PASS is(test_data.valueOf(), result.valueOf()) is true
416
417 Testing: new Date(1e13)
418 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
419 store = transaction.objectStore('storeName')
420 store.put(value, 'key')
421 store.get('key')
422 PASS typeof result is "object"
423 PASS Object.prototype.toString.call(result) is Object.prototype.toString.call(test_data)
424 PASS test_data !== result is true
425 PASS result.toString() is test_data.toString()
426 PASS is(test_data.valueOf(), result.valueOf()) is true
427
428
429 Testing RegExp objects
430
431 Testing RegExp: new RegExp()
432 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
433 store = transaction.objectStore('storeName')
434 store.put(value, 'key')
435 store.get('key')
436 PASS test_data !== result is true
437 PASS Object.prototype.toString.call(result) is "[object RegExp]"
438 PASS result.toString() is test_data.toString()
439
440 Testing RegExp: /abc/
441 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
442 store = transaction.objectStore('storeName')
443 store.put(value, 'key')
444 store.get('key')
445 PASS test_data !== result is true
446 PASS Object.prototype.toString.call(result) is "[object RegExp]"
447 PASS result.toString() is test_data.toString()
448
449 Testing RegExp: /abc/g
450 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
451 store = transaction.objectStore('storeName')
452 store.put(value, 'key')
453 store.get('key')
454 PASS test_data !== result is true
455 PASS Object.prototype.toString.call(result) is "[object RegExp]"
456 PASS result.toString() is test_data.toString()
457
458 Testing RegExp: /abc/i
459 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
460 store = transaction.objectStore('storeName')
461 store.put(value, 'key')
462 store.get('key')
463 PASS test_data !== result is true
464 PASS Object.prototype.toString.call(result) is "[object RegExp]"
465 PASS result.toString() is test_data.toString()
466
467 Testing RegExp: /abc/gi
468 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
469 store = transaction.objectStore('storeName')
470 store.put(value, 'key')
471 store.get('key')
472 PASS test_data !== result is true
473 PASS Object.prototype.toString.call(result) is "[object RegExp]"
474 PASS result.toString() is test_data.toString()
475
476 Testing RegExp: /abc/m
477 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
478 store = transaction.objectStore('storeName')
479 store.put(value, 'key')
480 store.get('key')
481 PASS test_data !== result is true
482 PASS Object.prototype.toString.call(result) is "[object RegExp]"
483 PASS result.toString() is test_data.toString()
484
485 Testing RegExp: /abc/mg
486 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
487 store = transaction.objectStore('storeName')
488 store.put(value, 'key')
489 store.get('key')
490 PASS test_data !== result is true
491 PASS Object.prototype.toString.call(result) is "[object RegExp]"
492 PASS result.toString() is test_data.toString()
493
494 Testing RegExp: /abc/mi
495 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
496 store = transaction.objectStore('storeName')
497 store.put(value, 'key')
498 store.get('key')
499 PASS test_data !== result is true
500 PASS Object.prototype.toString.call(result) is "[object RegExp]"
501 PASS result.toString() is test_data.toString()
502
503 Testing RegExp: /abc/mgi
504 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
505 store = transaction.objectStore('storeName')
506 store.put(value, 'key')
507 store.get('key')
508 PASS test_data !== result is true
509 PASS Object.prototype.toString.call(result) is "[object RegExp]"
510 PASS result.toString() is test_data.toString()
511
512
513 Testing ImageData
514 canvas = document.createElement('canvas')
515 canvas.width = 8
516 canvas.height = 8
517 test_data = canvas.getContext('2d').getImageData(0, 0, 8, 8)
518 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
519 store = transaction.objectStore('storeName')
520 store.put(value, 'key')
521 store.get('key')
522 PASS test_data !== result is true
523 PASS Object.prototype.toString.call(result) is "[object ImageData]"
524 PASS result.width is test_data.width
525 PASS result.height is test_data.height
526 PASS result.data.length is test_data.data.length
527 PASS result data matches
528
529 Testing Blob
530 Skipping test
531
532 Testing File
533 Skipping test
534
535 Testing FileList
536 Skipping test
537
538 Testing Array
539 test_data = []
540 test_data[0] = 'foo'
541 test_data[1] = 'bar'
542 test_data[10] = true
543 test_data[11] = false
544 test_data[20] = 123
545 test_data[21] = 456
546 test_data[30] = null
547 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
548 store = transaction.objectStore('storeName')
549 store.put(value, 'key')
550 store.get('key')
551 PASS test_data !== result is true
552 PASS test_data.length === result.length is true
553 PASS test_data[0] is result[0]
554 PASS test_data[1] is result[1]
555 PASS test_data[10] is result[10]
556 PASS test_data[11] is result[11]
557 PASS test_data[20] is result[20]
558 PASS test_data[21] is result[21]
559 PASS test_data[30] is result[30]
560
561 Testing Object
562 test_data = []
563 test_data[0] = 'foo'
564 test_data[1] = 'bar'
565 test_data['a'] = true
566 test_data['b'] = false
567 test_data['foo'] = 123
568 test_data['bar'] = 456
569 test_data[''] = null
570 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
571 store = transaction.objectStore('storeName')
572 store.put(value, 'key')
573 store.get('key')
574 PASS test_data !== result is true
575 PASS arrayCompare(Object.keys(result).sort(), Object.keys(test_data).sort()) is true
576 PASS test_data["0"] is result["0"]
577 PASS test_data["1"] is result["1"]
578 PASS test_data["a"] is result["a"]
579 PASS test_data["b"] is result["b"]
580 PASS test_data["foo"] is result["foo"]
581 PASS test_data["bar"] is result["bar"]
582 PASS test_data[""] is result[""]
583
584
585 Test types that can't be cloned:
586
587 transaction = db.transaction('storeName', IDBTransaction.READ_WRITE)
588 store = transaction.objectStore('storeName')
589
590 Other JavaScript object types:
591 Expecting exception from store.put(new Error, 'key')
592 PASS Exception was thrown.
593 PASS code is DOMException.DATA_CLONE_ERR
594 Expecting exception from store.put(new Function, 'key')
595 PASS Exception was thrown.
596 PASS code is DOMException.DATA_CLONE_ERR
597
598 Other host object types:
599 Expecting exception from store.put(self, 'key')
600 PASS Exception was thrown.
601 PASS code is DOMException.DATA_CLONE_ERR
602 Expecting exception from store.put(document, 'key')
603 PASS Exception was thrown.
604 PASS code is DOMException.DATA_CLONE_ERR
605 Expecting exception from store.put(document.body, 'key')
606 PASS Exception was thrown.
607 PASS code is DOMException.DATA_CLONE_ERR
608 PASS successfullyParsed is true
609
610 TEST COMPLETE
611