summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/helper-adb.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/helper-adb.js')
-rw-r--r--devtools/client/aboutdebugging/test/browser/helper-adb.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/helper-adb.js b/devtools/client/aboutdebugging/test/browser/helper-adb.js
new file mode 100644
index 0000000000..f5e6adfc6b
--- /dev/null
+++ b/devtools/client/aboutdebugging/test/browser/helper-adb.js
@@ -0,0 +1,59 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* import-globals-from head.js */
+
+async function checkAdbNotRunning() {
+ info("Check if ADB is already running before the test starts");
+ const {
+ check,
+ } = require("resource://devtools/client/shared/remote-debugging/adb/adb-running-checker.js");
+ const isAdbAlreadyRunning = await check();
+ if (isAdbAlreadyRunning) {
+ throw new Error(
+ "The ADB process is already running on this machine, it should be " +
+ "stopped before running this test"
+ );
+ }
+}
+/* exported checkAdbNotRunning */
+
+// Returns a promise that resolves when the adb process exists and is running.
+async function waitForAdbStart() {
+ info("Wait for ADB to start");
+ const {
+ adbProcess,
+ } = require("resource://devtools/client/shared/remote-debugging/adb/adb-process.js");
+ const {
+ check,
+ } = require("resource://devtools/client/shared/remote-debugging/adb/adb-running-checker.js");
+ return asyncWaitUntil(async () => {
+ const isProcessReady = adbProcess.ready;
+ const isRunning = await check();
+ return isProcessReady && isRunning;
+ });
+}
+/* exported waitForAdbStart */
+
+// Attempt to stop ADB. Will only work if ADB was started by the current Firefox instance.
+// Returns a promise that resolves when the adb process is no longer running.
+async function stopAdbProcess() {
+ info("Attempt to stop ADB");
+ const {
+ adbProcess,
+ } = require("resource://devtools/client/shared/remote-debugging/adb/adb-process.js");
+ await adbProcess.stop();
+
+ info("Wait for ADB to stop");
+ const {
+ check,
+ } = require("resource://devtools/client/shared/remote-debugging/adb/adb-running-checker.js");
+ return asyncWaitUntil(async () => {
+ const isProcessReady = adbProcess.ready;
+ const isRunning = await check();
+ return !isProcessReady && !isRunning;
+ });
+}
+/* exported stopAdbProcess */