| // META: title=IDBKeyRange Tests |
| // META: global=window,worker |
| // META: script=resources/support.js |
| |
| 'use strict'; |
| |
| test(() => { |
| const keyRange = IDBKeyRange.only(1); |
| assert_true( |
| keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); |
| assert_equals(keyRange.lower, 1, 'keyRange'); |
| assert_equals(keyRange.upper, 1, 'keyRange'); |
| assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.only() - returns an IDBKeyRange and the properties are set correctly'); |
| |
| test(() => { |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only(undefined); |
| }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only(null); |
| }, 'null is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only({}); |
| }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only(Symbol()); |
| }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only(true); |
| }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.only(() => {}); |
| }, 'function is not a valid key'); |
| }, 'IDBKeyRange.only() - throws on invalid keys'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.lowerBound(1, true); |
| assert_true( |
| keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); |
| assert_equals(keyRange.lower, 1, 'keyRange.lower'); |
| assert_equals(keyRange.upper, undefined, 'keyRange.upper'); |
| assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.lowerBound() - returns an IDBKeyRange and the properties are set correctly'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.lowerBound(1); |
| assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| }, 'IDBKeyRange.lowerBound() - \'open\' parameter has correct default set'); |
| |
| test(() => { |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound(undefined); |
| }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound(null); |
| }, 'null is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound({}); |
| }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound(Symbol()); |
| }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound(true); |
| }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.lowerBound(() => {}); |
| }, 'function is not a valid key'); |
| }, 'IDBKeyRange.lowerBound() - throws on invalid keys'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.upperBound(1, true); |
| assert_true( |
| keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); |
| assert_equals(keyRange.lower, undefined, 'keyRange.lower'); |
| assert_equals(keyRange.upper, 1, 'keyRange.upper'); |
| assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.upperBound() - returns an IDBKeyRange and the properties are set correctly'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.upperBound(1); |
| assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.upperBound() - \'open\' parameter has correct default set'); |
| |
| test(() => { |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound(undefined); |
| }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound(null); |
| }, 'null is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound({}); |
| }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound(Symbol()); |
| }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound(true); |
| }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', () => { |
| IDBKeyRange.upperBound(() => {}); |
| }, 'function is not a valid key'); |
| }, 'IDBKeyRange.upperBound() - throws on invalid keys'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.bound(1, 2, true, true); |
| assert_true( |
| keyRange instanceof IDBKeyRange, 'keyRange instanceof IDBKeyRange'); |
| assert_equals(keyRange.lower, 1, 'keyRange'); |
| assert_equals(keyRange.upper, 2, 'keyRange'); |
| assert_true(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| assert_true(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.bound() - returns an IDBKeyRange and the properties are set correctly'); |
| |
| test(() => { |
| const keyRange = IDBKeyRange.bound(1, 2); |
| assert_false(keyRange.lowerOpen, 'keyRange.lowerOpen'); |
| assert_false(keyRange.upperOpen, 'keyRange.upperOpen'); |
| }, 'IDBKeyRange.bound() - \'lowerOpen\' and \'upperOpen\' parameters have correct defaults set'); |