Bug 1816170 - Disable perftest-on-autoland cron. r=aglavic
[gecko.git] / dom / indexedDB / test / unit / test_success_events_after_abort.js
blob68cdbbcfd7e51e0767fcbc960d6cca9c0400f5c8
1 /**
2  * Any copyright is dedicated to the Public Domain.
3  * http://creativecommons.org/publicdomain/zero/1.0/
4  */
6 /* exported testGenerator */
7 var testGenerator = testSteps();
9 function* testSteps() {
10   let request = indexedDB.open(
11     this.window ? window.location.pathname : "Splendid Test",
12     1
13   );
14   request.onerror = errorHandler;
15   request.onupgradeneeded = grabEventAndContinueHandler;
16   let event = yield undefined;
18   let db = event.target.result;
20   event.target.onsuccess = continueToNextStep;
22   let objectStore = db.createObjectStore("foo");
23   objectStore.add({}, 1).onerror = errorHandler;
25   yield undefined;
27   objectStore = db.transaction("foo").objectStore("foo");
29   let transaction = objectStore.transaction;
30   transaction.oncomplete = unexpectedSuccessHandler;
31   transaction.onabort = grabEventAndContinueHandler;
33   let sawError = false;
35   request = objectStore.get(1);
36   request.onsuccess = unexpectedSuccessHandler;
37   request.onerror = function(event) {
38     is(event.target.error.name, "AbortError", "Good error");
39     sawError = true;
40     event.preventDefault();
41   };
43   transaction.abort();
45   event = yield undefined;
47   is(event.type, "abort", "Got abort event");
48   is(sawError, true, "Saw get() error");
49   if (this.window) {
50     // Make sure the success event isn't queued somehow.
51     SpecialPowers.Services.tm.spinEventLoopUntilEmpty();
52   }
54   finishTest();