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";
const DEFAULT_PAGE = "#/runtime/this-firefox";
/**
* Check if the disconnect button disconnects the remote runtime
* and redirects to the default page.
*/
add_task(async function () {
// Create a real local client and use it as the remote USB client for this
// test.
const clientWrapper = await createLocalClientWrapper();
// enable USB devices mocks
const mocks = new Mocks();
mocks.createUSBRuntime(USB_RUNTIME_ID, {
clientWrapper,
deviceName: USB_DEVICE_NAME,
name: USB_APP_NAME,
});
const { document, tab, window } = await openAboutDebugging();
await selectThisFirefoxPage(document, window.AboutDebugging.store);
mocks.emitUSBUpdate();
const onRequestSuccess = waitForRequestsSuccess(window.AboutDebugging.store);
await connectToRuntime(USB_DEVICE_NAME, document);
await selectRuntime(USB_DEVICE_NAME, USB_APP_NAME, document);
await onRequestSuccess;
const disconnectRemoteRuntimeButton = document.querySelector(
".qa-runtime-info__action"
);
info("Check whether disconnect remote runtime button exists");
ok(!!disconnectRemoteRuntimeButton, "Runtime contains the disconnect button");
info("Click on the disconnect button");
disconnectRemoteRuntimeButton.click();
info("Wait until the runtime is disconnected");
await waitUntil(() => document.querySelector(".qa-connect-button"));
is(
document.location.hash,
DEFAULT_PAGE,
"Redirection to the default page (this-firefox)"
);
info("Wait until the Runtime name is displayed");
await waitUntil(() => {
const runtimeInfo = document.querySelector(".qa-runtime-name");
return runtimeInfo && runtimeInfo.textContent.includes("Firefox");
});
await removeTab(tab);
});