blob: 6c10d9a5a8eb37b82952f1982163ada287bed0c3 [file] [log] [blame]
define(['session'], function (sessionClass) {
beforeEach(
function () {
document.cookie.split(';').forEach(
function (i) {
var pair = i.split('=');
var name = pair[0].trim().toLowerCase();
}
);
}
);
describe('KorAP.Session', function () {
it('should be initializable', function () {
let s = sessionClass.create();
expect(s).toBeTruthy();
expect(s.toString().startsWith('korap=')).toBeTruthy();
s = sessionClass.create('kalamar');
expect(s).toBeTruthy();
expect(s.toString().startsWith('kalamar=')).toBeTruthy();
});
it('should settable and gettable', function () {
let s = sessionClass.create('koraptest');
s.set("test1", "works");
expect(s.get("test1")).toEqual("works");
s.set("test2", "\"wor}ks\"");
expect(s.get("test1")).toEqual("works");
expect(s.get("test2")).toEqual("\"wor}ks\"");
expect(s.toString().includes("test1")).toBeTruthy();
expect(s.toString().includes("test2")).toBeTruthy();
expect(s.toString().includes("works")).toBeTruthy();
expect(s.toString().includes("%5C%22wor%7Dks%5C%22")).toBeTruthy();
});
it('should write to cookie', function () {
let s = sessionClass.create('koraptest');
s.clear();
expect(s.toString().includes("koraptest=%7B%7D;")).toBeTruthy();
expect(document.cookie.includes("koraptest=")).toBeTruthy();
s.set("test3", "works");
expect(s.toString().includes("koraptest=%7B%7D;")).toBeFalsy();
expect(s.toString().includes("koraptest=%7B%22test3%22%3A%22works%22%7D")).toBeTruthy();
expect(document.cookie.includes("koraptest=%7B%22test3%22%3A%22works%22%7D")).toBeTruthy();
s.clear();
expect(document.cookie.includes("koraptest=")).toBeTruthy();
expect(s.toString()).toEqual("koraptest=%7B%7D;SameSite=Lax;path=/");
});
/*
* The cookie path should by default be '/'. The path should be settable.
*/
it('cookie path should have default and be settable', function(){
//cookie should be created with the default path=/
let c = sessionClass.create("cookwithoutp");
c.clear();
expect(c.toString().includes("path=/")).toBeTruthy();
//the path should be settable
let d = sessionClass.create("cookwithp", "/instance/blub");
d.clear();
expect(d.toString().includes("path=/instance/blub")).toBeTruthy();
});
})
});