Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'linux' && os_version == '24.04' && arch == 'x86_64' && display == 'x11' && debug && http3
- Manifest: devtools/client/netmonitor/test/browser.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Test that POST requests made by the Reporting API are displayed in the netmonitor
*/
add_task(async function () {
info("Test Reporting API reports");
await pushPref("dom.reporting.enabled", true);
await pushPref("dom.reporting.header.enabled", true);
const { monitor, tab } = await initNetMonitor(
HTTPS_EXAMPLE_URL + "html_reporting_api-test-page.html",
{ requestCount: 1 }
);
info("Starting test... ");
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
const onReportingAPIRequest = waitForNetworkEvents(monitor, 1);
await SpecialPowers.spawn(tab.linkedBrowser, [], () => {
// Trigger a Reporting API request by accessing a deprecated property
content.wrappedJSObject.fullScreen;
});
await onReportingAPIRequest;
const firstItem = document.querySelectorAll(".request-list-item")[0];
is(
firstItem.querySelector(".requests-list-url").innerText,
HTTPS_EXAMPLE_URL + "sjs_simple-test-server.sjs",
"The url in the displayed request is correct"
);
info("Check that we do get the report request data");
// Wait for properties view to be displayed
const onRequestData = waitForDOM(document, "#request-panel .properties-view");
store.dispatch(Actions.toggleNetworkDetails());
clickOnSidebarTab(document, "request");
await onRequestData;
const tabpanel = document.querySelector("#request-panel");
const labels = tabpanel.querySelectorAll("tr .treeLabelCell .treeLabel");
const values = tabpanel.querySelectorAll("tr .treeValueCell .objectBox");
is(labels[4].textContent, "id", `got expected "id" row`);
is(
values[4].textContent,
`"FullscreenAttribute"`,
"got expected report id value"
);
is(labels[8].textContent, "type", `got expected "type" row`);
is(values[8].textContent, `"deprecation"`, "got expected report type value");
await teardown(monitor);
});