Skip to content

Commit

Permalink
#63 - Made Session cookies work
Browse files Browse the repository at this point in the history
  • Loading branch information
Manvel committed Nov 21, 2019
1 parent 28b685d commit eb55f0a
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 21 deletions.
30 changes: 18 additions & 12 deletions src/js/ui/tab_cookies.js
Original file line number Diff line number Diff line change
Expand Up @@ -282,15 +282,19 @@ const {closeDialog, openDialog} = require("./components/dialog");
const {name, value, domain, path, hostOnly, httpOnly, secure,
session, storeId,
expirationDate} = await browser.cookies.get({url, name: cookieName});
const dateTime = new Date(expirationDate);
// <input type="date"> supports -> yyyy-mm-dd
const date = dateTime.toISOString().split("T")[0];
// <input type="time"> supports -> hh:mm:ss
const twoDigits = (value) => value < 10 ? `0${value}` : value;
const hour = twoDigits(dateTime.getHours());
const minute = twoDigits(dateTime.getMinutes());
const second = twoDigits(dateTime.getSeconds());
const time = `${hour}:${minute}:${second}`;
let date, time = "";
if (expirationDate)
{
const dateTime = new Date(expirationDate);
// <input type="date"> supports -> yyyy-mm-dd
date = dateTime.toISOString().split("T")[0];
// <input type="time"> supports -> hh:mm:ss
const twoDigits = (value) => value < 10 ? `0${value}` : value;
const hour = twoDigits(dateTime.getHours());
const minute = twoDigits(dateTime.getMinutes());
const second = twoDigits(dateTime.getSeconds());
time = `${hour}:${minute}:${second}`;
}

const title = await getMessage("editCookie");
const actionBtn = await getMessage("cookieDialog_update");
Expand Down Expand Up @@ -350,7 +354,6 @@ const {closeDialog, openDialog} = require("./components/dialog");
// Omitted expirationDate makes session cookie
delete cookie.expirationDate;
}

if (await browser.cookies.set(cookie))
{
cookieDialog.closeDialog();
Expand Down Expand Up @@ -475,8 +478,11 @@ const {closeDialog, openDialog} = require("./components/dialog");
for (const cookie of oldCookies)
{
const item = pmTable.getItem(cookie, domain);
item.dataset.whitelist = false;
pmTable.updateItem(item, cookie, domain);
if (item)
{
item.dataset.whitelist = false;
pmTable.updateItem(item, cookie, domain);
}
}
}
}
Expand Down
26 changes: 17 additions & 9 deletions test/puppeteer/cookie.js
Original file line number Diff line number Diff line change
Expand Up @@ -250,28 +250,36 @@ describe("Testing Cookies tab", () =>

await setCookieDialog("domain", "domain6.com");
await setCookieDialog("value", "value2");
await setCookieDialog("path", "/about2");
await setCookieDialog("path", "/about1");
await setCookieDialog("expirationDate", "2052-02-02");
await setCookieDialog("expirationTime", "02:02:02");
await setCookieDialog("hostOnly", false);
await setCookieDialog("httpOnly", false);
await setCookieDialog("secure", false);

const handle = await page.evaluateHandle(() => document.querySelector("pm-dialog.cookies pm-button[data-action='update-cookie-comp']"));
await page.waitFor(30);
await page.waitFor(10);
await handle.click();
await page.waitFor(10);
await (await getItemElemHandle("domain6.com")).click();
await page.waitFor(10);
await (await editButtonHandle("name1", "domain6.com")).click();
await page.waitFor(10);

equal(await getCookieDialogField("domain"), "domain6.com");
equal(await getCookieDialogField("name"), "name1");
equal(await getCookieDialogField("value"), "value2");
equal(await getCookieDialogField("path"), "/about2");
equal(await getCookieDialogField("path"), "/about1");
equal(await getCookieDialogField("expirationDate"), "2052-02-02");
equal(await getCookieDialogField("expirationTime"), "02:02:02");
equal(await getCookieDialogField("hostOnly"), false);
equal(await getCookieDialogField("httpOnly"), false);
equal(await getCookieDialogField("secure"), false);
await setCookieDialog("session", true);
await handle.click();

await page.waitFor(10);
await (await getItemElemHandle("domain6.com")).click();
await page.waitFor(10);
await (await editButtonHandle("name1", "domain6.com")).click();
await page.waitFor(10);
equal(await getCookieDialogField("session"), true);
equal(await getCookieDialogField("expirationDate"), "");
equal(await getCookieDialogField("expirationTime"), "");
});

after(async() =>
Expand Down

0 comments on commit eb55f0a

Please sign in to comment.