test-cookies.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. try {
  2. require('tough-cookie')
  3. } catch (e) {
  4. console.error('tough-cookie must be installed to run this test.')
  5. console.error('skipping this test. please install tough-cookie and run again if you need to test this feature.')
  6. process.exit(0)
  7. }
  8. var assert = require('assert')
  9. , http = require('http')
  10. , request = require('../index')
  11. function simpleCookieCreationTest() {
  12. var cookie = request.cookie('foo=bar')
  13. assert(cookie.key === 'foo')
  14. assert(cookie.value === 'bar')
  15. }
  16. simpleCookieCreationTest()
  17. var requests = 0;
  18. var validUrl = 'http://localhost:6767/valid';
  19. var invalidUrl = 'http://localhost:6767/invalid';
  20. var server = http.createServer(function (req, res) {
  21. requests++;
  22. if (req.url === '/valid')
  23. res.setHeader('set-cookie', 'foo=bar');
  24. else if (req.url === '/invalid')
  25. res.setHeader('set-cookie', 'foo=bar; Domain=foo.com');
  26. res.end('okay');
  27. if (requests === 2) server.close();
  28. });
  29. server.listen(6767);
  30. var jar1 = request.jar();
  31. request({
  32. method: 'GET',
  33. url: validUrl,
  34. jar: jar1
  35. },
  36. function (error, response, body) {
  37. if (error) throw error;
  38. assert.equal(jar1.getCookieString(validUrl), 'foo=bar');
  39. assert.equal(body, 'okay');
  40. var cookies = jar1.getCookies(validUrl);
  41. assert(cookies.length == 1);
  42. assert(cookies[0].key === 'foo');
  43. assert(cookies[0].value === 'bar');
  44. });
  45. var jar2 = request.jar();
  46. request({
  47. method: 'GET',
  48. url: invalidUrl,
  49. jar: jar2
  50. },
  51. function (error, response, body) {
  52. if (error) throw error;
  53. assert.equal(jar2.getCookieString(validUrl), '');
  54. assert.deepEqual(jar2.getCookies(validUrl), []);
  55. assert.equal(body, 'okay');
  56. });