https://github.com/web-platform-tests/wpt
Tip revision: 7cb0d28a36927eb21b7984a80c6629969634a1e2 authored by moz-wptsync-bot on 13 March 2018, 19:13:50 UTC
Performance.measure(name) should not throw if name is one of the readonly attribute of the Performance interface,
Performance.measure(name) should not throw if name is one of the readonly attribute of the Performance interface,
Tip revision: 7cb0d28
idbkeyrange-includes.htm
<!doctype html>
<meta charset=utf-8>
<title>IndexedDB: IDBKeyRange.includes()</title>
<meta name="help" href="https://w3c.github.io/IndexedDB/#keyrange">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
test(function() {
var range = IDBKeyRange.bound(12, 34);
assert_throws(new TypeError, function() { range.includes(); },
'throws if key is not specified');
assert_throws('DataError', function() { range.includes(undefined); },
'throws if key is undefined');
assert_throws('DataError', function() { range.includes(null); },
'throws if key is null');
assert_throws('DataError', function() { range.includes({}); },
'throws if key is not valid type');
assert_throws('DataError', function() { range.includes(NaN); },
'throws if key is not valid number');
assert_throws('DataError', function() { range.includes(new Date(NaN)); },
'throws if key is not valid date');
assert_throws('DataError', function() {
var a = []; a[0] = a; range.includes(a);
}, 'throws if key is not valid array');
}, "IDBKeyRange.includes() with invalid input");
test(function() {
var closedRange = IDBKeyRange.bound(5, 20);
assert_true(!!closedRange.includes, "IDBKeyRange has a .includes");
assert_true(closedRange.includes(7), "in range");
assert_false(closedRange.includes(1), "below range");
assert_false(closedRange.includes(42), "above range");
assert_true(closedRange.includes(5.01), "at the lower end of the range");
assert_true(closedRange.includes(19.99), "at the upper end of the range");
assert_false(closedRange.includes(4.99), "right below range");
assert_false(closedRange.includes(21.01), "right above range");
assert_true(closedRange.includes(5), "lower boundary");
assert_true(closedRange.includes(20), "upper boundary");
}, "IDBKeyRange.includes() with a closed range");
test(function() {
var closedRange = IDBKeyRange.bound(5, 20, true, true);
assert_true(closedRange.includes(7), "in range");
assert_false(closedRange.includes(1), "below range");
assert_false(closedRange.includes(42), "above range");
assert_true(closedRange.includes(5.01), "at the lower end of the range");
assert_true(closedRange.includes(19.99), "at the upper end of the range");
assert_false(closedRange.includes(4.99), "right below range");
assert_false(closedRange.includes(21.01), "right above range");
assert_false(closedRange.includes(5), "lower boundary");
assert_false(closedRange.includes(20), "upper boundary");
}, "IDBKeyRange.includes() with an open range");
test(function() {
var range = IDBKeyRange.bound(5, 20, true);
assert_true(range.includes(7), "in range");
assert_false(range.includes(1), "below range");
assert_false(range.includes(42), "above range");
assert_true(range.includes(5.01), "at the lower end of the range");
assert_true(range.includes(19.99), "at the upper end of the range");
assert_false(range.includes(4.99), "right below range");
assert_false(range.includes(21.01), "right above range");
assert_false(range.includes(5), "lower boundary");
assert_true(range.includes(20), "upper boundary");
}, "IDBKeyRange.includes() with a lower-open upper-closed range");
test(function() {
var range = IDBKeyRange.bound(5, 20, false, true);
assert_true(range.includes(7), "in range");
assert_false(range.includes(1), "below range");
assert_false(range.includes(42), "above range");
assert_true(range.includes(5.01), "at the lower end of the range");
assert_true(range.includes(19.99), "at the upper end of the range");
assert_false(range.includes(4.99), "right below range");
assert_false(range.includes(21.01), "right above range");
assert_true(range.includes(5), "lower boundary");
assert_false(range.includes(20), "upper boundary");
}, "IDBKeyRange.includes() with a lower-closed upper-open range");
test(function() {
var onlyRange = IDBKeyRange.only(42);
assert_true(onlyRange.includes(42), "in range");
assert_false(onlyRange.includes(1), "below range");
assert_false(onlyRange.includes(9000), "above range");
assert_false(onlyRange.includes(41), "right below range");
assert_false(onlyRange.includes(43), "right above range");
}, "IDBKeyRange.includes() with an only range");
test(function() {
var range = IDBKeyRange.lowerBound(5);
assert_false(range.includes(4), 'value before closed lower bound');
assert_true(range.includes(5), 'value at closed lower bound');
assert_true(range.includes(6), 'value after closed lower bound');
assert_true(range.includes(42), 'value way after open lower bound');
}, "IDBKeyRange.includes() with an closed lower-bounded range");
test(function() {
var range = IDBKeyRange.lowerBound(5, true);
assert_false(range.includes(4), 'value before open lower bound');
assert_false(range.includes(5), 'value at open lower bound');
assert_true(range.includes(6), 'value after open lower bound');
assert_true(range.includes(42), 'value way after open lower bound');
}, "IDBKeyRange.includes() with an open lower-bounded range");
test(function() {
var range = IDBKeyRange.upperBound(5);
assert_true(range.includes(-42), 'value way before closed upper bound');
assert_true(range.includes(4), 'value before closed upper bound');
assert_true(range.includes(5), 'value at closed upper bound');
assert_false(range.includes(6), 'value after closed upper bound');
}, "IDBKeyRange.includes() with an closed upper-bounded range");
test(function() {
var range = IDBKeyRange.upperBound(5, true);
assert_true(range.includes(-42), 'value way before closed upper bound');
assert_true(range.includes(4), 'value before open upper bound');
assert_false(range.includes(5), 'value at open upper bound');
assert_false(range.includes(6), 'value after open upper bound');
}, "IDBKeyRange.includes() with an open upper-bounded range");
test(function(t) {
assert_true(IDBKeyRange.bound(new Date(0), new Date())
.includes(new Date(102729600000)));
assert_false(IDBKeyRange.bound(new Date(0), new Date(1e11))
.includes(new Date(1e11 + 1)));
assert_true(IDBKeyRange.bound('a', 'c').includes('b'));
assert_false(IDBKeyRange.bound('a', 'c').includes('d'));
assert_true(IDBKeyRange.bound([], [[], []]).includes([[]]));
assert_false(IDBKeyRange.bound([], [[]]).includes([[[]]]));
}, 'IDBKeyRange.includes() with non-numeric keys');
</script>