tor-browser

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

idbobjectstore_getAll.any.js (3850B)


      1 // META: title=IndexedDB: Test IDBObjectStore.getAll
      2 // META: global=window,worker
      3 // META: script=resources/nested-cloning-common.js
      4 // META: script=resources/support.js
      5 // META: script=resources/support-get-all.js
      6 // META: script=resources/support-promises.js
      7 // META: timeout=long
      8 
      9 'use strict';
     10 
     11 object_store_get_all_values_test(
     12    /*storeName=*/ 'out-of-line', /*options=*/ {query: 'c'}, 'Single item get');
     13 
     14 object_store_get_all_values_test(
     15    /*storeName=*/ 'generated', /*options=*/ {query: 3},
     16    'Single item get (generated key)');
     17 
     18 object_store_get_all_values_test(
     19    /*storeName=*/ 'empty', /*options=*/ undefined,
     20    'getAll on empty object store');
     21 
     22 object_store_get_all_values_test(
     23    /*storeName=*/ 'out-of-line', /*options=*/ undefined, 'Get all values');
     24 
     25 object_store_get_all_values_test(
     26    /*storeName=*/ 'large-values', /*options=*/ undefined,
     27    'Get all with large values');
     28 
     29 object_store_get_all_values_test(
     30    /*storeName=*/ 'out-of-line', /*options=*/ {count: 10}, 'Test maxCount');
     31 
     32 object_store_get_all_values_test(
     33    /*storeName=*/ 'out-of-line',
     34    /*options=*/ {query: IDBKeyRange.bound('g', 'm')}, 'Get bound range');
     35 
     36 object_store_get_all_values_test(
     37    /*storeName=*/ 'out-of-line',
     38    /*options=*/ {query: IDBKeyRange.bound('g', 'm'), count: 3},
     39    'Get bound range with maxCount');
     40 
     41 object_store_get_all_values_test(
     42    /*storeName=*/ 'out-of-line',
     43    /*options=*/ {
     44      query:
     45          IDBKeyRange.bound('g', 'k', /*lowerOpen=*/ false, /*upperOpen=*/ true)
     46    },
     47    'Get upper excluded');
     48 
     49 object_store_get_all_values_test(
     50    /*storeName=*/ 'out-of-line',
     51    /*options=*/ {
     52      query:
     53          IDBKeyRange.bound('g', 'k', /*lowerOpen=*/ true, /*upperOpen=*/ false)
     54    },
     55    'Get lower excluded');
     56 
     57 object_store_get_all_values_test(
     58    /*storeName=*/ 'generated',
     59    /*options=*/ {query: IDBKeyRange.bound(4, 15), count: 3},
     60    'Get bound range (generated) with maxCount');
     61 
     62 object_store_get_all_values_test(
     63    /*storeName=*/ 'out-of-line',
     64    /*options=*/ {query: 'Doesn\'t exist'}, 'Non existent key');
     65 
     66 object_store_get_all_values_test(
     67    /*storeName=*/ 'out-of-line', /*options=*/ {count: 0}, 'zero maxCount');
     68 
     69 object_store_get_all_values_test(
     70    /*storeName=*/ 'out-of-line', /*options=*/ {count: 4294967295},
     71    'Max value count');
     72 
     73 object_store_get_all_values_test(
     74    /*storeName=*/ 'out-of-line',
     75    /*options=*/ {query: IDBKeyRange.upperBound('0')},
     76    'Query with empty range where  first key < upperBound');
     77 
     78 object_store_get_all_values_test(
     79    /*storeName=*/ 'out-of-line',
     80    /*options=*/ {query: IDBKeyRange.lowerBound('zz')},
     81    'Query with empty range where lowerBound < last key');
     82 
     83 object_store_get_all_test_setup(
     84    /*storeName=*/ 'out-of-line', (test, connection, expectedRecords) => {
     85      const transaction = connection.transaction('out-of-line', 'readonly');
     86      const store = transaction.objectStore('out-of-line');
     87      const request = store.getAll();
     88      transaction.commit();
     89      transaction.oncomplete =
     90          test.unreached_func('transaction completed before request succeeded');
     91 
     92      request.onerror = test.unreached_func('getAll request should succeed');
     93      request.onsuccess = test.step_func(event => {
     94        // Convert the expected array of records to an array of IDB values.
     95        const expectedResults =
     96            calculateExpectedGetAllResults('getAll', expectedRecords);
     97 
     98        const actualResults = event.target.result;
     99        verifyGetAllResults('getAll', actualResults, expectedResults);
    100        transaction.oncomplete = test.step_func_done();
    101      });
    102    }, 'Get all values with transaction.commit()');
    103 
    104 get_all_with_invalid_keys_test(
    105    'getAll', /*storeName=*/ 'out-of-line', /*indexName=*/ undefined,
    106    /*shouldUseDictionary=*/ false, 'Get all values with invalid query keys');