tor-browser

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

test_invalid_cursor.js (1642B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 /* exported testGenerator, disableWorkerTest */
      7 var disableWorkerTest = "Need to implement a gc() function for worker tests";
      8 
      9 var testGenerator = testSteps();
     10 
     11 function* testSteps() {
     12  const dbName = "window" in this ? window.location.pathname : "test";
     13  const dbVersion = 1;
     14  const objectStoreName = "foo";
     15  const data = 0;
     16 
     17  let req = indexedDB.open(dbName, dbVersion);
     18  req.onerror = errorHandler;
     19  req.onupgradeneeded = grabEventAndContinueHandler;
     20  req.onsuccess = grabEventAndContinueHandler;
     21 
     22  let event = yield undefined;
     23 
     24  is(event.type, "upgradeneeded", "Got upgradeneeded event");
     25 
     26  let db = event.target.result;
     27 
     28  let objectStore = db.createObjectStore(objectStoreName, {
     29    autoIncrement: true,
     30  });
     31  objectStore.add(data);
     32 
     33  event = yield undefined;
     34 
     35  is(event.type, "success", "Got success event for open");
     36 
     37  objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
     38 
     39  objectStore.openCursor().onsuccess = grabEventAndContinueHandler;
     40  event = yield undefined;
     41 
     42  is(event.type, "success", "Got success event for openCursor");
     43 
     44  let cursor = event.target.result;
     45  is(cursor.value, data, "Got correct cursor value");
     46 
     47  objectStore.get(cursor.key).onsuccess = grabEventAndContinueHandler;
     48  event = yield undefined;
     49 
     50  is(event.target.result, data, "Got correct get value");
     51 
     52  info("Collecting garbage");
     53 
     54  gc();
     55 
     56  info("Done collecting garbage");
     57 
     58  cursor.continue();
     59  event = yield undefined;
     60 
     61  is(event.target.result, null, "No more entries");
     62 
     63  finishTest();
     64 }