// It seems that this test may be slow on debug builds. This could be because // of the heavy dom manipulation associated with sorting.
requestLongerTimeout(2);
// Loading the frame script and preparing the xhr request URLs so we can // generate some requests later. const requests = [
{
url: "sjs_sorting-test-server.sjs?index=1&" + Math.random(),
method: "GET1",
},
{
url: "sjs_sorting-test-server.sjs?index=5&" + Math.random(),
method: "GET5",
},
{
url: "sjs_sorting-test-server.sjs?index=2&" + Math.random(),
method: "GET2",
},
{
url: "sjs_sorting-test-server.sjs?index=4&" + Math.random(),
method: "GET4",
},
{
url: "sjs_sorting-test-server.sjs?index=3&" + Math.random(),
method: "GET3",
},
];
let wait = waitForNetworkEvents(monitor, 5);
await performRequestsInContent(requests);
await wait;
store.dispatch(Actions.toggleNetworkDetails());
isnot(
getSelectedRequest(store.getState()),
undefined, "There should be a selected item in the requests menu."
);
is(
getSelectedIndex(store.getState()), 0, "The first item should be selected in the requests menu."
);
is(
!!document.querySelector(".network-details-bar"), true, "The network details panel should be visible after toggle button was pressed."
);
for (const header of headers) { if (header != target) {
ok(
!header.hasAttribute("data-sorted"), "The " +
header.id + " header does not have a 'data-sorted' attribute."
);
ok(
!header
.getAttribute("title")
.includes(L10N.getStr("networkMenu.sortedAsc")) &&
!header
.getAttribute("title")
.includes(L10N.getStr("networkMenu.sortedDesc")), "The " +
header.id + " header does not include any sorting in the 'title' attribute."
);
} else {
is(
header.getAttribute("data-sorted"),
direction, "The " + header.id + " header has a correct 'data-sorted' attribute."
); const sorted =
direction == "ascending"
? L10N.getStr("networkMenu.sortedAsc")
: L10N.getStr("networkMenu.sortedDesc");
ok(
header.getAttribute("title").includes(sorted), "The " +
header.id + " header includes the used sorting in the 'title' attribute."
);
}
}
}
function getSelectedIndex(state) { if (!state.requests.selectedId) { return -1;
} return getSortedRequests(state).findIndex(
r => r.id === state.requests.selectedId
);
}
async function testContents(order, selection) {
isnot(
getSelectedRequest(store.getState()),
undefined, "There should still be a selected item after sorting."
);
is(
getSelectedIndex(store.getState()),
selection, "The first item should be still selected after sorting."
);
is(
!!document.querySelector(".network-details-bar"), true, "The network details panel should still be visible after sorting."
);
is(
getSortedRequests(store.getState()).length,
order.length, "There should be a specific number of items in the requests menu."
);
is(
getDisplayedRequests(store.getState()).length,
order.length, "There should be a specific number of visbile items in the requests menu."
);
is(
document.querySelectorAll(".request-list-item").length,
order.length, "The visible items in the requests menu are, in fact, visible!"
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.