summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js')
-rw-r--r--devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js
new file mode 100644
index 0000000000..e0d7303669
--- /dev/null
+++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_connect_toggle_usb_devices.js
@@ -0,0 +1,81 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* import-globals-from helper-adb.js */
+Services.scriptloader.loadSubScript(CHROME_URL_ROOT + "helper-adb.js", this);
+
+/**
+ * Check that USB Devices scanning can be enabled and disabled from the connect page.
+ */
+add_task(async function () {
+ await pushPref(
+ "devtools.remote.adb.extensionURL",
+ CHROME_URL_ROOT + "resources/test-adb-extension/adb-extension-#OS#.xpi"
+ );
+ await checkAdbNotRunning();
+
+ const { document, tab } = await openAboutDebugging();
+
+ await selectConnectPage(document);
+
+ info("Wait until Connect page is displayed");
+ await waitUntil(() => document.querySelector(".qa-connect-page"));
+
+ info("Check that by default USB devices are disabled");
+ const usbDisabledMessage = document.querySelector(
+ ".qa-connect-usb-disabled-message"
+ );
+ ok(usbDisabledMessage, "A message about enabling USB devices is rendered");
+
+ const usbToggleButton = document.querySelector(
+ ".qa-connect-usb-toggle-button"
+ );
+ ok(usbToggleButton, "The button to toggle USB devices debugging is rendered");
+ ok(
+ usbToggleButton.textContent.includes("Enable"),
+ "The text of the toggle USB button is correct"
+ );
+
+ info("Click on the toggle button");
+ usbToggleButton.click();
+
+ info("Wait until the toggle button text is updated");
+ await waitUntil(() => usbToggleButton.textContent.includes("Disable"));
+ ok(
+ !document.querySelector(".qa-connect-usb-disabled-message"),
+ "The message about enabling USB devices is no longer rendered"
+ );
+
+ info("Check that the addon was installed with the proper source");
+ const adbExtensionId = Services.prefs.getCharPref(
+ "devtools.remote.adb.extensionID"
+ );
+ const addon = await AddonManager.getAddonByID(adbExtensionId);
+ Assert.deepEqual(
+ addon.installTelemetryInfo,
+ { source: "about:debugging" },
+ "Got the expected addon.installTelemetryInfo"
+ );
+
+ // Right now we are resuming as soon as "USB enabled" is displayed, but ADB
+ // might still be starting up. If we move to uninstall directly, the ADB startup will
+ // fail and we will have an unhandled promise rejection.
+ // See Bug 1498469.
+ await waitForAdbStart();
+
+ info("Click on the toggle button");
+ usbToggleButton.click();
+
+ info("Wait until the toggle button text is updated");
+ await waitUntil(() => usbToggleButton.textContent.includes("Enable"));
+ ok(
+ document.querySelector(".qa-connect-usb-disabled-message"),
+ "The message about enabling USB devices is rendered again"
+ );
+
+ await stopAdbProcess();
+
+ await removeTab(tab);
+});