Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
const USB_RUNTIME_ID = "1337id";
const USB_DEVICE_NAME = "Fancy Phone";
const USB_APP_NAME = "Lorem ipsum";
/**
* Check whether can toggle enable/disable connection prompt setting.
*/
add_task(async function () {
// enable USB devices mocks
const mocks = new Mocks();
const runtime = mocks.createUSBRuntime(USB_RUNTIME_ID, {
deviceName: USB_DEVICE_NAME,
name: USB_APP_NAME,
});
info("Set initial state for test");
await pushPref("devtools.debugger.prompt-connection", true);
// open a remote runtime page
const { document, tab, window } = await openAboutDebugging();
await selectThisFirefoxPage(document, window.AboutDebugging.store);
mocks.emitUSBUpdate();
await connectToRuntime(USB_DEVICE_NAME, document);
await selectRuntime(USB_DEVICE_NAME, USB_APP_NAME, document);
info("Check whether connection prompt toggle button exists");
let connectionPromptToggleButton = document.querySelector(
".qa-connection-prompt-toggle-button"
);
ok(connectionPromptToggleButton, "Toggle button existed");
ok(
connectionPromptToggleButton.textContent.includes("Disable"),
"Toggle button shows 'Disable'"
);
info("Click on the toggle button");
connectionPromptToggleButton = document.querySelector(
".qa-connection-prompt-toggle-button"
);
connectionPromptToggleButton.click();
info("Wait until the toggle button text is updated");
await waitUntil(() =>
connectionPromptToggleButton.textContent.includes("Enable")
);
info("Check the preference");
const disabledPref = runtime.getPreference(
"devtools.debugger.prompt-connection"
);
is(disabledPref, false, "The preference should be updated");
info("Click on the toggle button again");
connectionPromptToggleButton.click();
info("Wait until the toggle button text is updated");
await waitUntil(() =>
connectionPromptToggleButton.textContent.includes("Disable")
);
info("Check the preference");
const enabledPref = runtime.getPreference(
"devtools.debugger.prompt-connection"
);
is(enabledPref, true, "The preference should be updated");
await removeTab(tab);
});