summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/webdriver/cdp
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/mozilla/tests/webdriver/cdp')
-rw-r--r--testing/web-platform/mozilla/tests/webdriver/cdp/__init__.py0
-rw-r--r--testing/web-platform/mozilla/tests/webdriver/cdp/debugger_address.py45
-rw-r--r--testing/web-platform/mozilla/tests/webdriver/cdp/port_file.py30
3 files changed, 75 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/webdriver/cdp/__init__.py b/testing/web-platform/mozilla/tests/webdriver/cdp/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/webdriver/cdp/__init__.py
diff --git a/testing/web-platform/mozilla/tests/webdriver/cdp/debugger_address.py b/testing/web-platform/mozilla/tests/webdriver/cdp/debugger_address.py
new file mode 100644
index 0000000000..ef9a301d24
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/webdriver/cdp/debugger_address.py
@@ -0,0 +1,45 @@
+# META: timeout=long
+
+import json
+
+import pytest
+from support.context import using_context
+from tests.support.http_request import HTTPRequest
+
+
+def test_debugger_address_not_set(session):
+ debugger_address = session.capabilities.get("moz:debuggerAddress")
+ assert debugger_address is None
+
+
+@pytest.mark.capabilities({"moz:debuggerAddress": False})
+def test_debugger_address_false(session):
+ debugger_address = session.capabilities.get("moz:debuggerAddress")
+ assert debugger_address is None
+
+
+@pytest.mark.capabilities({"moz:debuggerAddress": True})
+@pytest.mark.parametrize("fission_enabled", [True, False], ids=["enabled", "disabled"])
+def test_debugger_address_true_with_fission(session, fission_enabled):
+ debugger_address = session.capabilities.get("moz:debuggerAddress")
+ assert debugger_address is not None
+
+ host, port = debugger_address.split(":")
+ assert host == "127.0.0.1"
+ assert port.isnumeric()
+
+ # Fetch the browser version via the debugger address, `localhost` has
+ # to work as well.
+ for target_host in [host, "localhost"]:
+ print(f"Connecting to WebSocket via host {target_host}")
+ http = HTTPRequest(target_host, int(port))
+ with http.get("/json/version") as response:
+ data = json.loads(response.read())
+ assert session.capabilities["browserVersion"] in data["Browser"]
+
+ # Ensure Fission is not disabled (bug 1813981)
+ with using_context(session, "chrome"):
+ assert (
+ session.execute_script("""return Services.appinfo.fissionAutostart""")
+ is fission_enabled
+ )
diff --git a/testing/web-platform/mozilla/tests/webdriver/cdp/port_file.py b/testing/web-platform/mozilla/tests/webdriver/cdp/port_file.py
new file mode 100644
index 0000000000..aa294deb24
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/webdriver/cdp/port_file.py
@@ -0,0 +1,30 @@
+import os
+
+from support.network import websocket_request
+
+
+def test_devtools_active_port_file(browser):
+ current_browser = browser(use_cdp=True)
+
+ assert current_browser.remote_agent_port != 0
+ assert current_browser.debugger_address.startswith("/devtools/browser/")
+
+ port_file = os.path.join(current_browser.profile.profile, "DevToolsActivePort")
+ assert os.path.exists(port_file)
+
+ current_browser.quit(clean_profile=False)
+ assert not os.path.exists(port_file)
+
+
+def test_connect(browser):
+ current_browser = browser(use_cdp=True)
+
+ # Both `localhost` and `127.0.0.1` have to accept connections.
+ for target_host in ["127.0.0.1", "localhost"]:
+ print(f"Connecting to the WebSocket via host {target_host}")
+ response = websocket_request(
+ target_host,
+ current_browser.remote_agent_port,
+ path=current_browser.debugger_address,
+ )
+ assert response.status == 101