diff options
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm')
-rw-r--r-- | testing/web-platform/tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm b/testing/web-platform/tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm new file mode 100644 index 000000000..228dfc457 --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>IDBObjectStore.createIndex() - Event ordering for a later deleted index</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 db, + events = [], + t = async_test(document.title, {timeout: 10000}) + + var open_rq = createdb(t); + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + e.target.transaction.oncomplete = log("transaction.complete"); + + var txn = e.target.transaction, + objStore = db.createObjectStore("store"); + + var rq_add1 = objStore.add({ animal: "Unicorn" }, 1); + rq_add1.onsuccess = log("rq_add1.success"); + rq_add1.onerror = log("rq_add1.error"); + + objStore.createIndex("index", "animal", { unique: true }); + + var rq_add2 = objStore.add({ animal: "Unicorn" }, 2); + rq_add2.onsuccess = log("rq_add2.success"); + rq_add2.onerror = function(e) { + log("rq_add2.error")(e); + e.preventDefault(); + e.stopPropagation(); + } + + objStore.deleteIndex("index"); + + var rq_add3 = objStore.add({ animal: "Unicorn" }, 3); + rq_add3.onsuccess = log("rq_add3.success"); + rq_add3.onerror = log("rq_add3.error"); + } + + open_rq.onsuccess = function(e) { + log("open_rq.success")(e); + assert_array_equals(events, [ "rq_add1.success", + "rq_add2.error: ConstraintError", + "rq_add3.success", + + "transaction.complete", + + "open_rq.success" ], + "events"); + t.done(); + } + + 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> |