83 lines
3.2 KiB
JavaScript
83 lines
3.2 KiB
JavaScript
|
#!/usr/bin/env node
|
||
|
var Cookie=require("../cookiejar"),
|
||
|
CookieAccessInfo = Cookie.CookieAccessInfo,
|
||
|
CookieJar = Cookie.CookieJar,
|
||
|
Cookie = Cookie.Cookie;
|
||
|
|
||
|
var assert = require('assert');
|
||
|
|
||
|
// Test Cookie
|
||
|
var cookie = new Cookie("a=1;domain=.test.com;path=/");
|
||
|
assert.equal(cookie.name, "a");
|
||
|
assert.equal(cookie.value, "1");
|
||
|
assert.equal(cookie.domain, ".test.com");
|
||
|
assert.equal(cookie.path, "/");
|
||
|
assert.equal(cookie.secure, false);
|
||
|
assert.equal(cookie.expiration_date, Infinity);
|
||
|
|
||
|
assert.deepEqual(cookie, new Cookie("a=1;domain=.test.com;path=/"));
|
||
|
assert.ok(cookie.collidesWith(new Cookie("a=1;domain=.test.com;path=/")));
|
||
|
|
||
|
var cookie = new Cookie("a=1;path=/", ".test.com");
|
||
|
assert.equal(cookie.domain, ".test.com");
|
||
|
|
||
|
|
||
|
// Test CookieJar
|
||
|
var test_jar = CookieJar();
|
||
|
test_jar.setCookies(
|
||
|
"a=1;domain=.test.com;path=/"
|
||
|
+":b=2;domain=test.com;path=/"
|
||
|
+":c=3;domain=test.com;path=/;expires=January 1, 1970");
|
||
|
var cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
|
||
|
assert.equal(cookies.length, 2, "Expires on setCookies fail\n" + cookies.toString());
|
||
|
assert.equal(cookies.toValueString(), 'a=1;b=2', "Cannot get value string of multiple cookies");
|
||
|
|
||
|
cookies=test_jar.getCookies(CookieAccessInfo("www.test.com","/"))
|
||
|
assert.equal(cookies.length, 2, "Wildcard domain fail\n" + cookies.toString());
|
||
|
|
||
|
test_jar.setCookies("b=2;domain=test.com;path=/;expires=January 1, 1970");
|
||
|
cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
|
||
|
assert.equal(cookies.length, 1, "Delete cookie fail\n" + cookies.toString());
|
||
|
assert.equal(String(test_jar.getCookies(CookieAccessInfo("test.com","/"))), "a=1; domain=.test.com; path=/");
|
||
|
|
||
|
cookie=Cookie("a=1;domain=test.com;path=/;HttpOnly");
|
||
|
assert.ok(cookie.noscript, "HttpOnly flag parsing failed\n" + cookie.toString());
|
||
|
|
||
|
var test_jar = CookieJar();
|
||
|
test_jar.setCookies([
|
||
|
"a=1;domain=.test.com;path=/"
|
||
|
, "a=1;domain=.test.com;path=/"
|
||
|
, "a=2;domain=.test.com;path=/"
|
||
|
, "b=3;domain=.test.com;path=/"]);
|
||
|
var cookies=test_jar.getCookies(CookieAccessInfo("test.com","/"))
|
||
|
assert.equal(cookies.length, 2);
|
||
|
assert.equal(cookies[0].value, 2);
|
||
|
|
||
|
// Test Ignore Trailing Semicolons (Github Issue #6)
|
||
|
var cookie = new Cookie("a=1;domain=.test.com;path=/;;;;");
|
||
|
assert.equal(cookie.name, "a");
|
||
|
assert.equal(cookie.value, "1");
|
||
|
assert.equal(cookie.domain, ".test.com");
|
||
|
assert.equal(cookie.path, "/");
|
||
|
assert.deepEqual(cookie, new Cookie("a=1;domain=.test.com;path=/"));
|
||
|
|
||
|
// Test request_path and request_domain
|
||
|
test_jar.setCookie(new Cookie("sub=4;path=/", "test.com"));
|
||
|
var cookie = test_jar.getCookie("sub", CookieAccessInfo("sub.test.com", "/"));
|
||
|
assert.equal(cookie, undefined);
|
||
|
|
||
|
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/"));
|
||
|
assert.equal(cookie.name, "sub");
|
||
|
assert.equal(cookie.domain, "test.com");
|
||
|
|
||
|
test_jar.setCookie(new Cookie("sub=4;path=/accounts", "test.com", "/accounts"));
|
||
|
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/foo"));
|
||
|
assert.equal(cookie, undefined);
|
||
|
|
||
|
var cookie = test_jar.getCookie("sub", CookieAccessInfo("test.com", "/accounts"));
|
||
|
assert.equal(cookie.path, "/accounts");
|
||
|
|
||
|
test_jar.setCookie(new Cookie("sub=5;path=/", "test.com", "/accounts"));
|
||
|
var cookies = test_jar.getCookies(CookieAccessInfo("test.com"));
|
||
|
assert.equal(cookies.length, 3);
|