Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test for the following data of engagement telemetry.
// - modifiers
add_setup(async function () {
await setup();
});
add_task(async function modifiers_none() {
await doTest(async () => {
await openPopup("x");
await doClick();
await assertEngagementTelemetry([
{ engagement_type: "click", modifiers: "" },
]);
});
await doTest(async () => {
await openPopup("x");
await doEnter();
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "" },
]);
});
});
add_task(async function modifiers_accel_click() {
await doTest(async () => {
await openPopup("x");
await doClickInNewTab({ accelKey: true });
await assertEngagementTelemetry([
{ engagement_type: "click", modifiers: "accel" },
]);
});
});
add_task(async function modifiers_accel_shift_click() {
await doTest(async () => {
await openPopup("x");
await doClickInNewTab({ accelKey: true, shiftKey: true });
await assertEngagementTelemetry([
{ engagement_type: "click", modifiers: "accel,shift" },
]);
});
});
add_task(async function modifiers_alt_enter() {
await doTest(async () => {
await openPopup("x");
await doEnter({ altKey: true });
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "alt" },
]);
});
});
add_task(async function modifiers_altgraph_enter() {
await doTest(async () => {
await openPopup("x");
await doEnter({ altGraphKey: true });
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "altgraph" },
]);
});
});
add_task(async function modifiers_alt_shift_enter() {
await doTest(async () => {
await openPopup("x");
await doEnterInNewTab({ altKey: true, shiftKey: true });
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "alt,shift" },
]);
});
});
add_task(async function modifiers_accel_enter() {
await doTest(async () => {
await openPopup("example");
await doEnter({ accelKey: true });
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "accel" },
]);
});
await doTest(async () => {
await openPopup("example");
await doEnter({ accelKey: true, shiftKey: true });
await assertEngagementTelemetry([
{ engagement_type: "enter", modifiers: "accel,shift" },
]);
});
});
add_task(async function modifiers_no_event() {
await doTest(async () => {
await doPasteAndGo("www.example.com");
await assertEngagementTelemetry([
{ engagement_type: "paste_go", modifiers: "" },
]);
});
await doTest(async () => {
await doDropAndGo("example.com");
await assertEngagementTelemetry([
{ engagement_type: "drop_go", modifiers: "" },
]);
});
});
add_task(async function modifiers_go_button() {
await doTest(async () => {
await openPopup("x");
const onNewTab = BrowserTestUtils.waitForNewTab(gBrowser, null, true);
EventUtils.synthesizeMouseAtCenter(gURLBar.goButton, { accelKey: true });
const tab = await onNewTab;
BrowserTestUtils.removeTab(tab);
await assertEngagementTelemetry([
{ engagement_type: "go_button", modifiers: "accel" },
]);
});
});
async function doClickInNewTab(modifiers) {
const selected = UrlbarTestUtils.getSelectedRow(window);
const onNewTab = BrowserTestUtils.waitForNewTab(gBrowser, null, true);
EventUtils.synthesizeMouseAtCenter(selected, modifiers);
const tab = await onNewTab;
BrowserTestUtils.removeTab(tab);
}
async function doEnterInNewTab(modifiers) {
const onNewTab = BrowserTestUtils.waitForNewTab(gBrowser, null, true);
EventUtils.synthesizeKey("KEY_Enter", modifiers);
const tab = await onNewTab;
BrowserTestUtils.removeTab(tab);
}