/* Copyright 2017 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ import {BrotliDecode} from "./decode.js"; const testSuite = goog.require('goog.testing.testSuite'); goog.require('goog.testing.asserts'); /** * @param {!Int8Array} bytes * @return {string} */ function bytesToString(bytes) { return String.fromCharCode.apply(null, new Uint16Array(bytes)); } /** * @param {string} str * @return {!Int8Array} */ function stringToBytes(str) { let out = new Int8Array(str.length); for (let i = 0; i < str.length; ++i) out[i] = str.charCodeAt(i); return out; } testSuite({ testMetadata() { assertEquals( '', bytesToString(BrotliDecode(Int8Array.from([1, 11, 0, 42, 3])))); }, testCompoundDictionary() { const txt = 'kot lomom kolol slona\n'; const dictionary = stringToBytes(txt); const compressed = [0xa1, 0xa8, 0x00, 0xc0, 0x2f, 0x01, 0x10, 0xc4, 0x44, 0x09, 0x00]; assertEquals(txt.length, compressed.length * 2); const options = {'customDictionary': dictionary}; assertEquals( txt, bytesToString(BrotliDecode(Int8Array.from(compressed), options))); } });