summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/webdriver/harness/preferences_remote_agent.py
blob: 59db5fa0e321a9d47e3476acec975568a7e1fa4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import pytest
from support.helpers import read_user_preferences
from tests.support.sync import Poll


@pytest.mark.parametrize(
    "value",
    [
        {"pref_value": 1, "use_cdp": False, "use_bidi": True},
        {"pref_value": 2, "use_cdp": True, "use_bidi": False},
        {"pref_value": 3, "use_cdp": True, "use_bidi": True},
    ],
    ids=["bidi only", "cdp only", "bidi and cdp"],
)
def test_remote_agent_recommended_preferences_applied(browser, value):
    # Marionette cannot be enabled for this test because it will also set the
    # recommended preferences. Therefore only enable Remote Agent protocols.
    current_browser = browser(
        extra_prefs={
            "remote.active-protocols": value["pref_value"],
        },
        use_cdp=value["use_cdp"],
        use_bidi=value["use_bidi"],
    )

    def pref_is_set(_):
        preferences = read_user_preferences(current_browser.profile.profile, "prefs.js")
        return preferences.get("remote.prefs.recommended.applied", False)

    # Without Marionette enabled preferences cannot be retrieved via script evaluation yet.
    wait = Poll(
        None,
        timeout=5,
        ignored_exceptions=FileNotFoundError,
        message="""Preference "remote.prefs.recommended.applied" is not true""",
    )
    wait.until(pref_is_set)