comunicationLeap/node_modules/formidable/test/standalone/test-issue-46.js
node_modules/formidable/test/standalone/test-issue-46.jsRaw
1var http = require('http'),
2 formidable = require('../../lib/index'),
3 request = require('request'),
4 assert = require('assert');
5
6var host = 'localhost';
7
8var index = [
9 '<form action="/" method="post" enctype="multipart/form-data">',
10 ' <input type="text" name="foo" />',
11 ' <input type="submit" />',
12 '</form>'
13].join("\n");
14
15var server = http.createServer(function(req, res) {
16
17 // Show a form for testing purposes.
18 if (req.method == 'GET') {
19 res.writeHead(200, {'content-type': 'text/html'});
20 res.end(index);
21 return;
22 }
23
24 // Parse form and write results to response.
25 var form = new formidable.IncomingForm();
26 form.parse(req, function(err, fields, files) {
27 res.writeHead(200, {'content-type': 'text/plain'});
28 res.write(JSON.stringify({err: err, fields: fields, files: files}));
29 res.end();
30 });
31
32}).listen(0, host, function() {
33
34 console.log("Server up and running...");
35
36 var server = this,
37 url = 'http://' + host + ':' + server.address().port;
38
39 var parts = [
40 {'Content-Disposition': 'form-data; name="foo"', 'body': 'bar'}
41 ]
42
43 var req = request({method: 'POST', url: url, multipart: parts}, function(e, res, body) {
44 var obj = JSON.parse(body);
45 assert.equal("bar", obj.fields.foo);
46 server.close();
47 });
48
49});