Files
sousa-gecko/devtools/client/framework/test/browser_toolbox_telemetry_enter.js
T

127 lines
3.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const URL = "data:text/html;charset=utf8,browser_toolbox_telemetry_enter.js";
const DATA = [
{
category: "devtools.main",
name: "enter_inspector",
extra: {
host: "bottom",
width: "1300",
start_state: "initial_panel",
panel_name: "inspector",
cold: "true",
},
},
{
category: "devtools.main",
name: "enter_jsdebugger",
extra: {
host: "bottom",
width: "1300",
start_state: "toolbox_show",
panel_name: "jsdebugger",
cold: "true",
},
},
{
category: "devtools.main",
name: "enter_styleeditor",
extra: {
host: "bottom",
width: "1300",
start_state: "toolbox_show",
panel_name: "styleeditor",
cold: "true",
},
},
{
category: "devtools.main",
name: "enter_netmonitor",
extra: {
host: "bottom",
width: "1300",
start_state: "toolbox_show",
panel_name: "netmonitor",
cold: "true",
},
},
{
category: "devtools.main",
name: "enter_storage",
extra: {
host: "bottom",
width: "1300",
start_state: "toolbox_show",
panel_name: "storage",
cold: "true",
},
},
{
category: "devtools.main",
name: "enter_netmonitor",
extra: {
host: "bottom",
width: "1300",
start_state: "toolbox_show",
panel_name: "netmonitor",
cold: "false",
},
},
];
add_task(async function () {
// Let's reset the counts.
Services.fog.testResetFOG();
const tab = await addTab(URL);
// Set up some cached messages for the web console.
await SpecialPowers.spawn(tab.linkedBrowser, [], () => {
content.console.log("test 1");
content.console.log("test 2");
content.console.log("test 3");
content.console.log("test 4");
content.console.log("test 5");
});
// Open the toolbox
await gDevTools.showToolboxForTab(tab, { toolId: "inspector" });
// Switch between a few tools
await gDevTools.showToolboxForTab(tab, { toolId: "jsdebugger" });
await gDevTools.showToolboxForTab(tab, { toolId: "styleeditor" });
await gDevTools.showToolboxForTab(tab, { toolId: "netmonitor" });
await gDevTools.showToolboxForTab(tab, { toolId: "storage" });
await gDevTools.showToolboxForTab(tab, { toolId: "netmonitor" });
checkResults();
});
function checkResults() {
const events = [
Glean.devtoolsMain.enterInspector.testGetValue(),
Glean.devtoolsMain.enterJsdebugger.testGetValue(),
Glean.devtoolsMain.enterStyleeditor.testGetValue(),
Glean.devtoolsMain.enterStorage.testGetValue(),
Glean.devtoolsMain.enterNetmonitor.testGetValue(),
]
.flat()
.sort((a, b) => a.timestamp - b.timestamp);
for (const [datum, ev] of Iterator.zip([DATA, events], { mode: "strict" })) {
is(datum.category, ev.category, "category is correct");
is(datum.name, ev.name, "name is correct");
// extras
is(datum.extra.host, ev.extra.host, "host is correct");
Assert.greater(Number(ev.extra.width), 0, "width is greater than 0");
is(datum.extra.start_state, ev.extra.start_state, "start_state is correct");
is(datum.extra.panel_name, ev.extra.panel_name, "panel_name is correct");
is(datum.extra.cold, ev.extra.cold, "cold is correct");
}
}