Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /IndexedDB/idbkeyrange.any.html - WPT Dashboard Interop Dashboard
- /IndexedDB/idbkeyrange.any.serviceworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/idbkeyrange.any.sharedworker.html - WPT Dashboard Interop Dashboard
- /IndexedDB/idbkeyrange.any.worker.html - WPT Dashboard Interop Dashboard
// 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');