summaryrefslogtreecommitdiff
path: root/tests/end2end/test_invocations.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/end2end/test_invocations.py')
-rw-r--r--tests/end2end/test_invocations.py49
1 files changed, 38 insertions, 11 deletions
diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py
index f3d74d1f0..82473e50d 100644
--- a/tests/end2end/test_invocations.py
+++ b/tests/end2end/test_invocations.py
@@ -501,19 +501,21 @@ def test_preferred_colorscheme_with_dark_mode(
quteproc_new.open_path('data/darkmode/prefers-color-scheme.html')
content = quteproc_new.get_content()
- if webengine_versions.webengine == utils.VersionNumber(5, 15, 3):
+ qtwe_version = webengine_versions.webengine
+ xfail = None
+ if utils.VersionNumber(5, 15, 3) <= qtwe_version <= utils.VersionNumber(6):
# https://bugs.chromium.org/p/chromium/issues/detail?id=1177973
# No workaround known.
expected_text = 'Light preference detected.'
# light website color, inverted by darkmode
expected_color = testutils.Color(127, 127, 127)
- xfail = True
- elif webengine_versions.webengine == utils.VersionNumber(5, 15, 2):
+ xfail = "Chromium bug 1177973"
+ elif qtwe_version == utils.VersionNumber(5, 15, 2):
# Our workaround breaks when dark mode is enabled...
# Also, for some reason, dark mode doesn't work on that page either!
expected_text = 'No preference detected.'
expected_color = testutils.Color(0, 170, 0) # green
- xfail = True
+ xfail = "QTBUG-89753"
else:
# Qt 5.14 and 5.15.0/.1 work correctly.
# Hopefully, so does Qt 6.x in the future?
@@ -529,7 +531,7 @@ def test_preferred_colorscheme_with_dark_mode(
assert color == expected_color
if xfail:
# We still do some checks, but we want to mark the test outcome as xfail.
- pytest.xfail("QTBUG-89753")
+ pytest.xfail(xfail)
@pytest.mark.qtwebkit_skip
@@ -657,19 +659,44 @@ def test_dark_mode(webengine_versions, quteproc_new, request,
quteproc_new.start(args)
ver = webengine_versions.webengine
- minor_version = f'{ver.majorVersion()}.{ver.minorVersion()}'
+ minor_version = str(ver.strip_patch())
expected = colors.get(minor_version, colors[None])
quteproc_new.open_path(f'data/darkmode/{filename}.html')
# Position chosen by fair dice roll.
# https://xkcd.com/221/
- pos = QPoint(4, 4)
- img = quteproc_new.get_screenshot(probe_pos=pos, probe_color=expected)
+ quteproc_new.get_screenshot(
+ probe_pos=QPoint(4, 4),
+ probe_color=expected,
+ )
- color = testutils.Color(img.pixelColor(pos))
- # For pytest debug output
- assert color == expected
+
+def test_dark_mode_mathml(quteproc_new, request, qtbot):
+ if not request.config.webengine:
+ pytest.skip("Skipped with QtWebKit")
+
+ args = _base_args(request.config) + [
+ '--temp-basedir',
+ '-s', 'colors.webpage.darkmode.enabled', 'true',
+ '-s', 'colors.webpage.darkmode.algorithm', 'brightness-rgb',
+ ]
+ quteproc_new.start(args)
+
+ quteproc_new.open_path('data/darkmode/mathml.html')
+ quteproc_new.wait_for_js('Image loaded')
+
+ # First make sure loading finished by looking outside of the image
+ quteproc_new.get_screenshot(
+ probe_pos=QPoint(105, 0),
+ probe_color=testutils.Color(0, 0, 204),
+ )
+
+ # Then get the actual formula color, probing again in case it's not displayed yet...
+ quteproc_new.get_screenshot(
+ probe_pos=QPoint(4, 4),
+ probe_color=testutils.Color(255, 255, 255),
+ )
def test_unavailable_backend(request, quteproc_new):