/* */ 
var common = require('../common');
var formidable = common.formidable;
var http = require('http');
var fs = require('fs');
var path = require('path');
var hashish = require('hashish');
var assert = require('assert');
var testFilePath = path.join(__dirname, '../fixture/file/binaryfile.tar.gz');
var server = http.createServer(function(req, res) {
  var form = new formidable.IncomingForm();
  form.parse(req, function(err, fields, files) {
    assert.equal(hashish(files).length, 1);
    var file = files.file;
    assert.equal(file.size, 301);
    var uploaded = fs.readFileSync(file.path);
    var original = fs.readFileSync(testFilePath);
    assert.deepEqual(uploaded, original);
    res.end();
    server.close();
  });
});
var port = common.port;
server.listen(port, function(err) {
  assert.equal(err, null);
  var request = http.request({
    port: port,
    method: 'POST',
    headers: {'Content-Type': 'application/octet-stream'}
  });
  fs.createReadStream(testFilePath).pipe(request);
});
