var assert = require('assert'); var common = require('../common'); var formidable = require('../../lib/index'); var http = require('http'); var server = http.createServer(function(req, res) { var form = new formidable.IncomingForm(); form.uploadDir = common.dir.tmp; form.on('end', function () { throw new Error('Unexpected "end" event'); }); form.on('error', function (e) { res.writeHead(500); res.end(e.message); }); form.parse(req); }); server.listen(0, function() { var body = '--foo\r\n' + 'Content-Disposition: form-data; name="file1"; filename="file1"\r\n' + 'Content-Type: application/octet-stream\r\n' + '\r\nThis is the first file\r\n' + '--foo\r\n' + 'Content-Type: application/octet-stream\r\n' + 'Content-Disposition: form-data; name="file2"; filename="file2"\r\n' + 'Content-Transfer-Encoding: unknown\r\n' + '\r\nThis is the second file\r\n' + '--foo--\r\n'; var req = http.request({ method: 'POST', port: server.address().port, headers: { 'Content-Length': body.length, 'Content-Type': 'multipart/form-data; boundary=foo' } }); req.on('response', function (res) { assert.equal(res.statusCode, 500); res.on('data', function () {}); res.on('end', function () { server.close(); }); }); req.end(body); });