Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Test that the toolbox displays initialization errors via the AppErrorBoundary.
*/
const TEST_URL = "data:text/html,test for toolbox server error";
add_task(async function () {
Services.fog.testResetFOG();
await pushPref("devtools.testing.force-server-error", true);
const tab = await addTab(TEST_URL);
const toolbox = await gDevTools.showToolboxForTab(tab, {
toolId: "webconsole",
});
// Wait for the panel to fall back to the error UI
const errorPanel = await waitFor(
() => toolbox.doc.querySelector(".app-error-panel"),
"Wait for the error panel to be displayed"
);
ok(errorPanel, "Error panel is displayed");
const events = Glean.devtoolsMain.toolboxServerError.testGetValue();
is(
events.length,
1,
"One devtoolsMain.toolboxServerError event was collected"
);
is(
events[0].extra.error_name,
"Error",
"toolboxServerError event has the expected error name"
);
is(
events[0].extra.packet_error,
"TypeError",
"toolboxServerError event has the expected packet error name"
);
info(events[0].extra.stack);
ok(
events[0].extra.stack.includes(
"resource://devtools/shared/commands/resource/resource-command.js"
),
"toolboxServerError event has the expected stack"
);
ok(
events[0].extra.server_stack.includes("/document-event.js"),
"toolboxServerError event has the expected server stack"
);
is(
events[0].extra.packet_type,
"watchResources",
"toolboxServerError packet type is correct"
);
await toolbox.destroy();
gBrowser.removeCurrentTab();
});