|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- var Cookie = require('../vendor/cookie')
- , Jar = require('../vendor/cookie/jar')
- , assert = require('assert');
-
- function expires(ms) {
- return new Date(Date.now() + ms).toUTCString();
- }
-
- // test .get() expiration
- (function() {
- var jar = new Jar;
- var cookie = new Cookie('sid=1234; path=/; expires=' + expires(1000));
- jar.add(cookie);
- setTimeout(function(){
- var cookies = jar.get({ url: 'http://foo.com/foo' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], cookie);
- setTimeout(function(){
- var cookies = jar.get({ url: 'http://foo.com/foo' });
- assert.equal(cookies.length, 0);
- }, 1000);
- }, 5);
- })();
-
- // test .get() path support
- (function() {
- var jar = new Jar;
- var a = new Cookie('sid=1234; path=/');
- var b = new Cookie('sid=1111; path=/foo/bar');
- var c = new Cookie('sid=2222; path=/');
- jar.add(a);
- jar.add(b);
- jar.add(c);
-
- // should remove the duplicates
- assert.equal(jar.cookies.length, 2);
-
- // same name, same path, latter prevails
- var cookies = jar.get({ url: 'http://foo.com/' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], c);
-
- // same name, diff path, path specifity prevails, latter prevails
- var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], b);
-
- var jar = new Jar;
- var a = new Cookie('sid=1111; path=/foo/bar');
- var b = new Cookie('sid=1234; path=/');
- jar.add(a);
- jar.add(b);
-
- var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], a);
-
- var cookies = jar.get({ url: 'http://foo.com/' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], b);
-
- var jar = new Jar;
- var a = new Cookie('sid=1111; path=/foo/bar');
- var b = new Cookie('sid=3333; path=/foo/bar');
- var c = new Cookie('pid=3333; path=/foo/bar');
- var d = new Cookie('sid=2222; path=/foo/');
- var e = new Cookie('sid=1234; path=/');
- jar.add(a);
- jar.add(b);
- jar.add(c);
- jar.add(d);
- jar.add(e);
-
- var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
- assert.equal(cookies.length, 2);
- assert.equal(cookies[0], b);
- assert.equal(cookies[1], c);
-
- var cookies = jar.get({ url: 'http://foo.com/foo/' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], d);
-
- var cookies = jar.get({ url: 'http://foo.com/' });
- assert.equal(cookies.length, 1);
- assert.equal(cookies[0], e);
- })();
-
- setTimeout(function() {
- console.log('All tests passed');
- }, 1200);
|