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);