Test IndexedDB's KeyRange.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS 'lower' in IDBKeyRange is false
PASS 'upper' in IDBKeyRange is false
PASS 'lowerOpen' in IDBKeyRange is false
PASS 'upperOpen' in IDBKeyRange is false
PASS 'only' in IDBKeyRange is true
PASS 'lowerBound' in IDBKeyRange is true
PASS 'upperBound' in IDBKeyRange is true
PASS 'bound' in IDBKeyRange is true
instance = IDBKeyRange.only(1)
PASS 'lower' in instance is true
PASS 'upper' in instance is true
PASS 'lowerOpen' in instance is true
PASS 'upperOpen' in instance is true
PASS 'only' in instance is false
PASS 'lowerBound' in instance is false
PASS 'upperBound' in instance is false
PASS 'bound' in instance is false
IDBKeyRange.only(1)
PASS keyRange.lower is 1
PASS keyRange.upper is 1
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.only(3.14)
PASS keyRange.lower is 3.14
PASS keyRange.upper is 3.14
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.only('a')
PASS keyRange.lower is 'a'
PASS keyRange.upper is 'a'
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.lowerBound(10,true)
PASS keyRange.lower is 10
PASS keyRange.lowerOpen is true
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(11,false)
PASS keyRange.lower is 11
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(12,undefined)
PASS keyRange.lower is 12
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(10.1,true)
PASS keyRange.lower is 10.1
PASS keyRange.lowerOpen is true
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(11.2,false)
PASS keyRange.lower is 11.2
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound(12.3,undefined)
PASS keyRange.lower is 12.3
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('aa',true)
PASS keyRange.lower is 'aa'
PASS keyRange.lowerOpen is true
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('ab',false)
PASS keyRange.lower is 'ab'
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.lowerBound('ac',undefined)
PASS keyRange.lower is 'ac'
PASS keyRange.lowerOpen is false
PASS keyRange.upper is undefined.
PASS keyRange.upperOpen is true
IDBKeyRange.upperBound(20,true)
PASS keyRange.upper is 20
PASS keyRange.upperOpen is true
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(21,false)
PASS keyRange.upper is 21
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(22,undefined)
PASS keyRange.upper is 22
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(20.2,true)
PASS keyRange.upper is 20.2
PASS keyRange.upperOpen is true
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(21.3,false)
PASS keyRange.upper is 21.3
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound(22.4,undefined)
PASS keyRange.upper is 22.4
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('ba',true)
PASS keyRange.upper is 'ba'
PASS keyRange.upperOpen is true
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('bb',false)
PASS keyRange.upper is 'bb'
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.upperBound('bc',undefined)
PASS keyRange.upper is 'bc'
PASS keyRange.upperOpen is false
PASS keyRange.lower is undefined.
PASS keyRange.lowerOpen is true
IDBKeyRange.bound(30,40, undefined, undefined)
PASS keyRange.lower is 30
PASS keyRange.upper is 40
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound(31,41, false, false)
PASS keyRange.lower is 31
PASS keyRange.upper is 41
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound(32,42, false, true)
PASS keyRange.lower is 32
PASS keyRange.upper is 42
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is true
IDBKeyRange.bound(33,43, true, false)
PASS keyRange.lower is 33
PASS keyRange.upper is 43
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is false
IDBKeyRange.bound(34,44, true, true)
PASS keyRange.lower is 34
PASS keyRange.upper is 44
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is true
IDBKeyRange.bound(30.1,40.2, undefined, undefined)
PASS keyRange.lower is 30.1
PASS keyRange.upper is 40.2
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound(31.3,41.4, false, false)
PASS keyRange.lower is 31.3
PASS keyRange.upper is 41.4
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound(32.5,42.6, false, true)
PASS keyRange.lower is 32.5
PASS keyRange.upper is 42.6
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is true
IDBKeyRange.bound(33.7,43.8, true, false)
PASS keyRange.lower is 33.7
PASS keyRange.upper is 43.8
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is false
IDBKeyRange.bound(34.9,44, true, true)
PASS keyRange.lower is 34.9
PASS keyRange.upper is 44
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is true
IDBKeyRange.bound('aaa','aba', false, false)
PASS keyRange.lower is 'aaa'
PASS keyRange.upper is 'aba'
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound('aab','abb', undefined, undefined)
PASS keyRange.lower is 'aab'
PASS keyRange.upper is 'abb'
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound('aac','abc', false, false)
PASS keyRange.lower is 'aac'
PASS keyRange.upper is 'abc'
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is false
IDBKeyRange.bound('aad','abd', false, true)
PASS keyRange.lower is 'aad'
PASS keyRange.upper is 'abd'
PASS keyRange.lowerOpen is false
PASS keyRange.upperOpen is true
IDBKeyRange.bound('aae','abe', true, false)
PASS keyRange.lower is 'aae'
PASS keyRange.upper is 'abe'
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is false
IDBKeyRange.bound('aaf','abf', true, true)
PASS keyRange.lower is 'aaf'
PASS keyRange.upper is 'abf'
PASS keyRange.lowerOpen is true
PASS keyRange.upperOpen is true
Passing an invalid key into only({})
Expecting exception from IDBKeyRange.only({})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'only' on 'IDBKeyRange': The parameter is not a valid key.
Passing an invalid key into upperBound({})
Expecting exception from IDBKeyRange.upperBound({})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'upperBound' on 'IDBKeyRange': The parameter is not a valid key.
Passing an invalid key into lowerBound({})
Expecting exception from IDBKeyRange.lowerBound({})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'lowerBound' on 'IDBKeyRange': The parameter is not a valid key.
Passing an invalid key into bound(null, {})
Expecting exception from IDBKeyRange.bound(null, {})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The parameter is not a valid key.
Passing an invalid key into bound({},null)
Expecting exception from IDBKeyRange.bound({}, null)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The parameter is not a valid key.
Passing an invalid key into bound({}, {})
Expecting exception from IDBKeyRange.bound({}, {})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The parameter is not a valid key.
Lower key greater than higher key, bound(4, 3)
Expecting exception from IDBKeyRange.bound(4, 3)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The lower key is greater than the upper key.
Equal keys, either of the bounds is open, bound(4, 4, true, false)
Expecting exception from IDBKeyRange.bound(4, 4, true, false)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The lower key and upper key are equal and one of the bounds is open.
Equal keys, either of the bounds is open, bound(4, 4, false, true)
Expecting exception from IDBKeyRange.bound(4, 4, false, true)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The lower key and upper key are equal and one of the bounds is open.
Equal keys, either of the bounds is open, bound(4, 4, true, true)
Expecting exception from IDBKeyRange.bound(4, 4, true, true)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'bound' on 'IDBKeyRange': The lower key and upper key are equal and one of the bounds is open.
Equal keys, none of the bounds is open, bound(4, 4, false, false)
PASS successfullyParsed is true
TEST COMPLETE