• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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