1 var Cookie = require('../index')
3 , assert = require('assert');
6 return new Date(Date.now() + ms).toUTCString();
9 // test .get() expiration
12 var cookie = new Cookie('sid=1234; path=/; expires=' + expires(1000));
14 setTimeout(function(){
15 var cookies = jar.get({ url: 'http://foo.com/foo' });
16 assert.equal(cookies.length, 1);
17 assert.equal(cookies[0], cookie);
18 setTimeout(function(){
19 var cookies = jar.get({ url: 'http://foo.com/foo' });
20 assert.equal(cookies.length, 0);
25 // test .get() path support
28 var a = new Cookie('sid=1234; path=/');
29 var b = new Cookie('sid=1111; path=/foo/bar');
30 var c = new Cookie('sid=2222; path=/');
35 // should remove the duplicates
36 assert.equal(jar.cookies.length, 2);
38 // same name, same path, latter prevails
39 var cookies = jar.get({ url: 'http://foo.com/' });
40 assert.equal(cookies.length, 1);
41 assert.equal(cookies[0], c);
43 // same name, diff path, path specifity prevails, latter prevails
44 var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
45 assert.equal(cookies.length, 1);
46 assert.equal(cookies[0], b);
49 var a = new Cookie('sid=1111; path=/foo/bar');
50 var b = new Cookie('sid=1234; path=/');
54 var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
55 assert.equal(cookies.length, 1);
56 assert.equal(cookies[0], a);
58 var cookies = jar.get({ url: 'http://foo.com/' });
59 assert.equal(cookies.length, 1);
60 assert.equal(cookies[0], b);
63 var a = new Cookie('sid=1111; path=/foo/bar');
64 var b = new Cookie('sid=3333; path=/foo/bar');
65 var c = new Cookie('pid=3333; path=/foo/bar');
66 var d = new Cookie('sid=2222; path=/foo/');
67 var e = new Cookie('sid=1234; path=/');
74 var cookies = jar.get({ url: 'http://foo.com/foo/bar' });
75 assert.equal(cookies.length, 2);
76 assert.equal(cookies[0], b);
77 assert.equal(cookies[1], c);
79 var cookies = jar.get({ url: 'http://foo.com/foo/' });
80 assert.equal(cookies.length, 1);
81 assert.equal(cookies[0], d);
83 var cookies = jar.get({ url: 'http://foo.com/' });
84 assert.equal(cookies.length, 1);
85 assert.equal(cookies[0], e);
88 setTimeout(function() {
89 console.log('All tests passed');