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);
   });
 
 });