diff options
Diffstat (limited to 'node_modules/gulp-gzip/test')
-rwxr-xr-x | node_modules/gulp-gzip/test/files/big.txt | 1 | ||||
-rwxr-xr-x | node_modules/gulp-gzip/test/files/small.txt | 1 | ||||
-rwxr-xr-x | node_modules/gulp-gzip/test/files/too_small.txt | 1 | ||||
-rwxr-xr-x | node_modules/gulp-gzip/test/test.js | 492 |
4 files changed, 495 insertions, 0 deletions
diff --git a/node_modules/gulp-gzip/test/files/big.txt b/node_modules/gulp-gzip/test/files/big.txt new file mode 100755 index 000000000..61779e6d4 --- /dev/null +++ b/node_modules/gulp-gzip/test/files/big.txt @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus, eaque animi autem distinctio assumenda. Necessitatibus, dicta, aliquam architecto aut error quaerat at beatae harum modi earum sequi accusantium labore nisi rerum neque nemo et quae dolorem voluptas dolorum blanditiis accusamus repellat illo saepe quisquam alias doloribus non temporibus quasi maiores distinctio eos unde ad ipsam excepturi vel praesentium repudiandae minus amet consequatur suscipit laboriosam qui asperiores possimus exercitationem nesciunt ratione odio reprehenderit deserunt iure! Doloremque deserunt rem vitae iure ipsam esse tempore veritatis voluptate natus blanditiis. Velit, porro, fuga enim quasi voluptatum praesentium ea autem fugit unde non architecto quisquam reprehenderit cumque laboriosam dolore saepe eligendi similique iste quis expedita beatae itaque possimus repellendus officiis nam minima blanditiis numquam voluptatem optio temporibus asperiores adipisci quas necessitatibus cum natus hic provident? Autem, atque, voluptate, dicta, sequi adipisci doloribus aspernatur ipsa beatae rem odio doloremque odit consequuntur vitae cupiditate quos repellendus id eligendi excepturi pariatur molestiae praesentium quasi perspiciatis quaerat quisquam blanditiis architecto minus ad possimus porro illum quibusdam ipsam culpa voluptatibus iste ex earum quae quam laboriosam deleniti in expedita esse! Nihil, laboriosam, rem, consequatur ullam ipsam reiciendis tempora aliquam quos cupiditate saepe facere recusandae tenetur odio nulla officia molestiae atque harum ipsa nobis dolorum voluptatum suscipit consequuntur deleniti iusto delectus hic a numquam neque aliquid asperiores ipsum impedit nisi voluptas beatae facilis culpa eveniet unde animi architecto omnis fugiat magni? Placeat, autem, vero, aspernatur, ab impedit nisi delectus sequi hic aliquid officia cupiditate praesentium voluptates veniam doloremque cumque aliquam enim quas reprehenderit aut dolor possimus inventore saepe fuga in dignissimos ipsam ut et eum sed tempore error a labore beatae incidunt repellat animi perferendis rerum iure tempora odio nam earum nulla asperiores est laboriosam facilis? Perspiciatis, fugiat, veniam, voluptatem ad eligendi optio veritatis autem voluptas deleniti incidunt provident soluta mollitia nesciunt fugit recusandae. Porro, nostrum, ab, inventore velit quidem impedit voluptatum placeat tempora mollitia unde nisi itaque dolorum perspiciatis temporibus excepturi omnis nobis. Itaque, provident, laudantium aperiam unde ex laborum vero quam placeat porro accusantium quia non alias facilis illum corporis dolor voluptatum aspernatur expedita deserunt labore beatae illo nobis hic ea vel omnis velit iste magnam odit asperiores delectus autem praesentium minima recusandae ipsa nisi eligendi ipsam. Est, animi, ipsam natus culpa cumque excepturi molestiae sit tenetur rem aspernatur assumenda laborum sequi sed tempora praesentium rerum reiciendis qui quidem cum possimus. Dolorem, ad delectus temporibus quasi repudiandae dicta repellendus! diff --git a/node_modules/gulp-gzip/test/files/small.txt b/node_modules/gulp-gzip/test/files/small.txt new file mode 100755 index 000000000..a18737279 --- /dev/null +++ b/node_modules/gulp-gzip/test/files/small.txt @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis, eaque, rerum maxime quod repellat ipsam modi sit voluptatibus quidem et. Mollitia dicta atque modi. Recusandae, doloribus dolores praesentium culpa quisquam quasi maiores aperiam itaque minima incidunt hic in similique quas. Unde, ut nam ipsum doloribus praesentium neque sapiente dolorum beatae totam rem! Tempora, dolorem, nesciunt, dolorum veritatis earum aliquam a quae rem saepe vitae quaerat ex aliquid voluptates eum nobis repellat natus neque voluptatem veniam exercitationem nam eaque iste sequi officia perspiciatis! Earum, hic alias aperiam repellat tenetur labore mollitia unde dolorum eligendi consequatur asperiores neque excepturi officia? Ducimus sed velit ipsa iure libero eos doloremque at eveniet facilis quibusdam! Optio, veniam adipisci eius error sequi. Pariatur, vitae vero quia et illum alias saepe aperiam enim! Deleniti ipsam repellat labore. diff --git a/node_modules/gulp-gzip/test/files/too_small.txt b/node_modules/gulp-gzip/test/files/too_small.txt new file mode 100755 index 000000000..8baef1b4a --- /dev/null +++ b/node_modules/gulp-gzip/test/files/too_small.txt @@ -0,0 +1 @@ +abc diff --git a/node_modules/gulp-gzip/test/test.js b/node_modules/gulp-gzip/test/test.js new file mode 100755 index 000000000..ee62dfb60 --- /dev/null +++ b/node_modules/gulp-gzip/test/test.js @@ -0,0 +1,492 @@ +var clean = require('gulp-clean'); +var fs = require('fs'); +var gulp = require('gulp'); +var log = require('gulp-util').log; +var gzip = require('../'); +var nid = require('nid'); +var rename = require('gulp-rename'); +var should = require('should'); +var Stream = require('stream'); +var tap = require('gulp-tap'); +var zlib = require('zlib'); + +// monkeys are fixing cwd for gulp-mocha +// node lives in one process/scope/directory +process.chdir('./test'); + +describe('gulp-gzip', function() { + + describe('config', function() { + + it('should have default config', function(done) { + var instance = gzip(); + instance.config.should.eql({ + append: true, + gzipOptions: {}, + skipGrowingFiles: false, + threshold: false + }); + done(); + }); + + it('should merge options with defaults', function(done) { + var instance = gzip({ append: false }); + instance.config.should.eql({ + append: false, + gzipOptions: {}, + skipGrowingFiles: false, + threshold: false + }); + done(); + }); + }); + + describe('file extension', function() { + + it('should append .gz to the file extension, by default', function(done) { + gulp.src('files/small.txt') + .pipe(gzip()) + .pipe(tap(function(file) { + file.path.should.endWith('.gz'); + done(); + })); + }); + + it('should not append .gz to the file extension receiving { append: false }', function(done) { + gulp.src('files/small.txt') + .pipe(gzip({ append: false })) + .pipe(tap(function(file) { + file.path.should.not.endWith('.gz'); + done(); + })); + }); + + it('should accept an arbitrary extension with the `extension` option', function(done) { + gulp.src('files/small.txt') + .pipe(gzip({ extension: 'zip' })) + .pipe(tap(function(file) { + file.path.should.endWith('.zip'); + done(); + })); + }); + + it('should accept an arbitrary pre-extension with the `preExtension` option', function(done) { + gulp.src('files/small.txt') + .pipe(gzip({ preExtension: 'gz' })) + .pipe(tap(function(file) { + file.path.should.endWith('.gz.txt'); + done(); + })); + }); + }); + + describe('file type', function() { + + it('should return file contents as a Buffer', function(done) { + gulp.src('files/small.txt') + .pipe(gzip()) + .pipe(tap(function(file) { + file.contents.should.be.instanceof(Buffer); + done(); + })); + }); + + it('should return file contents as a Stream', function(done) { + gulp.src('files/small.txt', { buffer: false }) + .pipe(gzip()) + .pipe(tap(function(file) { + file.contents.should.be.instanceof(Stream); + done(); + })); + }); + }); + + describe('file properties', function() { + it('should not lose any properties from the Vinyl file', function(done) { + gulp.src('files/small.txt') + .pipe(tap(function(file) { + file.test = 'test'; + })) + .pipe(gzip()) + .pipe(tap(function(file) { + file.should.have.property('test', 'test'); + done(); + })); + }); + + it('should set `contentEncoding`', function(done) { + gulp.src('files/small.txt') + .pipe(gzip()) + .pipe(tap(function(file) { + file.should.have.property('contentEncoding'); + file.contentEncoding.should.containEql('gzip'); + done(); + })); + }); + }); + + describe('gzip options', function() { + + it('should set gzipOptions object', function(done) { + var instance = gzip({ gzipOptions: { level: 9, memLevel: 1} }); + instance.config.should.have.property('gzipOptions'); + instance.config.gzipOptions.should.have.property('level', 9); + instance.config.gzipOptions.should.have.property('memLevel', 1); + done(); + }); + + it('should handle compression level in buffer mode', function(done) { + var id_lowest_compression = nid(); + var id_highest_compression = nid(); + + var out_lowest_compression = gulp.dest('tmp'); + var out_highest_compression = gulp.dest('tmp'); + + var size_lowest_compression = 0; + var size_highest_compression = 0; + + out_lowest_compression.on('end', function() { + fs.stat('./tmp/' + id_lowest_compression + '.txt.gz', function (err, stats) { + size_lowest_compression = stats.size; + + if (size_highest_compression > 0) { + size_highest_compression.should.be.lessThan(size_lowest_compression); + done(); + } + }); + }); + + out_highest_compression.on('end', function() { + fs.stat('./tmp/' + id_highest_compression + '.txt.gz', function (err, stats) { + size_highest_compression = stats.size; + + if (size_lowest_compression > 0) { + size_highest_compression.should.be.lessThan(size_lowest_compression); + done(); + } + }); + }); + + gulp.src('files/big.txt') + .pipe(rename({ basename: id_lowest_compression })) + .pipe(gzip({ gzipOptions: { level: 1 } })) + .pipe(out_lowest_compression); + + gulp.src('files/big.txt') + .pipe(rename({ basename: id_highest_compression })) + .pipe(gzip({ gzipOptions: { level: 9 } })) + .pipe(out_highest_compression); + }); + + it('should handle compression level in stream mode', function(done) { + var id_lowest_compression = nid(); + var id_highest_compression = nid(); + + var out_lowest_compression = gulp.dest('tmp'); + var out_highest_compression = gulp.dest('tmp'); + + var size_lowest_compression = 0; + var size_highest_compression = 0; + + out_lowest_compression.on('end', function() { + fs.stat('./tmp/' + id_lowest_compression + '.txt.gz', function (err, stats) { + size_lowest_compression = stats.size; + + if (size_highest_compression > 0) { + size_highest_compression.should.be.lessThan(size_lowest_compression); + done(); + } + }); + }); + + out_highest_compression.on('end', function() { + fs.stat('./tmp/' + id_highest_compression + '.txt.gz', function (err, stats) { + size_highest_compression = stats.size; + + if (size_lowest_compression > 0) { + size_highest_compression.should.be.lessThan(size_lowest_compression); + done(); + } + }); + }); + + gulp.src('files/big.txt', { buffer: false }) + .pipe(rename({ basename: id_lowest_compression })) + .pipe(gzip({ gzipOptions: { level: 1 } })) + .pipe(out_lowest_compression); + + gulp.src('files/big.txt', { buffer: false }) + .pipe(rename({ basename: id_highest_compression })) + .pipe(gzip({ gzipOptions: { level: 9 } })) + .pipe(out_highest_compression); + }); + }); + + describe('threshold option', function() { + + it('should set threshold to false while receiving false', function(done) { + var instance = gzip({ threshold: false }); + instance.config.threshold.should.be.false; + done(); + }); + + it('should set threshold to 150 while receiving true', function(done) { + var instance = gzip({ threshold: true }); + instance.config.threshold.should.eql(150); + done(); + }); + + it('should set threshold to Number while receiving Number', function(done) { + var instance = gzip({ threshold: 1024 }); + instance.config.should.have.property('threshold', 1024); + done(); + }); + + it('should set threshold to 150 while receiving Number < 150', function(done) { + var instance = gzip({ threshold: 100 }); + instance.config.should.have.property('threshold', 150); + done(); + }); + + it('should set threshold to Number while receiving String (bytes result)', function(done) { + var instance = gzip({ threshold: '1kb' }); + instance.config.should.have.property('threshold', 1024); + done(); + }); + + it('should set threshold to 150 while receiving String (bytes result < 150)', function(done) { + var instance = gzip({ threshold: '1kb' }); + instance.config.should.have.property('threshold', 1024); + done(); + }); + + it('should handle threshold of 1kb by passing through small.txt (<1kb)', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt', { encoding: 'utf-8' }, function(err, file) { + fs.readFile('./files/small.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + + gulp.src('files/small.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: '1kb' })) + .pipe(out); + }); + + it('should handle threshold of 1kb by compressing big.txt (>1kb)', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + zlib.unzip(file, function(err, buffer) { + file = buffer.toString('utf-8'); + + fs.readFile('./files/big.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + }); + + gulp.src('files/big.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: '1kb' })) + .pipe(out); + }); + + it('should handle threshold of 1kb by passing through small.txt (<1kb)', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt', { encoding: 'utf-8' }, function(err, file) { + fs.readFile('./files/small.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + + gulp.src('files/small.txt', { buffer: false }) + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: '1kb' })) + .pipe(out); + }); + + it('should handle threshold of 1kb by compressing big.txt (>1kb)', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + zlib.unzip(file, function(err, buffer) { + file = buffer.toString('utf-8'); + + fs.readFile('./files/big.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + }); + + gulp.src('files/big.txt', { buffer: false }) + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: '1kb' })) + .pipe(out); + }); + }); + + describe('delete mode', function() { + + it('should not delete existing gzipped files when { deleteMode : false }', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + should.not.exist(err); + should.exist(file); + file.should.not.be.empty; + + var out = gulp.dest('tmp'); + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + should.not.exist(err); + should.exist(file); + file.should.not.be.empty; + done(); + }); + }); + + gulp.src('files/small.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: 1024 })) + .pipe(out); + }); + }); + + gulp.src('files/big.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: 1024 })) + .pipe(out); + }); + + it('should delete existing gzipped files if the files changed from big.txt (over threshold) to small.txt (under threshold) when { deleteMode : true }', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + should.not.exist(err); + should.exist(file); + file.should.not.be.empty; + + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.exists('./tmp/' + id + '.txt.gz', function(exists) { + exists.should.be.false; + done(); + }); + }); + + gulp.src('files/small.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: 1024, deleteMode: 'tmp' })) + .pipe(out); + }); + }); + + gulp.src('files/big.txt') + .pipe(rename({ basename: id })) + .pipe(gzip({ threshold: 1024, deleteMode: 'tmp' })) + .pipe(out); + }); + }); + + describe ('uncompress the compressed file', function() { + + it('should match original in buffer mode', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + zlib.unzip(file, function(err, buffer) { + file = buffer.toString('utf-8', 0, buffer.length); + + fs.readFile('./files/small.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + }); + + gulp.src('files/small.txt') + .pipe(rename({ basename: id })) + .pipe(gzip()) + .pipe(out); + }); + + it('should match original in stream mode', function(done) { + var id = nid(); + var out = gulp.dest('tmp'); + + out.on('end', function() { + fs.readFile('./tmp/' + id + '.txt.gz', function(err, file) { + zlib.unzip(file, function(err, buffer) { + file = buffer.toString('utf-8', 0, buffer.length); + + fs.readFile('./files/small.txt', { encoding: 'utf-8' }, function(err, original) { + file.should.equal(original); + done(); + }); + }); + }); + }); + + gulp.src('files/small.txt', { buffer: false }) + .pipe(rename({ basename: id })) + .pipe(gzip()) + .pipe(out); + }); + }); + + describe('skip files that get larger after compression', function() { + it('handles buffers', function(done) { + var originalBuffer; + gulp.src('files/too_small.txt') + .pipe(tap(function(file) { + originalBuffer = file.contents; + })) + .pipe(gzip({ skipGrowingFiles: true })) + .pipe(tap(function(file) { + file.contents.should.equal(originalBuffer); + done(); + })); + }); + + it('handles streams', function(done) { + var originalStream; + gulp.src('files/too_small.txt', { buffer: false }) + .pipe(tap(function(file) { + originalStream = file.contents; + })) + .pipe(gzip({ skipGrowingFiles: true })) + .pipe(tap(function(file) { + file.contents.should.equal(originalStream); + done(); + })); + }); + }); +}); |