arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
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});