1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
Test event propogation on IDBRequest.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
webkitIndexedDB.open('request-event-propagation')
db = event.target.result
db.setVersion('new version')
setVersionSuccess():
trans = event.target.result
PASS trans !== null is true
trans.oncomplete = startTest
Deleted all object stores.
store = db.createObjectStore('storeName', null)
store.add({x: 'value', y: 'zzz'}, 'key')
Verify that handler fires and that not preventing default will result in an abort
trans = db.transaction([], webkitIDBTransaction.READ_WRITE)
trans.onabort = transactionAborted
trans.oncomplete = unexpectedCompleteCallback
trans.onerror = allowDefault
store = trans.objectStore('storeName')
store.add({x: 'value', y: 'zzz'}, 'key')
PASS Event handler fired
Doing nothing to prevent the default action...
PASS handlerFired is true
Verifing error
trans = db.transaction([], webkitIDBTransaction.READ_WRITE)
trans.onabort = transactionAborted2
trans.oncomplete = unexpectedAbortCallback
trans.addEventListener('error', errorCaptureCallback, true)
trans.addEventListener('error', errorBubbleCallback, false)
trans.addEventListener('success', unexpectedSuccessCallback, true)
trans.addEventListener('success', unexpectedSuccessCallback, false)
db.addEventListener('error', dbErrorCaptureCallback, true)
db.addEventListener('error', dbErrorBubbleCallback, false)
db.addEventListener('success', unexpectedSuccessCallback, true)
db.addEventListener('success', unexpectedSuccessCallback, false)
store = trans.objectStore('storeName')
store.add({x: 'value', y: 'zzz'}, 'key')
In IDBDatabase error capture
PASS dbCaptureFired is false
PASS captureFired is false
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is db
In IDBTransaction error capture
PASS dbCaptureFired is true
PASS captureFired is false
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is trans
In IDBRequest handler
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is request
In IDBTransaction error bubble
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is true
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is trans
In IDBDatabase error bubble
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is true
PASS bubbleFired is true
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is db
Transaction aborted
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is true
PASS bubbleFired is true
PASS dbBubbleFired is true
Verifing success.
trans = db.transaction([], webkitIDBTransaction.READ_WRITE)
trans.oncomplete = transactionComplete
trans.onabort = unexpectedAbortCallback
trans.addEventListener('success', successCaptureCallback, true)
trans.addEventListener('success', successBubbleCallback, false)
trans.addEventListener('error', unexpectedErrorCallback, true)
trans.addEventListener('error', unexpectedErrorCallback, false)
db.removeEventListener('error', dbErrorCaptureCallback, true)
db.removeEventListener('error', dbErrorBubbleCallback, false)
db.removeEventListener('success', unexpectedSuccessCallback, true)
db.removeEventListener('success', unexpectedSuccessCallback, false)
db.addEventListener('success', dbSuccessCaptureCallback, true)
db.addEventListener('success', dbSuccessBubbleCallback, false)
db.addEventListener('error', unexpectedErrorCallback, true)
db.addEventListener('error', unexpectedErrorCallback, false)
store = trans.objectStore('storeName')
store.add({x: 'value', y: 'zzz'}, 'key2')
In IDBDatabase success capture
PASS dbCaptureFired is false
PASS captureFired is false
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is db
In IDBTransaction success capture
PASS dbCaptureFired is true
PASS captureFired is false
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is trans
In IDBRequest handler
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is false
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS event.target is request
PASS event.currentTarget is request
Transaction completed
PASS dbCaptureFired is true
PASS captureFired is true
PASS requestFired is true
PASS bubbleFired is false
PASS dbBubbleFired is false
PASS successfullyParsed is true
TEST COMPLETE
|