123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- var expect = require('chai').expect,
- through = require('through2'),
- Vinyl = require('vinyl'),
- fs = require('fs'),
- path = require('path'),
- concatCss = require('../');
- function expected(file) {
- var base = path.join(process.cwd(), 'test/expected');
- var filepath = path.resolve(base, file);
- return new Vinyl({
- path: filepath,
- cwd: process.cwd(),
- base: base,
- contents: fs.readFileSync(filepath)
- });
- }
- function fixture(file) {
- var base = path.join(process.cwd(), 'test/fixtures');
- var filepath = path.join(base, file);
- return new Vinyl({
- path: filepath,
- cwd: process.cwd(),
- base: base,
- contents: fs.readFileSync(filepath)
- });
- }
- describe('gulp-concat-css', function() {
- it('should only bubble up imports', function(done) {
- var now = Date.now();
- var stream = concatCss('build/bundle-bubbleonly.css', {inlineImports: false, rebaseUrls: false});
- var expectedFile = expected('build/bundle-bubbleonly.css');
- stream
- .pipe(through.obj(function(file, enc, cb) {
- //fs.writeFileSync("bundle.css", file.contents);
- expect(String(file.contents)).to.be.equal(String(expectedFile.contents));
- expect(path.basename(file.path)).to.be.equal(path.basename(expectedFile.path));
- expect(file.cwd, "cwd").to.be.equal(expectedFile.cwd);
- expect(file.relative, "relative").to.be.equal(expectedFile.relative);
- console.log('Execution time: ' + (Date.now() - now) + 'ms');
- done();
- }));
- stream.write(fixture('main.css'));
- stream.write(fixture('vendor/vendor.css'));
- stream.end();
- });
- it('should only rebase urls', function(done) {
- var now = Date.now();
- var stream = concatCss('build/bundle-rebase.css', {inlineImports: false});
- var expectedFile = expected('build/bundle-rebase.css');
- stream
- .pipe(through.obj(function(file, enc, cb) {
- //fs.writeFileSync("bundle.css", file.contents);
- expect(String(file.contents)).to.be.equal(String(expectedFile.contents));
- expect(path.basename(file.path)).to.be.equal(path.basename(expectedFile.path));
- expect(file.cwd, "cwd").to.be.equal(expectedFile.cwd);
- expect(file.relative, "relative").to.be.equal(expectedFile.relative);
- console.log('Execution time: ' + (Date.now() - now) + 'ms');
- done();
- }));
- stream.write(fixture('main.css'));
- stream.write(fixture('vendor/vendor.css'));
- stream.end();
- });
- it('should only inline imports', function(done) {
- var now = Date.now();
- var stream = concatCss('build/bundle-import.css', {inlineImports: true, rebaseUrls: false});
- var expectedFile = expected('build/bundle-import.css');
- stream
- .pipe(through.obj(function(file, enc, cb) {
- //fs.writeFileSync("bundle.css", file.contents);
- expect(String(file.contents)).to.be.equal(String(expectedFile.contents));
- expect(path.basename(file.path)).to.be.equal(path.basename(expectedFile.path));
- expect(file.cwd, "cwd").to.be.equal(expectedFile.cwd);
- expect(file.relative, "relative").to.be.equal(expectedFile.relative);
- console.log('Execution time: ' + (Date.now() - now) + 'ms');
- done();
- }));
- stream.write(fixture('main.css'));
- stream.write(fixture('vendor/vendor.css'));
- stream.end();
- });
- it('should concat, rebase urls, inline imports and bubble up external imports', function(done) {
- var now = Date.now();
- var stream = concatCss('build/bundle-all.css');
- var expectedFile = expected('build/bundle-all.css');
- stream
- .pipe(through.obj(function(file, enc, cb) {
- //fs.writeFileSync("bundle.css", file.contents);
- expect(String(file.contents)).to.be.equal(String(expectedFile.contents));
- expect(path.basename(file.path)).to.be.equal(path.basename(expectedFile.path));
- expect(file.cwd, "cwd").to.be.equal(expectedFile.cwd);
- expect(file.relative, "relative").to.be.equal(expectedFile.relative);
- console.log('Execution time: ' + (Date.now() - now) + 'ms');
- done();
- }));
- stream.write(fixture('main.css'));
- stream.write(fixture('vendor/vendor.css'));
- stream.end();
- });
- it('should not crash if no file is provided', function(done) {
- var stream = concatCss('build/bundle-all.css');
- stream
- .on('error', function() {
- done(false);
- })
- .pipe(through.obj(function(file, enc, cb) {
- done(false);
- }, function() {
- done();
- }));
- stream.end();
- });
- });
|