signal-desktop/ts/test-both/util/Bytes_test.ts
2021-06-22 09:46:42 -05:00

90 lines
2.4 KiB
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import * as Bytes from '../../Bytes';
describe('Bytes', () => {
it('converts to base64 and back', () => {
const bytes = new Uint8Array([1, 2, 3]);
const base64 = Bytes.toBase64(bytes);
assert.strictEqual(base64, 'AQID');
assert.deepEqual(Bytes.fromBase64(base64), bytes);
});
it('converts to hex and back', () => {
const bytes = new Uint8Array([1, 2, 3]);
const hex = Bytes.toHex(bytes);
assert.strictEqual(hex, '010203');
assert.deepEqual(Bytes.fromHex(hex), bytes);
});
it('converts to string and back', () => {
const bytes = new Uint8Array([0x61, 0x62, 0x63]);
const binary = Bytes.toString(bytes);
assert.strictEqual(binary, 'abc');
assert.deepEqual(Bytes.fromString(binary), bytes);
});
it('converts to binary and back', () => {
const bytes = new Uint8Array([0xff, 0x01]);
const binary = Bytes.toBinary(bytes);
assert.strictEqual(binary, '\xff\x01');
assert.deepEqual(Bytes.fromBinary(binary), bytes);
});
it('concatenates bytes', () => {
const result = Bytes.concatenate([
Bytes.fromString('hello'),
Bytes.fromString(' '),
Bytes.fromString('world'),
]);
assert.strictEqual(Bytes.toString(result), 'hello world');
});
describe('isEmpty', () => {
it('returns true for `undefined`', () => {
assert.strictEqual(Bytes.isEmpty(undefined), true);
});
it('returns true for `null`', () => {
assert.strictEqual(Bytes.isEmpty(null), true);
});
it('returns true for an empty Uint8Array', () => {
assert.strictEqual(Bytes.isEmpty(new Uint8Array(0)), true);
});
it('returns false for not empty Uint8Array', () => {
assert.strictEqual(Bytes.isEmpty(new Uint8Array(123)), false);
});
});
describe('isNotEmpty', () => {
it('returns false for `undefined`', () => {
assert.strictEqual(Bytes.isNotEmpty(undefined), false);
});
it('returns false for `null`', () => {
assert.strictEqual(Bytes.isNotEmpty(null), false);
});
it('returns false for an empty Uint8Array', () => {
assert.strictEqual(Bytes.isNotEmpty(new Uint8Array(0)), false);
});
it('returns true for not empty Uint8Array', () => {
assert.strictEqual(Bytes.isNotEmpty(new Uint8Array(123)), true);
});
});
});