1 | var server = require('./server') |
---|
2 | , assert = require('assert') |
---|
3 | , request = require('../index') |
---|
4 | , Cookie = require('cookie-jar') |
---|
5 | , Jar = Cookie.Jar |
---|
6 | , s = server.createServer() |
---|
7 | |
---|
8 | s.listen(s.port, function () { |
---|
9 | var serverUri = 'http://localhost:' + s.port |
---|
10 | , numTests = 0 |
---|
11 | , numOutstandingTests = 0 |
---|
12 | |
---|
13 | function createTest(requestObj, serverAssertFn) { |
---|
14 | var testNumber = numTests; |
---|
15 | numTests += 1; |
---|
16 | numOutstandingTests += 1; |
---|
17 | s.on('/' + testNumber, function (req, res) { |
---|
18 | serverAssertFn(req, res); |
---|
19 | res.writeHead(200); |
---|
20 | res.end(); |
---|
21 | }); |
---|
22 | requestObj.url = serverUri + '/' + testNumber |
---|
23 | request(requestObj, function (err, res, body) { |
---|
24 | assert.ok(!err) |
---|
25 | assert.equal(res.statusCode, 200) |
---|
26 | numOutstandingTests -= 1 |
---|
27 | if (numOutstandingTests === 0) { |
---|
28 | console.log(numTests + ' tests passed.') |
---|
29 | s.close() |
---|
30 | } |
---|
31 | }) |
---|
32 | } |
---|
33 | |
---|
34 | // Issue #125: headers.cookie shouldn't be replaced when a cookie jar isn't specified |
---|
35 | createTest({headers: {cookie: 'foo=bar'}}, function (req, res) { |
---|
36 | assert.ok(req.headers.cookie) |
---|
37 | assert.equal(req.headers.cookie, 'foo=bar') |
---|
38 | }) |
---|
39 | |
---|
40 | // Issue #125: headers.cookie + cookie jar |
---|
41 | var jar = new Jar() |
---|
42 | jar.add(new Cookie('quux=baz')); |
---|
43 | createTest({jar: jar, headers: {cookie: 'foo=bar'}}, function (req, res) { |
---|
44 | assert.ok(req.headers.cookie) |
---|
45 | assert.equal(req.headers.cookie, 'foo=bar; quux=baz') |
---|
46 | }) |
---|
47 | |
---|
48 | // There should be no cookie header when neither headers.cookie nor a cookie jar is specified |
---|
49 | createTest({}, function (req, res) { |
---|
50 | assert.ok(!req.headers.cookie) |
---|
51 | }) |
---|
52 | }) |
---|