diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/mozilla/tests/webdriver/cdp | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/mozilla/tests/webdriver/cdp')
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 |