/* 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]}".` ); }); }