mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
12 years ago
|
var server = require('./server')
|
||
|
, assert = require('assert')
|
||
|
, request = require('../main.js')
|
||
|
, Cookie = require('../vendor/cookie')
|
||
|
, Jar = require('../vendor/cookie/jar')
|
||
|
, 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
|
||
|
var jar = new Jar()
|
||
|
jar.add(new Cookie('quux=baz'));
|
||
|
createTest({jar: jar, headers: {cookie: 'foo=bar'}}, function (req, res) {
|
||
|
assert.ok(req.headers.cookie)
|
||
|
assert.equal(req.headers.cookie, 'foo=bar; quux=baz')
|
||
|
})
|
||
|
|
||
|
// 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)
|
||
|
})
|
||
|
})
|