'use strict'; var test = require('tap').test; var fs = require('fs'); var path = require('path'); var temp = require('temp'); var dirdiff = require('dirdiff'); var unzip = require('../'); test("parse archive w/ file size unknown flag set (created by OS X Finder)", function (t) { var archive = path.join(__dirname, '../testData/compressed-OSX-Finder/archive.zip'); var unzipParser = unzip.Parse(); fs.createReadStream(archive).pipe(unzipParser); unzipParser.on('error', function(err) { throw err; }); unzipParser.on('close', t.end.bind(this)); }); test("extract archive w/ file size unknown flag set (created by OS X Finder)", function (t) { var archive = path.join(__dirname, '../testData/compressed-OSX-Finder/archive.zip'); temp.mkdir('node-unzip-', function (err, dirPath) { if (err) { throw err; } var unzipExtractor = unzip.Extract({ path: dirPath }); unzipExtractor.on('error', function(err) { throw err; }); unzipExtractor.on('close', testExtractionResults); fs.createReadStream(archive).pipe(unzipExtractor); function testExtractionResults() { dirdiff(path.join(__dirname, '../testData/compressed-OSX-Finder/inflated'), dirPath, { fileContents: true }, function (err, diffs) { if (err) { throw err; } t.equal(diffs.length, 0, 'extracted directory contents'); t.end(); }); } }); }); test("archive w/ language encoding flag set", function (t) { var archive = path.join(__dirname, '../testData/compressed-flags-set/archive.zip'); temp.mkdir('node-unzip-', function (err, dirPath) { if (err) { throw err; } var unzipExtractor = unzip.Extract({ path: dirPath }); unzipExtractor.on('error', function(err) { throw err; }); unzipExtractor.on('close', testExtractionResults); fs.createReadStream(archive).pipe(unzipExtractor); function testExtractionResults() { dirdiff(path.join(__dirname, '../testData/compressed-flags-set/inflated'), dirPath, { fileContents: true }, function (err, diffs) { if (err) { throw err; } t.equal(diffs.length, 0, 'extracted directory contents'); t.end(); }); } }); });