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/. */
// Test column sorting works and sorts dates correctly (including "session"
// cookies).
"use strict";
add_task(async function () {
const TEST_URL = MAIN_DOMAIN + "storage-cookies-sort.html";
await openTabAndSetupStorage(TEST_URL);
showAllColumns(true);
info("Sort on the expires column, ascending order");
clickColumnHeader("expires");
// Note that here we only specify `test_session` for `test_session1` and
// `test_session2`. Since we sort on the "expires" column, there is no point
// in asserting the order between those 2 items.
checkCells([
"test_session",
"test_session",
"test_hour",
"test_day",
"test_year",
]);
info("Sort on the expires column, descending order");
clickColumnHeader("expires");
// Again, only assert `test_session` for `test_session1` and `test_session2`.
checkCells([
"test_year",
"test_day",
"test_hour",
"test_session",
"test_session",
]);
info("Sort on the name column, ascending order");
clickColumnHeader("name");
checkCells([
"test_day",
"test_hour",
"test_session1",
"test_session2",
"test_year",
]);
});
function checkCells(expected) {
const cells = [
...gPanelWindow.document.querySelectorAll("#name .table-widget-cell"),
];
cells.forEach(function (cell, i) {
// We use startsWith in order to avoid asserting the relative order of
// "session" cookies when sorting on the "expires" column.
ok(
cell.value.startsWith(expected[i]),
`Cell value starts with "${expected[i]}".`
);
});
}