%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const zlib = require('zlib'); const expectStr = 'abcdefghijklmnopqrstuvwxyz'.repeat(2); const expectBuf = Buffer.from(expectStr); function createWriter(target, buffer) { const writer = { size: 0 }; const write = () => { target.write(Buffer.from([buffer[writer.size++]]), () => { if (writer.size < buffer.length) { target.flush(write); } else { target.end(); } }); }; write(); return writer; } common.expectWarning( 'DeprecationWarning', 'zlib.bytesRead is deprecated and will change its meaning in the ' + 'future. Use zlib.bytesWritten instead.', 'DEP0108'); for (const method of [ ['createGzip', 'createGunzip', false], ['createGzip', 'createUnzip', false], ['createDeflate', 'createInflate', true], ['createDeflateRaw', 'createInflateRaw', true], ['createBrotliCompress', 'createBrotliDecompress', true], ]) { let compWriter; let compData = Buffer.alloc(0); const comp = zlib[method[0]](); comp.on('data', function(d) { compData = Buffer.concat([compData, d]); assert.strictEqual(this.bytesWritten, compWriter.size, `Should get write size on ${method[0]} data.`); }); comp.on('end', common.mustCall(function() { assert.strictEqual(this.bytesWritten, compWriter.size, `Should get write size on ${method[0]} end.`); assert.strictEqual(this.bytesWritten, expectStr.length, `Should get data size on ${method[0]} end.`); { let decompWriter; let decompData = Buffer.alloc(0); const decomp = zlib[method[1]](); decomp.on('data', function(d) { decompData = Buffer.concat([decompData, d]); assert.strictEqual(this.bytesWritten, decompWriter.size, `Should get write size on ${method[0]}/` + `${method[1]} data.`); }); decomp.on('end', common.mustCall(function() { assert.strictEqual(this.bytesWritten, compData.length, `Should get compressed size on ${method[0]}/` + `${method[1]} end.`); assert.strictEqual(decompData.toString(), expectStr, `Should get original string on ${method[0]}/` + `${method[1]} end.`); })); decompWriter = createWriter(decomp, compData); } // Some methods should allow extra data after the compressed data if (method[2]) { const compDataExtra = Buffer.concat([compData, Buffer.from('extra')]); let decompWriter; let decompData = Buffer.alloc(0); const decomp = zlib[method[1]](); decomp.on('data', function(d) { decompData = Buffer.concat([decompData, d]); assert.strictEqual(this.bytesWritten, decompWriter.size, `Should get write size on ${method[0]}/` + `${method[1]} data.`); }); decomp.on('end', common.mustCall(function() { assert.strictEqual(this.bytesWritten, compData.length, `Should get compressed size on ${method[0]}/` + `${method[1]} end.`); // Checking legacy name. assert.strictEqual(this.bytesWritten, this.bytesRead); assert.strictEqual(decompData.toString(), expectStr, `Should get original string on ${method[0]}/` + `${method[1]} end.`); })); decompWriter = createWriter(decomp, compDataExtra); } })); compWriter = createWriter(comp, expectBuf); }