var http = require('http'),
|
|
formidable = require('../../lib/index'),
|
|
request = require('request'),
|
|
assert = require('assert');
|
|
|
|
var host = 'localhost';
|
|
|
|
var index = [
|
|
'<form action="/" method="post" enctype="multipart/form-data">',
|
|
' <input type="text" name="foo" />',
|
|
' <input type="submit" />',
|
|
'</form>'
|
|
].join("\n");
|
|
|
|
var server = http.createServer(function(req, res) {
|
|
|
|
// Show a form for testing purposes.
|
|
if (req.method == 'GET') {
|
|
res.writeHead(200, {'content-type': 'text/html'});
|
|
res.end(index);
|
|
return;
|
|
}
|
|
|
|
// Parse form and write results to response.
|
|
var form = new formidable.IncomingForm();
|
|
form.parse(req, function(err, fields, files) {
|
|
res.writeHead(200, {'content-type': 'text/plain'});
|
|
res.write(JSON.stringify({err: err, fields: fields, files: files}));
|
|
res.end();
|
|
});
|
|
|
|
}).listen(0, host, function() {
|
|
|
|
console.log("Server up and running...");
|
|
|
|
var server = this,
|
|
url = 'http://' + host + ':' + server.address().port;
|
|
|
|
var parts = [
|
|
{'Content-Disposition': 'form-data; name="foo"', 'body': 'bar'}
|
|
]
|
|
|
|
var req = request({method: 'POST', url: url, multipart: parts}, function(e, res, body) {
|
|
var obj = JSON.parse(body);
|
|
assert.equal("bar", obj.fields.foo);
|
|
server.close();
|
|
});
|
|
|
|
});
|