Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests if "Learn More" links are correctly displayed
* next to headers.
*/
add_task(async function testHeadersLearnMoreLink() {
const { tab, monitor } = await initNetMonitor(POST_DATA_URL, {
requestCount: 1,
});
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
await performRequests(monitor, tab, 2);
// Open Headers panel for the customized request sent by html_post-data-test-page.html.
EventUtils.sendMouseEvent(
{ type: "mousedown" },
document.querySelectorAll(".request-list-item")[1]
);
await waitForDOMIfNeeded(document, "#responseHeaders, #requestHeaders", 2);
testShowLearnMore(document);
await teardown(monitor);
});
/*
* Tests that a "Learn More" button is only shown if
* and only if a header is documented in MDN.
*/
function testShowLearnMore(document) {
const {
getHeadersURL,
} = require("resource://devtools/client/netmonitor/src/utils/doc-utils.js");
const headerRows = document.querySelectorAll(
".properties-view .treeRow.stringRow"
);
Assert.greater(headerRows.length, 0);
for (const rowEl of headerRows) {
const headerName = rowEl.querySelectorAll(".treeLabelCell .treeLabel")[0]
.textContent;
const headerDocURL = getHeadersURL(headerName);
const learnMoreEl = rowEl.querySelectorAll(
".treeValueCell .learn-more-link"
);
Assert.equal(
learnMoreEl.length,
headerDocURL ? 1 : 0,
'Only a documented header should include a "Learn More" button'
);
}
}