idbkeyrange.any.js (4836B)
1 // META: title=IDBKeyRange Tests 2 // META: global=window,worker 3 // META: script=resources/support.js 4 5 'use strict'; 6 7 test(() => { 8 const keyRange = IDBKeyRange.only(1); 9 assert_true( 10 keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); 11 assert_equals(keyRange.lower, 1, 'keyRange'); 12 assert_equals(keyRange.upper, 1, 'keyRange'); 13 assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); 14 assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); 15 }, 'IDBKeyRange.only() - returns an IDBKeyRange and the properties are set correctly'); 16 17 test(() => { 18 assert_throws_dom('DataError', () => { 19 IDBKeyRange.only(undefined); 20 }, 'undefined is not a valid key'); 21 assert_throws_dom('DataError', () => { 22 IDBKeyRange.only(null); 23 }, 'null is not a valid key'); 24 assert_throws_dom('DataError', () => { 25 IDBKeyRange.only({}); 26 }, 'Object is not a valid key'); 27 assert_throws_dom('DataError', () => { 28 IDBKeyRange.only(Symbol()); 29 }, 'Symbol is not a valid key'); 30 assert_throws_dom('DataError', () => { 31 IDBKeyRange.only(true); 32 }, 'boolean is not a valid key'); 33 assert_throws_dom('DataError', () => { 34 IDBKeyRange.only(() => {}); 35 }, 'function is not a valid key'); 36 }, 'IDBKeyRange.only() - throws on invalid keys'); 37 38 test(() => { 39 const keyRange = IDBKeyRange.lowerBound(1, true); 40 assert_true( 41 keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); 42 assert_equals(keyRange.lower, 1, 'keyRange.lower'); 43 assert_equals(keyRange.upper, undefined, 'keyRange.upper'); 44 assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); 45 assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); 46 }, 'IDBKeyRange.lowerBound() - returns an IDBKeyRange and the properties are set correctly'); 47 48 test(() => { 49 const keyRange = IDBKeyRange.lowerBound(1); 50 assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); 51 }, 'IDBKeyRange.lowerBound() - \'open\' parameter has correct default set'); 52 53 test(() => { 54 assert_throws_dom('DataError', () => { 55 IDBKeyRange.lowerBound(undefined); 56 }, 'undefined is not a valid key'); 57 assert_throws_dom('DataError', () => { 58 IDBKeyRange.lowerBound(null); 59 }, 'null is not a valid key'); 60 assert_throws_dom('DataError', () => { 61 IDBKeyRange.lowerBound({}); 62 }, 'Object is not a valid key'); 63 assert_throws_dom('DataError', () => { 64 IDBKeyRange.lowerBound(Symbol()); 65 }, 'Symbol is not a valid key'); 66 assert_throws_dom('DataError', () => { 67 IDBKeyRange.lowerBound(true); 68 }, 'boolean is not a valid key'); 69 assert_throws_dom('DataError', () => { 70 IDBKeyRange.lowerBound(() => {}); 71 }, 'function is not a valid key'); 72 }, 'IDBKeyRange.lowerBound() - throws on invalid keys'); 73 74 test(() => { 75 const keyRange = IDBKeyRange.upperBound(1, true); 76 assert_true( 77 keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); 78 assert_equals(keyRange.lower, undefined, 'keyRange.lower'); 79 assert_equals(keyRange.upper, 1, 'keyRange.upper'); 80 assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); 81 assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); 82 }, 'IDBKeyRange.upperBound() - returns an IDBKeyRange and the properties are set correctly'); 83 84 test(() => { 85 const keyRange = IDBKeyRange.upperBound(1); 86 assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); 87 }, 'IDBKeyRange.upperBound() - \'open\' parameter has correct default set'); 88 89 test(() => { 90 assert_throws_dom('DataError', () => { 91 IDBKeyRange.upperBound(undefined); 92 }, 'undefined is not a valid key'); 93 assert_throws_dom('DataError', () => { 94 IDBKeyRange.upperBound(null); 95 }, 'null is not a valid key'); 96 assert_throws_dom('DataError', () => { 97 IDBKeyRange.upperBound({}); 98 }, 'Object is not a valid key'); 99 assert_throws_dom('DataError', () => { 100 IDBKeyRange.upperBound(Symbol()); 101 }, 'Symbol is not a valid key'); 102 assert_throws_dom('DataError', () => { 103 IDBKeyRange.upperBound(true); 104 }, 'boolean is not a valid key'); 105 assert_throws_dom('DataError', () => { 106 IDBKeyRange.upperBound(() => {}); 107 }, 'function is not a valid key'); 108 }, 'IDBKeyRange.upperBound() - throws on invalid keys'); 109 110 test(() => { 111 const keyRange = IDBKeyRange.bound(1, 2, true, true); 112 assert_true( 113 keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); 114 assert_equals(keyRange.lower, 1, 'keyRange'); 115 assert_equals(keyRange.upper, 2, 'keyRange'); 116 assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); 117 assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); 118 }, 'IDBKeyRange.bound() - returns an IDBKeyRange and the properties are set correctly'); 119 120 test(() => { 121 const keyRange = IDBKeyRange.bound(1, 2); 122 assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); 123 assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); 124 }, 'IDBKeyRange.bound() - \'lowerOpen\' and \'upperOpen\' parameters have correct defaults set');