Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Basic test to check the adding of cookies.
"use strict";
add_task(async function () {
const TEST_URL = MAIN_DOMAIN + "storage-cookies.html";
await openTabAndSetupStorage(TEST_URL);
showAllColumns(true);
const rowId = await performAdd(["cookies", "http://test1.example.org"]);
checkCookieData(rowId);
await performAdd(["cookies", "http://test1.example.org"]);
await performAdd(["cookies", "http://test1.example.org"]);
await performAdd(["cookies", "http://test1.example.org"]);
await performAdd(["cookies", "http://test1.example.org"]);
info("Check it does work in private tabs too");
const privateWindow = await BrowserTestUtils.openNewBrowserWindow({
private: true,
});
ok(PrivateBrowsingUtils.isWindowPrivate(privateWindow), "window is private");
const privateTab = await addTab(TEST_URL, { window: privateWindow });
await openStoragePanel({ tab: privateTab });
const privateTabRowId = await performAdd([
"cookies",
]);
checkCookieData(privateTabRowId);
await performAdd(["cookies", "http://test1.example.org"]);
privateWindow.close();
});
function checkCookieData(rowId) {
is(getCellValue(rowId, "value"), "value", "value is correct");
is(getCellValue(rowId, "host"), "test1.example.org", "host is correct");
is(getCellValue(rowId, "path"), "/", "path is correct");
const actualExpiry = Math.floor(
new Date(getCellValue(rowId, "expires")) / 1000
);
const ONE_DAY_IN_SECONDS = 60 * 60 * 24;
const time = Math.floor(new Date(getCellValue(rowId, "creationTime")) / 1000);
const expectedExpiry = time + ONE_DAY_IN_SECONDS;
Assert.lessOrEqual(
actualExpiry - expectedExpiry,
2,
"expiry is in expected range"
);
is(getCellValue(rowId, "size"), "43", "size is correct");
is(getCellValue(rowId, "isHttpOnly"), "false", "httpOnly is not set");
is(getCellValue(rowId, "isSecure"), "false", "secure is not set");
is(getCellValue(rowId, "sameSite"), "Lax", "sameSite is Lax");
is(getCellValue(rowId, "hostOnly"), "true", "hostOnly is not set");
}