// META: title=IndexedDB: Test IDBIndex.getAll with options dictionary. // META: global=window,worker // META: script=resources/nested-cloning-common.js // META: script=resources/support.js // META: script=resources/support-get-all.js // META: script=resources/support-promises.js // META: timeout=long 'use_strict'; index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: 'C'}, 'Single item get'); index_get_all_values_with_options_test( /*storeName=*/ 'empty', /*options=*/ {}, 'Empty object store'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {}, 'Get all'); index_get_all_values_with_options_test( /*storeName=*/ 'generated', /*options=*/ {}, 'Get all with generated keys'); index_get_all_values_with_options_test( /*storeName=*/ 'large-values', /*options=*/ {}, 'Get all with large values'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {count: 10}, 'maxCount=10'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: IDBKeyRange.bound('G', 'M')}, 'Get bound range'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: IDBKeyRange.bound('G', 'M'), count: 3}, 'Get bound range with maxCount'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ { query: IDBKeyRange.bound('G', 'K', /*lowerOpen=*/ false, /*upperOpen=*/ true) }, 'Get upper excluded'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ { query: IDBKeyRange.bound('G', 'K', /*lowerOpen=*/ true, /*upperOpen=*/ false) }, 'Get lower excluded'); index_get_all_values_with_options_test( /*storeName=*/ 'generated', /*options=*/ {query: IDBKeyRange.bound(4, 15), count: 3}, 'Get bound range (generated) with maxCount'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: 'Doesn\'t exist'}, 'Non existent key'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {count: 0}, 'maxCount=0'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {count: 4294967295}, 'Max value count'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: IDBKeyRange.upperBound('0')}, 'Query with empty range where first key < upperBound'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {query: IDBKeyRange.lowerBound('ZZ')}, 'Query with empty range where lowerBound < last key'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line-not-unique', /*options=*/ {query: 'first'}, 'Retrieve multiEntry key'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line-multi', /*options=*/ {query: 'vowel'}, 'Retrieve one key multiple values'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {direction: 'next'}, 'Direction: next'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {direction: 'prev'}, 'Direction: prev'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {direction: 'nextunique'}, 'Direction: nextunique'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ {direction: 'prevunique'}, 'Direction: prevunique'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ { direction: 'prev', query: IDBKeyRange.bound('b', 'x'), }, 'Direction and query'); index_get_all_values_with_options_test( /*storeName=*/ 'out-of-line', /*options=*/ { direction: 'prev', query: IDBKeyRange.bound('b', 'x'), count: 4 }, 'Direction, query and count'); get_all_with_options_and_count_test( 'getAll', /*storeName=*/ 'out-of-line', /*indexName=*/ 'test_idx', 'Get all values with both options and count'); get_all_with_invalid_keys_test( 'getAll', /*storeName=*/ 'out-of-line', /*indexName=*/ 'test_idx', /*shouldUseDictionary=*/ true, 'Get all values with invalid query keys');