1'use strict'; 2// Test unzipping a file that was created with a non-node brotli lib, 3// piped in as fast as possible. 4 5const common = require('../common'); 6const assert = require('assert'); 7const zlib = require('zlib'); 8const path = require('path'); 9const fixtures = require('../common/fixtures'); 10 11const tmpdir = require('../common/tmpdir'); 12tmpdir.refresh(); 13 14const decompress = new zlib.BrotliDecompress(); 15 16const fs = require('fs'); 17 18const fixture = fixtures.path('person.jpg.br'); 19const unzippedFixture = fixtures.path('person.jpg'); 20const outputFile = path.resolve(tmpdir.path, 'person.jpg'); 21const expect = fs.readFileSync(unzippedFixture); 22const inp = fs.createReadStream(fixture); 23const out = fs.createWriteStream(outputFile); 24 25inp.pipe(decompress).pipe(out); 26out.on('close', common.mustCall(() => { 27 const actual = fs.readFileSync(outputFile); 28 assert.strictEqual(actual.length, expect.length); 29 for (let i = 0, l = actual.length; i < l; i++) { 30 assert.strictEqual(actual[i], expect[i], `byte[${i}]`); 31 } 32})); 33