mirror of
https://github.com/codedread/bitjs
synced 2025-10-06 02:39:55 +02:00
For issue #48, add Gunzipper that relies on DecompressionStream('gzip').
This commit is contained in:
parent
d01610ac9c
commit
813b154e8c
4 changed files with 179 additions and 1 deletions
|
@ -2,7 +2,7 @@ import * as fs from 'node:fs';
|
|||
import 'mocha';
|
||||
import { expect } from 'chai';
|
||||
|
||||
import { Unarchiver, Unrarrer, Untarrer, Unzipper, getUnarchiver } from '../archive/decompress.js';
|
||||
import { Gunzipper, Unarchiver, getUnarchiver } from '../archive/decompress.js';
|
||||
|
||||
const PATH = `tests/archive-testfiles/`;
|
||||
|
||||
|
@ -69,4 +69,30 @@ describe('bitjs.archive.decompress', () => {
|
|||
expect(extractEvtFiredForOnExtract).equals(true);
|
||||
});
|
||||
}
|
||||
|
||||
describe('gunzip', () => {
|
||||
it('can unzip a file', async () => {
|
||||
const bufs = new Map(inputArrayBuffers);
|
||||
const nodeBuf = fs.readFileSync(`${PATH}sample-1-slowest.txt.gz`);
|
||||
const ab = nodeBuf.buffer.slice(nodeBuf.byteOffset, nodeBuf.byteOffset + nodeBuf.length);
|
||||
let gunzipper = getUnarchiver(ab, {debug: true});
|
||||
expect(gunzipper instanceof Gunzipper).equals(true);
|
||||
let extractEvtFiredForOnExtract = false;
|
||||
|
||||
gunzipper.onExtract(evt => {
|
||||
extractEvtFiredForOnExtract = true;
|
||||
const {filename, fileData} = evt.unarchivedFile;
|
||||
expect(filename).equals('sample-1.txt');
|
||||
|
||||
const ab = bufs.get('sample-1.txt');
|
||||
expect(fileData.byteLength).equals(ab.byteLength);
|
||||
for (let b = 0; b < fileData.byteLength; ++b) {
|
||||
expect(fileData[b] === ab[b]);
|
||||
}
|
||||
});
|
||||
|
||||
await gunzipper.start();
|
||||
expect(extractEvtFiredForOnExtract).equals(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue