選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

53 行
1.6 KiB

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