Name: js-handler/node_modules/restify/node_modules/formidable/test/standalone/test-issue-46.js 
1:
var http       = require('http'),
2:
    formidable = require('../../lib/index'),
3:
    request    = require('request'),
4:
    assert     = require('assert');
5:
 
6:
var host = 'localhost';
7:
 
8:
var 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:
 
15:
var 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:
});