tests: Validate some places with declarative stringly-typed settings
This commit is contained in:
parent
c327e33d31
commit
ae910113a7
|
|
@ -283,52 +283,53 @@ def _qtwebengine_args(
|
|||
yield from _qtwebengine_settings_args(versions)
|
||||
|
||||
|
||||
def _qtwebengine_settings_args(versions: version.WebEngineVersions) -> Iterator[str]:
|
||||
settings: Dict[str, Dict[Any, Optional[str]]] = {
|
||||
'qt.force_software_rendering': {
|
||||
'software-opengl': None,
|
||||
'qt-quick': None,
|
||||
'chromium': '--disable-gpu',
|
||||
'none': None,
|
||||
},
|
||||
'content.canvas_reading': {
|
||||
True: None,
|
||||
False: '--disable-reading-from-canvas',
|
||||
},
|
||||
'content.webrtc_ip_handling_policy': {
|
||||
'all-interfaces': None,
|
||||
'default-public-and-private-interfaces':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'default_public_and_private_interfaces',
|
||||
'default-public-interface-only':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'default_public_interface_only',
|
||||
'disable-non-proxied-udp':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'disable_non_proxied_udp',
|
||||
},
|
||||
'qt.chromium.process_model': {
|
||||
'process-per-site-instance': None,
|
||||
'process-per-site': '--process-per-site',
|
||||
'single-process': '--single-process',
|
||||
},
|
||||
'qt.chromium.low_end_device_mode': {
|
||||
'auto': None,
|
||||
'always': '--enable-low-end-device-mode',
|
||||
'never': '--disable-low-end-device-mode',
|
||||
},
|
||||
'content.prefers_reduced_motion': {
|
||||
True: '--force-prefers-reduced-motion',
|
||||
False: None,
|
||||
},
|
||||
'qt.chromium.sandboxing': {
|
||||
'enable-all': None,
|
||||
'disable-seccomp-bpf': '--disable-seccomp-filter-sandbox',
|
||||
'disable-all': '--no-sandbox',
|
||||
}
|
||||
_WEBENGINE_SETTINGS: Dict[str, Dict[Any, Optional[str]]] = {
|
||||
'qt.force_software_rendering': {
|
||||
'software-opengl': None,
|
||||
'qt-quick': None,
|
||||
'chromium': '--disable-gpu',
|
||||
'none': None,
|
||||
},
|
||||
'content.canvas_reading': {
|
||||
True: None,
|
||||
False: '--disable-reading-from-canvas',
|
||||
},
|
||||
'content.webrtc_ip_handling_policy': {
|
||||
'all-interfaces': None,
|
||||
'default-public-and-private-interfaces':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'default_public_and_private_interfaces',
|
||||
'default-public-interface-only':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'default_public_interface_only',
|
||||
'disable-non-proxied-udp':
|
||||
'--force-webrtc-ip-handling-policy='
|
||||
'disable_non_proxied_udp',
|
||||
},
|
||||
'qt.chromium.process_model': {
|
||||
'process-per-site-instance': None,
|
||||
'process-per-site': '--process-per-site',
|
||||
'single-process': '--single-process',
|
||||
},
|
||||
'qt.chromium.low_end_device_mode': {
|
||||
'auto': None,
|
||||
'always': '--enable-low-end-device-mode',
|
||||
'never': '--disable-low-end-device-mode',
|
||||
},
|
||||
'content.prefers_reduced_motion': {
|
||||
True: '--force-prefers-reduced-motion',
|
||||
False: None,
|
||||
},
|
||||
'qt.chromium.sandboxing': {
|
||||
'enable-all': None,
|
||||
'disable-seccomp-bpf': '--disable-seccomp-filter-sandbox',
|
||||
'disable-all': '--no-sandbox',
|
||||
}
|
||||
}
|
||||
|
||||
for setting, args in sorted(settings.items()):
|
||||
|
||||
def _qtwebengine_settings_args(versions: version.WebEngineVersions) -> Iterator[str]:
|
||||
for setting, args in sorted(_WEBENGINE_SETTINGS.items()):
|
||||
arg = args[config.instance.get(setting)]
|
||||
if arg is not None:
|
||||
yield arg
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ QWebEngineSettings = QtWebEngineCore.QWebEngineSettings
|
|||
|
||||
from qutebrowser.browser.webengine import webenginesettings
|
||||
from qutebrowser.utils import usertypes
|
||||
from qutebrowser.config import configdata
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
@ -164,3 +165,8 @@ def test_parsed_user_agent(qapp):
|
|||
parsed = webenginesettings.parsed_user_agent
|
||||
assert parsed.upstream_browser_key == 'Chrome'
|
||||
assert parsed.qt_key == 'QtWebEngine'
|
||||
|
||||
|
||||
def test_profile_setter_settings(private_profile, configdata_init):
|
||||
for setting in private_profile.setter._name_to_method:
|
||||
assert setting in configdata.DATA.keys()
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import logging
|
|||
import pytest
|
||||
|
||||
from qutebrowser import qutebrowser
|
||||
from qutebrowser.config import qtargs
|
||||
from qutebrowser.config import qtargs, configdata
|
||||
from qutebrowser.utils import usertypes, version
|
||||
from helpers import testutils
|
||||
|
||||
|
|
@ -129,6 +129,12 @@ class TestWebEngineArgs:
|
|||
pytest.importorskip("qutebrowser.qt.webenginecore")
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
|
||||
@pytest.mark.parametrize("setting, values", qtargs._WEBENGINE_SETTINGS.items())
|
||||
def test_settings_exist(self, setting, values, configdata_init):
|
||||
option = configdata.DATA[setting]
|
||||
for value in values:
|
||||
option.typ.to_py(value) # for validation
|
||||
|
||||
@pytest.mark.parametrize('backend, qt_version, debug_flag, expected', [
|
||||
# QtWebEngine: Enable with -D stack, do nothing without it.
|
||||
(usertypes.Backend.QtWebEngine, '5.15.2', True, True),
|
||||
|
|
|
|||
Loading…
Reference in New Issue