it('calls flush() after writes if the method exists on response', function(done) { // Initialize a server with a custom `flush()` method added on each incoming request, // mimicking the `compression` middleware. Check that we call `flush()`: // - On connect, after the initial headers, retry, and preamble has been written // - After "missed events" have been sent (once) // - After each broadcast var flushes = 0; initServer({ flush: function() { flushes++; }, history: [ { id: 1338, data: 'Event #1338' }, { id: 1339, data: 'Event #1339' } ] }); es = new EventSource(host + path + '?lastEventId=1337&evs_preamble=1'); es.onopen = function() { channel.send('We set sail from the sweet cove of Cork'); channel.send('With seven million barrels of porter'); }; es.onmessage = runAfter(4, function() { assert.equal(flushes, 4); done(); }); });
grunt.registerMultiTask("css_image", "Plugin to generate css file wto bind all images from folder", function(){ // Merge task-specific and/or target-specific options with these defaults. var options = this.options({ css: true, scss: false, retina: false, squeeze: 1, root: "", separator: "_", prefix: "img_" }); var info = []; var done = this.async(); var counts = reduce(this.files, function(memo, item){ return memo + size(item.src); }, 0); var default_dest = this.files[0] ? this.files[0].dest : null; var complete = after(counts, function(err, opts){ if(!opts){ opts = {}; } var dest = opts.dest || default_dest; var info = sortBy(opts.info, function(item){ return item.file; }); var txt = "/* This file is generated */\n"; txt += cssimage(info, options); grunt.file.write(dest, txt); grunt.log.writeln("File \"" + dest + "\" created."); done(); }); this.files.forEach( function(f){ f.src.forEach( function(itempath){ var src = libpath.join(f.cwd, itempath); fs.readFile(src, function(err, data){ var parser = imagesize.Parser(); var retStatus = parser.parse(data); if(imagesize.Parser.DONE === retStatus){ var result = parser.getResult(); result.file = itempath; info.push(result); } complete(null, {info: info, dest: f.dest }); }); }); }); });