diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm')
-rw-r--r-- | testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm b/testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm new file mode 100644 index 000000000..f4b5ec0ae --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/transaction_bubble-and-capture.htm @@ -0,0 +1,75 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Capture and bubble</title> +<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js></script> + +<script> + var events = []; + + var open_rq = createdb(async_test(document.title, {timeout: 10000})); + open_rq.onupgradeneeded = function(e) { + var db = e.target.result; + var txn = e.target.transaction; + var store = db.createObjectStore("store"); + var rq1 = store.add("", 1); + var rq2 = store.add("", 1); + + db.onerror = undefined; // We will run db.error, but don't let that fail the test + + log_events('db', db, 'success'); + log_events('db', db, 'error'); + + log_events('txn', txn, 'success'); + log_events('txn', txn, 'error'); + + log_events('rq1', rq1, 'success'); + log_events('rq1', rq1, 'error'); + + log_events('rq2', rq2, 'success'); + log_events('rq2', rq2, 'error'); + + // Don't let it get to abort + db.addEventListener('error', function(e) { e.preventDefault(); }, false); + } + + open_rq.onsuccess = function(e) { + log("open_rq.success")(e); + assert_array_equals(events, [ + "capture db.success", + "capture txn.success", + "capture rq1.success", + "bubble rq1.success", + + "capture db.error: ConstraintError", + "capture txn.error: ConstraintError", + "capture rq2.error: ConstraintError", + "bubble rq2.error: ConstraintError", + "bubble txn.error: ConstraintError", + "bubble db.error: ConstraintError", + + "open_rq.success", + ], + "events"); + this.done(); + } + + + function log_events(type, obj, evt) { + obj.addEventListener(evt, log('capture ' + type + '.' + evt), true); + obj.addEventListener(evt, log('bubble ' + type + '.' + evt), false); + } + + function log(msg) { + return function(e) { + if(e && e.target && e.target.error) + events.push(msg + ": " + e.target.error.name); + else + events.push(msg); + }; + } +</script> + +<div id=log></div> |