// Copyright 2015-2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only describe('Helpers', () => { describe('ArrayBuffer->String conversion', () => { it('works', () => { const b = new ArrayBuffer(3); const a = new Uint8Array(b); a[0] = 0; a[1] = 255; a[2] = 128; assert.equal(window.textsecure.utils.getString(b), '\x00\xff\x80'); }); }); describe('stringToArrayBuffer', () => { it('returns ArrayBuffer when passed string', () => { const anArrayBuffer = new ArrayBuffer(1); const typedArray = new Uint8Array(anArrayBuffer); typedArray[0] = 'a'.charCodeAt(0); assertEqualArrayBuffers( window.textsecure.utils.stringToArrayBuffer('a'), anArrayBuffer ); }); it('throws an error when passed a non string', () => { const notStringable = [{}, undefined, null, new ArrayBuffer()]; notStringable.forEach(notString => { assert.throw(() => { window.textsecure.utils.stringToArrayBuffer(notString); }, Error); }); }); }); });