tor-browser

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

test_create_index_with_integer_keys.js (1758B)


      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  const data = {
     11    id: new Date().getTime(),
     12    num: parseInt(Math.random() * 1000),
     13  };
     14 
     15  let request = indexedDB.open(
     16    this.window ? window.location.pathname : "Splendid Test",
     17    1
     18  );
     19  request.onerror = errorHandler;
     20  request.onupgradeneeded = grabEventAndContinueHandler;
     21  let event = yield undefined;
     22 
     23  let db = event.target.result;
     24  db.onerror = errorHandler;
     25 
     26  event.target.onsuccess = continueToNextStep;
     27 
     28  // Make object store, add data.
     29  let objectStore = db.createObjectStore("foo", { keyPath: "id" });
     30  objectStore.add(data);
     31  yield undefined;
     32  db.close();
     33 
     34  request = indexedDB.open(
     35    this.window ? window.location.pathname : "Splendid Test",
     36    2
     37  );
     38  request.onerror = errorHandler;
     39  request.onupgradeneeded = grabEventAndContinueHandler;
     40  event = yield undefined;
     41 
     42  let db2 = event.target.result;
     43  db2.onerror = errorHandler;
     44 
     45  event.target.onsuccess = continueToNextStep;
     46 
     47  // Create index.
     48  event.target.transaction.objectStore("foo").createIndex("foo", "num");
     49  yield undefined;
     50 
     51  // Make sure our object made it into the index.
     52  let seenCount = 0;
     53 
     54  db2
     55    .transaction("foo")
     56    .objectStore("foo")
     57    .index("foo")
     58    .openKeyCursor().onsuccess = function (event) {
     59    let cursor = event.target.result;
     60    if (cursor) {
     61      is(cursor.key, data.num, "Good key");
     62      is(cursor.primaryKey, data.id, "Good value");
     63      seenCount++;
     64      cursor.continue();
     65    } else {
     66      continueToNextStep();
     67    }
     68  };
     69  yield undefined;
     70 
     71  is(seenCount, 1, "Saw our entry");
     72 
     73  finishTest();
     74 }