| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | try {  require('tough-cookie')} catch (e) {  console.error('tough-cookie must be installed to run this test.')  console.error('skipping this test. please install tough-cookie and run again if you need to test this feature.')  process.exit(0)}var server = require('./server')  , assert = require('assert')  , request = require('../index')  , s = server.createServer()s.listen(s.port, function () {  var serverUri = 'http://localhost:' + s.port    , numTests = 0    , numOutstandingTests = 0  function createTest(requestObj, serverAssertFn) {    var testNumber = numTests;    numTests += 1;    numOutstandingTests += 1;    s.on('/' + testNumber, function (req, res) {      serverAssertFn(req, res);      res.writeHead(200);      res.end();    });    requestObj.url = serverUri + '/' + testNumber    request(requestObj, function (err, res, body) {      assert.ok(!err)      assert.equal(res.statusCode, 200)      numOutstandingTests -= 1      if (numOutstandingTests === 0) {        console.log(numTests + ' tests passed.')        s.close()      }    })  }  // Issue #125: headers.cookie shouldn't be replaced when a cookie jar isn't specified  createTest({headers: {cookie: 'foo=bar'}}, function (req, res) {    assert.ok(req.headers.cookie)    assert.equal(req.headers.cookie, 'foo=bar')  })  // Issue #125: headers.cookie + cookie jar  //using new cookie module  var jar = request.jar()  jar.setCookie('quux=baz', serverUri);  createTest({jar: jar, headers: {cookie: 'foo=bar'}}, function (req, res) {    assert.ok(req.headers.cookie)    assert.equal(req.headers.cookie, 'foo=bar; quux=baz')  })  // Issue #794 add ability to ignore cookie parsing and domain errors  var jar2 = request.jar()  jar2.setCookie('quux=baz; Domain=foo.bar.com', serverUri, {ignoreError: true});  createTest({jar: jar2, headers: {cookie: 'foo=bar'}}, function (req, res) {    assert.ok(req.headers.cookie)    assert.equal(req.headers.cookie, 'foo=bar')  })  // Issue #784: override content-type when json is used  // https://github.com/mikeal/request/issues/784  createTest({    json: true,    method: 'POST',    headers: {'content-type': 'application/json; charset=UTF-8'},    body: {hello: 'my friend'}},function(req, res) {      assert.ok(req.headers['content-type']);      assert.equal(req.headers['content-type'], 'application/json; charset=UTF-8');    }  )  // There should be no cookie header when neither headers.cookie nor a cookie jar is specified  createTest({}, function (req, res) {    assert.ok(!req.headers.cookie)  })})
 |