Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

test-cookiejar.js 2.5 KiB

12 anos atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. var Cookie = require('../vendor/cookie')
  2. , Jar = require('../vendor/cookie/jar')
  3. , assert = require('assert');
  4. function expires(ms) {
  5. return new Date(Date.now() + ms).toUTCString();
  6. }
  7. // test .get() expiration
  8. (function() {
  9. var jar = new Jar;
  10. var cookie = new Cookie('sid=1234; path=/; expires=' + expires(1000));
  11. jar.add(cookie);
  12. setTimeout(function(){
  13. var cookies = jar.get({ url: 'http://foo.com/foo' });
  14. assert.equal(cookies.length, 1);
  15. assert.equal(cookies[0], cookie);
  16. setTimeout(function(){
  17. var cookies = jar.get({ url: 'http://foo.com/foo' });
  18. assert.equal(cookies.length, 0);
  19. }, 1000);
  20. }, 5);
  21. })();
  22. // test .get() path support
  23. (function() {
  24. var jar = new Jar;
  25. var a = new Cookie('sid=1234; path=/');
  26. var b = new Cookie('sid=1111; path=/foo/bar');
  27. var c = new Cookie('sid=2222; path=/');
  28. jar.add(a);
  29. jar.add(b);
  30. jar.add(c);
  31. // should remove the duplicates
  32. assert.equal(jar.cookies.length, 2);
  33. // same name, same path, latter prevails
  34. var cookies = jar.get({ url: 'http://foo.com/' });
  35. assert.equal(cookies.length, 1);
  36. assert.equal(cookies[0], c);
  37. // same name, diff path, path specifity prevails, latter prevails
  38. var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
  39. assert.equal(cookies.length, 1);
  40. assert.equal(cookies[0], b);
  41. var jar = new Jar;
  42. var a = new Cookie('sid=1111; path=/foo/bar');
  43. var b = new Cookie('sid=1234; path=/');
  44. jar.add(a);
  45. jar.add(b);
  46. var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
  47. assert.equal(cookies.length, 1);
  48. assert.equal(cookies[0], a);
  49. var cookies = jar.get({ url: 'http://foo.com/' });
  50. assert.equal(cookies.length, 1);
  51. assert.equal(cookies[0], b);
  52. var jar = new Jar;
  53. var a = new Cookie('sid=1111; path=/foo/bar');
  54. var b = new Cookie('sid=3333; path=/foo/bar');
  55. var c = new Cookie('pid=3333; path=/foo/bar');
  56. var d = new Cookie('sid=2222; path=/foo/');
  57. var e = new Cookie('sid=1234; path=/');
  58. jar.add(a);
  59. jar.add(b);
  60. jar.add(c);
  61. jar.add(d);
  62. jar.add(e);
  63. var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
  64. assert.equal(cookies.length, 2);
  65. assert.equal(cookies[0], b);
  66. assert.equal(cookies[1], c);
  67. var cookies = jar.get({ url: 'http://foo.com/foo/' });
  68. assert.equal(cookies.length, 1);
  69. assert.equal(cookies[0], d);
  70. var cookies = jar.get({ url: 'http://foo.com/' });
  71. assert.equal(cookies.length, 1);
  72. assert.equal(cookies[0], e);
  73. })();
  74. setTimeout(function() {
  75. console.log('All tests passed');
  76. }, 1200);