tor-browser

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

delete-range.any.js (1598B)


      1 // META: title=Delete range
      2 // META: script=resources/support.js
      3 
      4 "use strict";
      5 
      6 let entries = [
      7    { lower: 3, upper: 8, lowerOpen: false, upperOpen: false, expected: [1, 2, 9, 10]},
      8    { lower: 3, upper: 8, lowerOpen: true, upperOpen: false, expected: [1, 2, 3, 9, 10]},
      9    { lower: 3, upper: 8, lowerOpen: false, upperOpen: true, expected: [1, 2, 8, 9, 10]},
     10    { lower: 3, upper: 8, lowerOpen: true, upperOpen: true, expected: [1, 2, 3, 8, 9, 10]}
     11 ];
     12 
     13 for (const entry of entries) {
     14    indexeddb_test(
     15        function upgrade_func(t, db) {
     16            db.createObjectStore("store");
     17        },
     18        function open_func(t, db) {
     19            const store = db.transaction("store", "readwrite").objectStore("store");
     20 
     21            for (let i = 1; i <= 10; ++i) {
     22                store.put(i, i);
     23            }
     24            store.delete(IDBKeyRange.bound(entry.lower,
     25                entry.upper,
     26                entry.lowerOpen,
     27                entry.upperOpen));
     28 
     29            let keys = [];
     30            const cursor_request = store.openCursor();
     31            cursor_request.onsuccess = t.step_func(function () {
     32                const cursor = cursor_request.result;
     33                if (cursor) {
     34                    keys.push(cursor.key);
     35                    cursor.continue();
     36                } else {
     37                    assert_array_equals(entry.expected, keys, `Expected: ${entry.expected}, got: ${keys}.`);
     38                    t.done();
     39                }
     40            });
     41            cursor_request.onerror = t.unreached_func("Failed to open cursor for read request.");
     42        }
     43    )
     44 }