From 1d91d3b187d4816ca8ddbf8365d0cb0492f5677f Mon Sep 17 00:00:00 2001 From: Vitaly Puzrin <vitaly@rcdesign.ru> Date: Thu, 13 Mar 2014 23:30:55 +0400 Subject: [PATCH] Inflate tests/helpers cleanup --- test/helpers.js | 15 ++++-------- test/inflate.js | 64 +++++++++++++++++++++++++------------------------ 2 files changed, 38 insertions(+), 41 deletions(-) diff --git a/test/helpers.js b/test/helpers.js index 90c346a..465c406 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -130,23 +130,18 @@ function testDeflate(zlib_factory, pako_deflate, samples, options, callback) { } -function testInflate(samples, options, callback, is_gzip) { - var name, data, deflated, inflated, inflate_options; +function testInflate(samples, inflateOptions, deflateOptions, callback) { + var name, data, deflated, inflated; // inflate options have windowBits = 0 to force autodetect window size // - inflate_options = pako_utils.assign({}, options); - if (inflate_options.windowBits > 0 && inflate_options.windowBits < 16) { - inflate_options.windowBits = 0; - } - for (name in samples) { data = samples[name]; - deflated = is_gzip ? pako.gzip(data, options) : pako.deflate(data, options); + deflated = pako.deflate(data, deflateOptions); // with untyped arrays pako_utils.setTyped(false); - inflated = pako.inflate(deflated, inflate_options); + inflated = pako.inflate(deflated, inflateOptions); pako_utils.setTyped(true); if (!cmpBuf(inflated, data)) { @@ -155,7 +150,7 @@ function testInflate(samples, options, callback, is_gzip) { } // with typed arrays - inflated = pako.inflate(deflated, inflate_options); + inflated = pako.inflate(deflated, inflateOptions); if (!cmpBuf(inflated, data)) { callback('Error in "' + name + '" - inflate result != original'); diff --git a/test/inflate.js b/test/inflate.js index 59e1345..90282dd 100644 --- a/test/inflate.js +++ b/test/inflate.js @@ -14,59 +14,61 @@ var samples = helpers.loadSamples(); describe('Inflate defaults', function () { it('inflate, no options', function(done) { - testInflate(samples, {}, done); + testInflate(samples, {}, {}, done); }); it('inflate raw, no options', function(done) { - testInflate(samples, { raw: true }, done); + testInflate(samples, { raw: true }, { raw: true }, done); }); }); describe('Inflate ungzip', function () { + // TODO: Investigate, why ungzip does not autodetect window size and + // require to set windowBits directly + it.skip('with autodetect', function(done) { - testInflate(samples, {}, done, true); + testInflate(samples, {}, { gzip: true }, done); }); it('with method set directly', function(done) { - testInflate(samples, { windowBits: 15 + 16 }, done, true); + testInflate(samples, { windowBits: 15 + 16 }, { gzip: true }, done); }); - }); describe('Inflate levels', function () { it('level 9', function(done) { - testInflate(samples, { level: 9 }, done); + testInflate(samples, {}, { level: 9 }, done); }); it('level 8', function(done) { - testInflate(samples, { level: 8 }, done); + testInflate(samples, {}, { level: 8 }, done); }); it('level 7', function(done) { - testInflate(samples, { level: 7 }, done); + testInflate(samples, {}, { level: 7 }, done); }); it('level 6', function(done) { - testInflate(samples, { level: 6 }, done); + testInflate(samples, {}, { level: 6 }, done); }); it('level 5', function(done) { - testInflate(samples, { level: 5 }, done); + testInflate(samples, {}, { level: 5 }, done); }); it('level 4', function(done) { - testInflate(samples, { level: 4 }, done); + testInflate(samples, {}, { level: 4 }, done); }); it('level 3', function(done) { - testInflate(samples, { level: 3 }, done); + testInflate(samples, {}, { level: 3 }, done); }); it('level 2', function(done) { - testInflate(samples, { level: 2 }, done); + testInflate(samples, {}, { level: 2 }, done); }); it('level 1', function(done) { - testInflate(samples, { level: 1 }, done); + testInflate(samples, {}, { level: 1 }, done); }); it('level 0', function(done) { - testInflate(samples, { level: 0 }, done); + testInflate(samples, {}, { level: 0 }, done); }); }); @@ -75,28 +77,28 @@ describe('Inflate levels', function () { describe('Inflate windowBits', function () { it('windowBits 15', function(done) { - testInflate(samples, { windowBits: 15 }, done); + testInflate(samples, {}, { windowBits: 15 }, done); }); it('windowBits 14', function(done) { - testInflate(samples, { windowBits: 14 }, done); + testInflate(samples, {}, { windowBits: 14 }, done); }); it('windowBits 13', function(done) { - testInflate(samples, { windowBits: 13 }, done); + testInflate(samples, {}, { windowBits: 13 }, done); }); it('windowBits 12', function(done) { - testInflate(samples, { windowBits: 12 }, done); + testInflate(samples, {}, { windowBits: 12 }, done); }); it('windowBits 11', function(done) { - testInflate(samples, { windowBits: 11 }, done); + testInflate(samples, {}, { windowBits: 11 }, done); }); it('windowBits 10', function(done) { - testInflate(samples, { windowBits: 10 }, done); + testInflate(samples, {}, { windowBits: 10 }, done); }); it('windowBits 9', function(done) { - testInflate(samples, { windowBits: 9 }, done); + testInflate(samples, {}, { windowBits: 9 }, done); }); it('windowBits 8', function(done) { - testInflate(samples, { windowBits: 8 }, done); + testInflate(samples, {}, { windowBits: 8 }, done); }); }); @@ -104,19 +106,19 @@ describe('Inflate windowBits', function () { describe('Inflate strategy', function () { it('Z_DEFAULT_STRATEGY', function(done) { - testInflate(samples, { strategy: 0 }, done); + testInflate(samples, {}, { strategy: 0 }, done); }); it('Z_FILTERED', function(done) { - testInflate(samples, { strategy: 1 }, done); + testInflate(samples, {}, { strategy: 1 }, done); }); it('Z_HUFFMAN_ONLY', function(done) { - testInflate(samples, { strategy: 2 }, done); + testInflate(samples, {}, { strategy: 2 }, done); }); it('Z_RLE', function(done) { - testInflate(samples, { strategy: 3 }, done); + testInflate(samples, {}, { strategy: 3 }, done); }); it.skip('Z_FIXED', function(done) { - testInflate(samples, { strategy: 4 }, done); + testInflate(samples, {}, { strategy: 4 }, done); }); }); @@ -125,13 +127,13 @@ describe('Inflate strategy', function () { describe('Inflate RAW', function () { // Since difference is only in rwapper, test for store/fast/slow methods are enougth it('level 4', function(done) { - testInflate(samples, { level: 4, raw: true }, done); + testInflate(samples, { raw: true }, { level: 4, raw: true }, done); }); it('level 1', function(done) { - testInflate(samples, { level: 1, raw: true }, done); + testInflate(samples, { raw: true }, { level: 1, raw: true }, done); }); it('level 0', function(done) { - testInflate(samples, { level: 0, raw: true }, done); + testInflate(samples, { raw: true }, { level: 0, raw: true }, done); }); });