tor-browser

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

objectstore_keyorder.any.js (1104B)


      1 // META: title=IDBObjectStore key sort order
      2 // META: global=window,worker
      3 // META: script=resources/support.js
      4 
      5 'use strict';
      6 
      7 async_test(t => {
      8  let db;
      9  const d = new Date();
     10  const records = [{key: d}, {key: 'test'}, {key: 1}, {key: 2.55}];
     11  const expectedKeyOrder = [1, 2.55, d.valueOf(), 'test'];
     12 
     13  const open_rq = createdb(t);
     14  open_rq.onupgradeneeded = t.step_func((e) => {
     15    db = e.target.result;
     16    const objStore = db.createObjectStore('store', {keyPath: 'key'});
     17 
     18    for (let i = 0; i < records.length; i++)
     19      objStore.add(records[i]);
     20  });
     21 
     22  open_rq.onsuccess = t.step_func((e) => {
     23    let actual_keys = [];
     24    const rq =
     25        db.transaction('store', 'readonly').objectStore('store').openCursor();
     26 
     27    rq.onsuccess = t.step_func((e) => {
     28      const cursor = e.target.result;
     29 
     30      if (cursor) {
     31        actual_keys.push(cursor.key.valueOf());
     32        cursor.continue();
     33      } else {
     34        assert_array_equals(actual_keys, expectedKeyOrder);
     35        t.done();
     36      }
     37    });
     38  });
     39 }, 'Verify key sort order in an object store is \'number < Date < DOMString\' ');