tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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)');