OLD | NEW |
1 if (this.importScripts) { | 1 if (this.importScripts) { |
2 importScripts('../../../resources/js-test.js'); | 2 importScripts('../../../resources/js-test.js'); |
3 importScripts('shared.js'); | 3 importScripts('shared.js'); |
4 } | 4 } |
5 | 5 |
6 description("Test event propogation on IDBTransaction."); | 6 description("Test event propogation on IDBTransaction."); |
7 | 7 |
8 indexedDBTest(prepareDatabase, startTest); | 8 indexedDBTest(prepareDatabase, verifyAbort); |
9 function prepareDatabase() | 9 function prepareDatabase() |
10 { | 10 { |
11 db = event.target.result; | 11 db = event.target.result; |
12 event.target.transaction.onabort = unexpectedAbortCallback; | 12 event.target.transaction.onabort = unexpectedAbortCallback; |
13 | 13 |
14 store = evalAndLog("store = db.createObjectStore('storeName', null)"); | 14 store = evalAndLog("store = db.createObjectStore('storeName', null)"); |
15 request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); | 15 request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); |
16 request.onerror = unexpectedErrorCallback; | 16 request.onerror = unexpectedErrorCallback; |
17 } | 17 } |
18 | 18 |
19 function startTest() | 19 function verifyAbort() |
20 { | 20 { |
21 debug("Verifing abort"); | 21 debug("Verifing abort"); |
22 trans = evalAndLog("trans = db.transaction(['storeName'], 'readwrite')"); | 22 trans = evalAndLog("trans = db.transaction(['storeName'], 'readwrite')"); |
23 evalAndLog("trans.onabort = abortFiredCallback"); | 23 evalAndLog("trans.onabort = abortFiredCallback"); |
24 evalAndLog("trans.oncomplete = unexpectedAbortCallback"); | 24 evalAndLog("trans.oncomplete = unexpectedAbortCallback"); |
25 evalAndLog("db.addEventListener('abort', dbAbortCaptureCallback, true)"); | 25 evalAndLog("db.addEventListener('abort', dbAbortCaptureCallback, true)"); |
26 evalAndLog("db.addEventListener('abort', dbAbortBubbleCallback, false)"); | 26 evalAndLog("db.addEventListener('abort', dbAbortBubbleCallback, false)"); |
27 evalAndLog("db.addEventListener('complete', unexpectedCompleteCallback, true
)"); | 27 evalAndLog("db.addEventListener('complete', unexpectedCompleteCallback, true
)"); |
28 evalAndLog("db.addEventListener('complete', unexpectedCompleteCallback, fals
e)"); | 28 evalAndLog("db.addEventListener('complete', unexpectedCompleteCallback, fals
e)"); |
29 store = evalAndLog("store = trans.objectStore('storeName')"); | 29 store = evalAndLog("store = trans.objectStore('storeName')"); |
30 evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); | 30 evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); |
| 31 expectError(); |
31 dbCaptureFired = false; | 32 dbCaptureFired = false; |
32 abortFired = false; | 33 abortFired = false; |
33 dbBubbleFired1 = false; | 34 dbBubbleFired1 = false; |
34 } | 35 } |
35 | 36 |
36 function dbAbortCaptureCallback() | 37 function dbAbortCaptureCallback() |
37 { | 38 { |
38 debug(""); | 39 debug(""); |
39 debug("In IDBDatabase abort capture"); | 40 debug("In IDBDatabase abort capture"); |
40 shouldBeFalse("dbCaptureFired"); | 41 shouldBeFalse("dbCaptureFired"); |
(...skipping 19 matching lines...) Expand all Loading... |
60 function dbAbortBubbleCallback() | 61 function dbAbortBubbleCallback() |
61 { | 62 { |
62 debug(""); | 63 debug(""); |
63 debug("In IDBDatabase error bubble"); | 64 debug("In IDBDatabase error bubble"); |
64 shouldBeTrue("dbCaptureFired"); | 65 shouldBeTrue("dbCaptureFired"); |
65 shouldBeTrue("abortFired"); | 66 shouldBeTrue("abortFired"); |
66 shouldBeFalse("dbBubbleFired1"); | 67 shouldBeFalse("dbBubbleFired1"); |
67 shouldBe("event.target", "trans"); | 68 shouldBe("event.target", "trans"); |
68 shouldBe("event.currentTarget", "db"); | 69 shouldBe("event.currentTarget", "db"); |
69 dbBubbleFired1 = true; | 70 dbBubbleFired1 = true; |
| 71 |
70 debug(""); | 72 debug(""); |
71 debug("Verifing success."); | 73 debug("Verifing success."); |
72 trans = evalAndLog("trans = db.transaction(['storeName'], 'readwrite')"); | 74 trans = evalAndLog("trans = db.transaction(['storeName'], 'readwrite')"); |
73 evalAndLog("trans.oncomplete = completeFiredCallback"); | 75 evalAndLog("trans.oncomplete = completeFiredCallback"); |
74 evalAndLog("trans.onabort = unexpectedAbortCallback"); | 76 evalAndLog("trans.onabort = unexpectedAbortCallback"); |
75 evalAndLog("db.removeEventListener('abort', dbAbortCaptureCallback, true)"); | 77 evalAndLog("db.removeEventListener('abort', dbAbortCaptureCallback, true)"); |
76 evalAndLog("db.removeEventListener('abort', dbAbortBubbleCallback, false)"); | 78 evalAndLog("db.removeEventListener('abort', dbAbortBubbleCallback, false)"); |
77 evalAndLog("db.removeEventListener('complete', unexpectedCompleteCallback, t
rue)"); | 79 evalAndLog("db.removeEventListener('complete', unexpectedCompleteCallback, t
rue)"); |
78 evalAndLog("db.removeEventListener('complete', unexpectedCompleteCallback, f
alse)"); | 80 evalAndLog("db.removeEventListener('complete', unexpectedCompleteCallback, f
alse)"); |
79 evalAndLog("db.addEventListener('complete', dbCompleteCaptureCallback, true)
"); | 81 evalAndLog("db.addEventListener('complete', dbCompleteCaptureCallback, true)
"); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 finishJSTest(); | 115 finishJSTest(); |
114 } | 116 } |
115 | 117 |
116 function dbCompleteBubbleCallback() | 118 function dbCompleteBubbleCallback() |
117 { | 119 { |
118 debug(""); | 120 debug(""); |
119 debug("In IDBDatabase complete bubble"); | 121 debug("In IDBDatabase complete bubble"); |
120 testFailed("Complete bubble callback should NOT fire"); | 122 testFailed("Complete bubble callback should NOT fire"); |
121 dbBubbleFired2 = true; | 123 dbBubbleFired2 = true; |
122 } | 124 } |
OLD | NEW |