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)
- })
- })
|