idb_binary_key_conversion.any.js (2156B)
1 // META: title=Verify the conversion of various types of BufferSource 2 // META: global=window,worker 3 4 // Spec: http://w3c.github.io/IndexedDB/#key-construct 5 6 'use strict'; 7 8 test(function() { 9 let binary = new ArrayBuffer(0); 10 let key = IDBKeyRange.lowerBound(binary).lower; 11 12 assert_true(key instanceof ArrayBuffer); 13 assert_equals(key.byteLength, 0); 14 assert_equals(key.byteLength, binary.byteLength); 15 }, 'Empty ArrayBuffer'); 16 17 test(function() { 18 let binary = new ArrayBuffer(4); 19 let dataView = new DataView(binary); 20 dataView.setUint32(0, 1234567890); 21 22 let key = IDBKeyRange.lowerBound(binary).lower; 23 24 assert_true(key instanceof ArrayBuffer); 25 assert_equals(key.byteLength, 4); 26 assert_equals(dataView.getUint32(0), new DataView(key).getUint32(0)); 27 }, 'ArrayBuffer'); 28 29 test(function() { 30 let binary = new ArrayBuffer(4); 31 let dataView = new DataView(binary); 32 dataView.setUint32(0, 1234567890); 33 34 let key = IDBKeyRange.lowerBound(dataView).lower; 35 36 assert_true(key instanceof ArrayBuffer); 37 assert_equals(key.byteLength, 4); 38 assert_equals(dataView.getUint32(0), new DataView(key).getUint32(0)); 39 }, 'DataView'); 40 41 test(function() { 42 let binary = new ArrayBuffer(4); 43 let dataView = new DataView(binary); 44 let int8Array = new Int8Array(binary); 45 int8Array.set([16, -32, 64, -128]); 46 47 let key = IDBKeyRange.lowerBound(int8Array).lower; 48 let keyInInt8Array = new Int8Array(key); 49 50 assert_true(key instanceof ArrayBuffer); 51 assert_equals(key.byteLength, 4); 52 for (let i = 0; i < int8Array.length; i++) { 53 assert_equals(keyInInt8Array[i], int8Array[i]); 54 } 55 }, 'TypedArray(Int8Array)'); 56 57 test(function() { 58 let binary = new ArrayBuffer(4); 59 let dataView = new DataView(binary); 60 let int8Array = new Int8Array(binary); 61 int8Array.set([16, -32, 64, -128]); 62 63 let key = IDBKeyRange.lowerBound([int8Array]).lower; 64 65 assert_true(key instanceof Array); 66 assert_true(key[0] instanceof ArrayBuffer); 67 assert_equals(key[0].byteLength, 4); 68 69 let keyInInt8Array = new Int8Array(key[0]); 70 71 for (let i = 0; i < int8Array.length; i++) { 72 assert_equals(keyInInt8Array[i], int8Array[i]); 73 } 74 }, 'Array of TypedArray(Int8Array)');