1*f4ee7fbaSAndroid Build Coastguard Workergoog.require('goog.testing.asserts'); 2*f4ee7fbaSAndroid Build Coastguard Workergoog.require('goog.testing.jsunit'); 3*f4ee7fbaSAndroid Build Coastguard Worker 4*f4ee7fbaSAndroid Build Coastguard Worker/** 5*f4ee7fbaSAndroid Build Coastguard Worker * @param {!Int8Array} bytes 6*f4ee7fbaSAndroid Build Coastguard Worker * @return {string} 7*f4ee7fbaSAndroid Build Coastguard Worker */ 8*f4ee7fbaSAndroid Build Coastguard Workerfunction bytesToString(bytes) { 9*f4ee7fbaSAndroid Build Coastguard Worker return String.fromCharCode.apply(null, new Uint16Array(bytes)); 10*f4ee7fbaSAndroid Build Coastguard Worker} 11*f4ee7fbaSAndroid Build Coastguard Worker 12*f4ee7fbaSAndroid Build Coastguard Workerfunction testMetadata() { 13*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("", bytesToString(BrotliDecode(Int8Array.from([1, 11, 0, 42, 3])))); 14*f4ee7fbaSAndroid Build Coastguard Worker} 15*f4ee7fbaSAndroid Build Coastguard Worker 16*f4ee7fbaSAndroid Build Coastguard Workerfunction testEmpty() { 17*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("", bytesToString(BrotliDecode(Int8Array.from([6])))); 18*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("", bytesToString(BrotliDecode(Int8Array.from([0x81, 1])))); 19*f4ee7fbaSAndroid Build Coastguard Worker} 20*f4ee7fbaSAndroid Build Coastguard Worker 21*f4ee7fbaSAndroid Build Coastguard Workerfunction testBaseDictWord() { 22*f4ee7fbaSAndroid Build Coastguard Worker var input = Int8Array.from([ 23*f4ee7fbaSAndroid Build Coastguard Worker 0x1b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0xb4, 0x0d, 0x00, 0x00, 24*f4ee7fbaSAndroid Build Coastguard Worker 0x07, 0x5b, 0x26, 0x31, 0x40, 0x02, 0x00, 0xe0, 0x4e, 0x1b, 0x41, 0x02 25*f4ee7fbaSAndroid Build Coastguard Worker ]); 26*f4ee7fbaSAndroid Build Coastguard Worker /** @type {!Int8Array} */ 27*f4ee7fbaSAndroid Build Coastguard Worker var output = BrotliDecode(input); 28*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("time", bytesToString(output)); 29*f4ee7fbaSAndroid Build Coastguard Worker} 30*f4ee7fbaSAndroid Build Coastguard Worker 31*f4ee7fbaSAndroid Build Coastguard Workerfunction testBlockCountMessage() { 32*f4ee7fbaSAndroid Build Coastguard Worker var input = Int8Array.from([ 33*f4ee7fbaSAndroid Build Coastguard Worker 0x1b, 0x0b, 0x00, 0x11, 0x01, 0x8c, 0xc1, 0xc5, 0x0d, 0x08, 0x00, 0x22, 34*f4ee7fbaSAndroid Build Coastguard Worker 0x65, 0xe1, 0xfc, 0xfd, 0x22, 0x2c, 0xc4, 0x00, 0x00, 0x38, 0xd8, 0x32, 35*f4ee7fbaSAndroid Build Coastguard Worker 0x89, 0x01, 0x12, 0x00, 0x00, 0x77, 0xda, 0x04, 0x10, 0x42, 0x00, 0x00, 0x00 36*f4ee7fbaSAndroid Build Coastguard Worker ]); 37*f4ee7fbaSAndroid Build Coastguard Worker /** @type {!Int8Array} */ 38*f4ee7fbaSAndroid Build Coastguard Worker var output = BrotliDecode(input); 39*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("aabbaaaaabab", bytesToString(output)); 40*f4ee7fbaSAndroid Build Coastguard Worker} 41*f4ee7fbaSAndroid Build Coastguard Worker 42*f4ee7fbaSAndroid Build Coastguard Workerfunction testCompressedUncompressedShortCompressedSmallWindow() { 43*f4ee7fbaSAndroid Build Coastguard Worker var input = Int8Array.from([ 44*f4ee7fbaSAndroid Build Coastguard Worker 0x21, 0xf4, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xa7, 0x6d, 0x00, 0x00, 45*f4ee7fbaSAndroid Build Coastguard Worker 0x38, 0xd8, 0x32, 0x89, 0x01, 0x12, 0x00, 0x00, 0x77, 0xda, 0x34, 0x7b, 46*f4ee7fbaSAndroid Build Coastguard Worker 0xdb, 0x50, 0x80, 0x02, 0x80, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x31, 47*f4ee7fbaSAndroid Build Coastguard Worker 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x4e, 0xdb, 0x00, 0x00, 0x70, 0xb0, 48*f4ee7fbaSAndroid Build Coastguard Worker 0x65, 0x12, 0x03, 0x24, 0x00, 0x00, 0xee, 0xb4, 0x11, 0x24, 0x00 49*f4ee7fbaSAndroid Build Coastguard Worker ]); 50*f4ee7fbaSAndroid Build Coastguard Worker /** @type {!Int8Array} */ 51*f4ee7fbaSAndroid Build Coastguard Worker var output = BrotliDecode(input); 52*f4ee7fbaSAndroid Build Coastguard Worker assertEquals( 53*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 54*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 55*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 56*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 57*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 58*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 59*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 60*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 61*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 62*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 63*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 64*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 65*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 66*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 67*f4ee7fbaSAndroid Build Coastguard Worker "aaaaaaaaaaaaaabbbbbbbbbb", bytesToString(output)); 68*f4ee7fbaSAndroid Build Coastguard Worker} 69*f4ee7fbaSAndroid Build Coastguard Worker 70*f4ee7fbaSAndroid Build Coastguard Workerfunction testIntactDistanceRingBuffer0() { 71*f4ee7fbaSAndroid Build Coastguard Worker var input = Int8Array.from([ 72*f4ee7fbaSAndroid Build Coastguard Worker 0x1b, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0xb4, 0x0d, 0x00, 0x00, 73*f4ee7fbaSAndroid Build Coastguard Worker 0x07, 0x5b, 0x26, 0x31, 0x40, 0x02, 0x00, 0xe0, 0x4e, 0x1b, 0xa1, 0x80, 74*f4ee7fbaSAndroid Build Coastguard Worker 0x20, 0x00 75*f4ee7fbaSAndroid Build Coastguard Worker ]); 76*f4ee7fbaSAndroid Build Coastguard Worker /** @type {!Int8Array} */ 77*f4ee7fbaSAndroid Build Coastguard Worker var output = BrotliDecode(input); 78*f4ee7fbaSAndroid Build Coastguard Worker assertEquals("himselfself", bytesToString(output)); 79*f4ee7fbaSAndroid Build Coastguard Worker} 80