tor-browser

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

test_getAll.js (6503B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 var testGenerator = testSteps();
      7 
      8 function* testSteps() {
      9  const name = this.window ? window.location.pathname : "Splendid Test";
     10 
     11  const values = ["a", "1", 1, "foo", 300, true, false, 4.5, null];
     12 
     13  let request = indexedDB.open(name, 1);
     14  request.onerror = errorHandler;
     15  request.onupgradeneeded = grabEventAndContinueHandler;
     16  let event = yield undefined;
     17 
     18  let db = event.target.result;
     19 
     20  let objectStore = db.createObjectStore("foo", { autoIncrement: true });
     21 
     22  request.onsuccess = grabEventAndContinueHandler;
     23  request = objectStore.mozGetAll();
     24  request.onerror = errorHandler;
     25  request.onsuccess = grabEventAndContinueHandler;
     26  event = yield undefined;
     27 
     28  is(event.target.result instanceof Array, true, "Got an array object");
     29  is(event.target.result.length, 0, "No elements");
     30 
     31  let addedCount = 0;
     32 
     33  for (let i in values) {
     34    request = objectStore.add(values[i]);
     35    request.onerror = errorHandler;
     36    request.onsuccess = function () {
     37      if (++addedCount == values.length) {
     38        executeSoon(function () {
     39          testGenerator.next();
     40        });
     41      }
     42    };
     43  }
     44  yield undefined;
     45  yield undefined;
     46 
     47  request = db.transaction("foo").objectStore("foo").mozGetAll();
     48  request.onerror = errorHandler;
     49  request.onsuccess = grabEventAndContinueHandler;
     50  event = yield undefined;
     51 
     52  is(event.target.result instanceof Array, true, "Got an array object");
     53  is(event.target.result.length, values.length, "Same length");
     54 
     55  for (let i in event.target.result) {
     56    is(event.target.result[i], values[i], "Same value");
     57  }
     58 
     59  request = db.transaction("foo").objectStore("foo").mozGetAll(null, 5);
     60  request.onerror = errorHandler;
     61  request.onsuccess = grabEventAndContinueHandler;
     62  event = yield undefined;
     63 
     64  is(event.target.result instanceof Array, true, "Got an array object");
     65  is(event.target.result.length, 5, "Correct length");
     66 
     67  for (let i in event.target.result) {
     68    is(event.target.result[i], values[i], "Same value");
     69  }
     70 
     71  let keyRange = IDBKeyRange.bound(1, 9);
     72 
     73  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
     74  request.onerror = errorHandler;
     75  request.onsuccess = grabEventAndContinueHandler;
     76  event = yield undefined;
     77 
     78  is(event.target.result instanceof Array, true, "Got an array object");
     79  is(event.target.result.length, values.length, "Correct length");
     80 
     81  for (let i in event.target.result) {
     82    is(event.target.result[i], values[i], "Same value");
     83  }
     84 
     85  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0);
     86  request.onerror = errorHandler;
     87  request.onsuccess = grabEventAndContinueHandler;
     88  event = yield undefined;
     89 
     90  is(event.target.result instanceof Array, true, "Got an array object");
     91  is(event.target.result.length, values.length, "Correct length");
     92 
     93  for (let i in event.target.result) {
     94    is(event.target.result[i], values[i], "Same value");
     95  }
     96 
     97  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, null);
     98  request.onerror = errorHandler;
     99  request.onsuccess = grabEventAndContinueHandler;
    100  event = yield undefined;
    101 
    102  is(event.target.result instanceof Array, true, "Got an array object");
    103  is(event.target.result.length, values.length, "Correct length");
    104 
    105  for (let i in event.target.result) {
    106    is(event.target.result[i], values[i], "Same value");
    107  }
    108 
    109  request = db
    110    .transaction("foo")
    111    .objectStore("foo")
    112    .mozGetAll(keyRange, undefined);
    113  request.onerror = errorHandler;
    114  request.onsuccess = grabEventAndContinueHandler;
    115  event = yield undefined;
    116 
    117  is(event.target.result instanceof Array, true, "Got an array object");
    118  is(event.target.result.length, values.length, "Correct length");
    119 
    120  for (let i in event.target.result) {
    121    is(event.target.result[i], values[i], "Same value");
    122  }
    123 
    124  keyRange = IDBKeyRange.bound(4, 7);
    125 
    126  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
    127  request.onerror = errorHandler;
    128  request.onsuccess = grabEventAndContinueHandler;
    129  event = yield undefined;
    130 
    131  is(event.target.result instanceof Array, true, "Got an array object");
    132  is(event.target.result.length, 4, "Correct length");
    133 
    134  for (let i in event.target.result) {
    135    is(event.target.result[i], values[parseInt(i) + 3], "Same value");
    136  }
    137 
    138  // Get should take a key range also but it doesn't return an array.
    139  request = db.transaction("foo").objectStore("foo").get(keyRange);
    140  request.onerror = errorHandler;
    141  request.onsuccess = grabEventAndContinueHandler;
    142  event = yield undefined;
    143 
    144  is(event.target.result instanceof Array, false, "Not an array object");
    145  is(event.target.result, values[3], "Correct value");
    146 
    147  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 2);
    148  request.onerror = errorHandler;
    149  request.onsuccess = grabEventAndContinueHandler;
    150  event = yield undefined;
    151 
    152  is(event.target.result instanceof Array, true, "Got an array object");
    153  is(event.target.result.length, 2, "Correct length");
    154 
    155  for (let i in event.target.result) {
    156    is(event.target.result[i], values[parseInt(i) + 3], "Same value");
    157  }
    158 
    159  keyRange = IDBKeyRange.bound(4, 7);
    160 
    161  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 50);
    162  request.onerror = errorHandler;
    163  request.onsuccess = grabEventAndContinueHandler;
    164  event = yield undefined;
    165 
    166  is(event.target.result instanceof Array, true, "Got an array object");
    167  is(event.target.result.length, 4, "Correct length");
    168 
    169  for (let i in event.target.result) {
    170    is(event.target.result[i], values[parseInt(i) + 3], "Same value");
    171  }
    172 
    173  keyRange = IDBKeyRange.bound(4, 7);
    174 
    175  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0);
    176  request.onerror = errorHandler;
    177  request.onsuccess = grabEventAndContinueHandler;
    178  event = yield undefined;
    179 
    180  is(event.target.result instanceof Array, true, "Got an array object");
    181  is(event.target.result.length, 4, "Correct length");
    182 
    183  keyRange = IDBKeyRange.bound(4, 7, true, true);
    184 
    185  request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
    186  request.onerror = errorHandler;
    187  request.onsuccess = grabEventAndContinueHandler;
    188  event = yield undefined;
    189 
    190  is(event.target.result instanceof Array, true, "Got an array object");
    191  is(event.target.result.length, 2, "Correct length");
    192 
    193  for (let i in event.target.result) {
    194    is(event.target.result[i], values[parseInt(i) + 4], "Same value");
    195  }
    196 
    197  finishTest();
    198 }