Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
// Tests filters.
"use strict";
const TEST_URI =
"test/browser/test-console-filters.html";
add_task(async function () {
await pushPref("dom.security.https_first", false);
const hud = await openNewTabAndConsole(TEST_URI);
const filterState = await getFilterState(hud);
// Triggers network requests
SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => {
const url = "./sjs_slow-response-test-server.sjs";
// Set a smaller delay for the 300 to ensure we get it before the "error" responses.
content.fetch(`${url}?status=300&delay=100`);
content.fetch(`${url}?status=404&delay=500`);
content.fetch(`${url}?status=500&delay=500`);
});
// Wait for the messages
await waitFor(() => findErrorMessage(hud, "status=404", ".network"));
await waitFor(() => findErrorMessage(hud, "status=500", ".network"));
// Check defaults.
for (const category of ["error", "warn", "log", "info", "debug"]) {
const state = filterState[category];
ok(state, `Filter button for ${category} is on by default`);
}
for (const category of ["css", "net", "netxhr"]) {
const state = filterState[category];
ok(!state, `Filter button for ${category} is off by default`);
}
// Check that messages are shown as expected. This depends on cached messages being
// shown.
is(
findAllMessages(hud).length,
7,
"Messages of all levels shown when filters are on."
);
// Check that messages are not shown when their filter is turned off.
await setFilterState(hud, {
error: false,
});
await waitFor(() => findAllMessages(hud).length == 4);
ok(true, "When a filter is turned off, its messages are not shown.");
// Check that the ui settings were persisted.
await closeTabAndToolbox();
await testFilterPersistence();
});
function filterIsEnabled(button) {
return button.classList.contains("checked");
}
async function testFilterPersistence() {
const hud = await openNewTabAndConsole(TEST_URI);
const outputNode = hud.ui.outputNode;
const filterBar = await waitFor(() => {
return outputNode.querySelector(".webconsole-filterbar-secondary");
});
ok(filterBar, "Filter bar ui setting is persisted.");
// Check that the filter settings were persisted.
ok(
!filterIsEnabled(filterBar.querySelector("[data-category='error']")),
"Filter button setting is persisted"
);
is(
findAllMessages(hud).length,
4,
"testFilterPersistence: Messages of all levels but error shown."
);
await resetFilters(hud);
}