tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_success_events_after_abort.js (1397B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 /* exported testGenerator */
      7 var testGenerator = testSteps();
      8 
      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;
     17 
     18  let db = event.target.result;
     19 
     20  event.target.onsuccess = continueToNextStep;
     21 
     22  let objectStore = db.createObjectStore("foo");
     23  objectStore.add({}, 1).onerror = errorHandler;
     24 
     25  yield undefined;
     26 
     27  objectStore = db.transaction("foo").objectStore("foo");
     28 
     29  let transaction = objectStore.transaction;
     30  transaction.oncomplete = unexpectedSuccessHandler;
     31  transaction.onabort = grabEventAndContinueHandler;
     32 
     33  let sawError = false;
     34 
     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  };
     42 
     43  transaction.abort();
     44 
     45  event = yield undefined;
     46 
     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  }
     53 
     54  finishTest();
     55 }