| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>IDBKeyRange Tests</title> |
| <link rel="author" title="Microsoft" href="http://www.microsoft.com"> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src=support.js></script> |
| |
| <script> |
| // only |
| test( function() { |
| var 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( function() { |
| assert_throws_dom('DataError', function() { IDBKeyRange.only(undefined); }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.only(null); }, 'null is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.only({}); }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.only(Symbol()); }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.only(true); }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.only(() => {}); }, 'function is not a valid key'); |
| }, "IDBKeyRange.only() - throws on invalid keys"); |
| |
| // lowerBound |
| test( function() { |
| var 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( function() { |
| var keyRange = IDBKeyRange.lowerBound(1); |
| assert_false(keyRange.lowerOpen, "keyRange.lowerOpen"); |
| }, "IDBKeyRange.lowerBound() - 'open' parameter has correct default set"); |
| |
| test( function() { |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound(undefined); }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound(null); }, 'null is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound({}); }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound(Symbol()); }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound(true); }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.lowerBound(() => {}); }, 'function is not a valid key'); |
| }, "IDBKeyRange.lowerBound() - throws on invalid keys"); |
| |
| // upperBound |
| test( function() { |
| var 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( function() { |
| var keyRange = IDBKeyRange.upperBound(1); |
| assert_false(keyRange.upperOpen, "keyRange.upperOpen"); |
| }, "IDBKeyRange.upperBound() - 'open' parameter has correct default set"); |
| |
| test( function() { |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound(undefined); }, 'undefined is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound(null); }, 'null is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound({}); }, 'Object is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound(Symbol()); }, 'Symbol is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound(true); }, 'boolean is not a valid key'); |
| assert_throws_dom('DataError', function() { IDBKeyRange.upperBound(() => {}); }, 'function is not a valid key'); |
| }, "IDBKeyRange.upperBound() - throws on invalid keys"); |
| |
| // bound |
| test( function() { |
| var 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( function() { |
| var 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"); |
| </script> |
| |
| <div id=log></div> |