diff options
Diffstat (limited to 'tests/unit/browser/webengine/test_darkmode.py')
-rw-r--r-- | tests/unit/browser/webengine/test_darkmode.py | 126 |
1 files changed, 33 insertions, 93 deletions
diff --git a/tests/unit/browser/webengine/test_darkmode.py b/tests/unit/browser/webengine/test_darkmode.py index 3f5272dab..eab7af511 100644 --- a/tests/unit/browser/webengine/test_darkmode.py +++ b/tests/unit/browser/webengine/test_darkmode.py @@ -24,7 +24,6 @@ from qutebrowser.config import configdata from qutebrowser.utils import usertypes, version, utils from qutebrowser.browser.webengine import darkmode from qutebrowser.misc import objects -from helpers import testutils @pytest.fixture(autouse=True) @@ -43,38 +42,25 @@ def gentoo_versions(): @pytest.mark.parametrize('value, webengine_version, expected', [ # Auto - ("auto", "5.14", []), - ("auto", "5.15.0", []), - ("auto", "5.15.1", []), ("auto", "5.15.2", [("preferredColorScheme", "2")]), # QTBUG-89753 ("auto", "5.15.3", []), - ("auto", "6.0.0", []), + ("auto", "6.2.0", []), # Unset - (None, "5.14", []), - (None, "5.15.0", []), - (None, "5.15.1", []), (None, "5.15.2", [("preferredColorScheme", "2")]), # QTBUG-89753 (None, "5.15.3", []), - (None, "6.0.0", []), + (None, "6.2.0", []), # Dark - ("dark", "5.14", []), - ("dark", "5.15.0", []), - ("dark", "5.15.1", []), ("dark", "5.15.2", [("preferredColorScheme", "1")]), ("dark", "5.15.3", [("preferredColorScheme", "0")]), - ("dark", "6.0.0", [("preferredColorScheme", "0")]), + ("dark", "6.2.0", [("preferredColorScheme", "0")]), # Light - ("light", "5.14", []), - ("light", "5.15.0", []), - ("light", "5.15.1", []), ("light", "5.15.2", [("preferredColorScheme", "2")]), ("light", "5.15.3", [("preferredColorScheme", "1")]), - ("light", "6.0.0", [("preferredColorScheme", "1")]), + ("light", "6.2.0", [("preferredColorScheme", "1")]), ]) -@testutils.qt514 def test_colorscheme(config_stub, value, webengine_version, expected): versions = version.WebEngineVersions.from_pyqt(webengine_version) if value is not None: @@ -84,7 +70,6 @@ def test_colorscheme(config_stub, value, webengine_version, expected): assert darkmode_settings['blink-settings'] == expected -@testutils.qt514 def test_colorscheme_gentoo_workaround(config_stub, gentoo_versions): config_stub.val.colors.webpage.preferred_color_scheme = "dark" darkmode_settings = darkmode.settings(versions=gentoo_versions, special_flags=[]) @@ -93,17 +78,26 @@ def test_colorscheme_gentoo_workaround(config_stub, gentoo_versions): @pytest.mark.parametrize('settings, expected', [ # Disabled - ({}, []), + ({}, [('preferredColorScheme', '2')]), # Enabled without customization - ({'enabled': True}, [('darkModeEnabled', 'true')]), + ( + {'enabled': True}, + [ + ('preferredColorScheme', '2'), + ('forceDarkModeEnabled', 'true'), + ('forceDarkModeImagePolicy', '2'), + ] + ), # Algorithm ( {'enabled': True, 'algorithm': 'brightness-rgb'}, [ - ('darkModeEnabled', 'true'), - ('darkModeInversionAlgorithm', '2') + ('preferredColorScheme', '2'), + ('forceDarkModeEnabled', 'true'), + ('forceDarkModeInversionAlgorithm', '2'), + ('forceDarkModeImagePolicy', '2'), ], ), ]) @@ -111,37 +105,12 @@ def test_basics(config_stub, settings, expected): for k, v in settings.items(): config_stub.set_obj('colors.webpage.darkmode.' + k, v) - if expected: - expected.append(('darkModeImagePolicy', '2')) - - # Using Qt 5.15.1 because it has the least special cases. - versions = version.WebEngineVersions.from_pyqt('5.15.1') + # Using Qt 5.15.2 because it has the least special cases. + versions = version.WebEngineVersions.from_pyqt('5.15.2') darkmode_settings = darkmode.settings(versions=versions, special_flags=[]) assert darkmode_settings['blink-settings'] == expected -QT_514_SETTINGS = {'blink-settings': [ - ('darkMode', '2'), - ('darkModeImagePolicy', '2'), - ('darkModeGrayscale', 'true'), -]} - - -QT_515_0_SETTINGS = {'blink-settings': [ - ('darkModeEnabled', 'true'), - ('darkModeInversionAlgorithm', '2'), - ('darkModeGrayscale', 'true'), -]} - - -QT_515_1_SETTINGS = {'blink-settings': [ - ('darkModeEnabled', 'true'), - ('darkModeInversionAlgorithm', '2'), - ('darkModeImagePolicy', '2'), - ('darkModeGrayscale', 'true'), -]} - - QT_515_2_SETTINGS = {'blink-settings': [ ('preferredColorScheme', '2'), # QTBUG-89753 ('forceDarkModeEnabled', 'true'), @@ -162,13 +131,6 @@ QT_515_3_SETTINGS = { @pytest.mark.parametrize('qversion, expected', [ - ('5.14.0', QT_514_SETTINGS), - ('5.14.1', QT_514_SETTINGS), - ('5.14.2', QT_514_SETTINGS), - - ('5.15.0', QT_515_0_SETTINGS), - ('5.15.1', QT_515_1_SETTINGS), - ('5.15.2', QT_515_2_SETTINGS), ('5.15.3', QT_515_3_SETTINGS), ]) @@ -186,7 +148,6 @@ def test_qt_version_differences(config_stub, qversion, expected): assert darkmode_settings == expected -@testutils.qt514 @pytest.mark.parametrize('setting, value, exp_key, exp_val', [ ('contrast', -0.5, 'Contrast', '-0.5'), @@ -207,25 +168,23 @@ def test_customization(config_stub, setting, value, exp_key, exp_val): config_stub.val.colors.webpage.darkmode.enabled = True config_stub.set_obj('colors.webpage.darkmode.' + setting, value) - expected = [] - expected.append(('darkModeEnabled', 'true')) + expected = [ + ('preferredColorScheme', '2'), + ('forceDarkModeEnabled', 'true'), + ] if exp_key != 'ImagePolicy': - expected.append(('darkModeImagePolicy', '2')) - expected.append(('darkMode' + exp_key, exp_val)) + expected.append(('forceDarkModeImagePolicy', '2')) + expected.append(('forceDarkMode' + exp_key, exp_val)) - versions = version.WebEngineVersions.from_pyqt('5.15.1') + versions = version.WebEngineVersions.from_pyqt('5.15.2') darkmode_settings = darkmode.settings(versions=versions, special_flags=[]) assert darkmode_settings['blink-settings'] == expected @pytest.mark.parametrize('webengine_version, expected', [ - ('5.13.0', darkmode.Variant.qt_511_to_513), - ('5.14.0', darkmode.Variant.qt_514), - ('5.15.0', darkmode.Variant.qt_515_0), - ('5.15.1', darkmode.Variant.qt_515_1), ('5.15.2', darkmode.Variant.qt_515_2), ('5.15.3', darkmode.Variant.qt_515_3), - ('6.0.0', darkmode.Variant.qt_515_3), + ('6.2.0', darkmode.Variant.qt_515_3), ]) def test_variant(webengine_version, expected): versions = version.WebEngineVersions.from_pyqt(webengine_version) @@ -237,11 +196,11 @@ def test_variant_gentoo_workaround(gentoo_versions): @pytest.mark.parametrize('value, is_valid, expected', [ - ('invalid_value', False, darkmode.Variant.qt_515_0), + ('invalid_value', False, darkmode.Variant.qt_515_3), ('qt_515_2', True, darkmode.Variant.qt_515_2), ]) def test_variant_override(monkeypatch, caplog, value, is_valid, expected): - versions = version.WebEngineVersions.from_pyqt('5.15.0') + versions = version.WebEngineVersions.from_pyqt('5.15.3') monkeypatch.setenv('QUTE_DARKMODE_VARIANT', value) with caplog.at_level(logging.WARNING): @@ -251,25 +210,6 @@ def test_variant_override(monkeypatch, caplog, value, is_valid, expected): assert (log_msg in caplog.messages) != is_valid -def test_broken_smart_images_policy(config_stub, caplog): - config_stub.val.colors.webpage.darkmode.enabled = True - config_stub.val.colors.webpage.darkmode.policy.images = 'smart' - versions = version.WebEngineVersions.from_pyqt('5.15.0') - - with caplog.at_level(logging.WARNING): - darkmode_settings = darkmode.settings(versions=versions, special_flags=[]) - - assert caplog.messages[-1] == ( - 'Ignoring colors.webpage.darkmode.policy.images = smart because of ' - 'Qt 5.15.0 bug') - - expected = [ - [('darkModeEnabled', 'true')], # Qt 5.15 - [('darkMode', '4')], # Qt 5.14 - ] - assert darkmode_settings['blink-settings'] in expected - - @pytest.mark.parametrize('flag, expected', [ ('--blink-settings=key=value', [('key', 'value')]), ('--blink-settings=key=equal=rights', [('key', 'equal=rights')]), @@ -278,12 +218,13 @@ def test_broken_smart_images_policy(config_stub, caplog): ]) def test_pass_through_existing_settings(config_stub, flag, expected): config_stub.val.colors.webpage.darkmode.enabled = True - versions = version.WebEngineVersions.from_pyqt('5.15.1') + versions = version.WebEngineVersions.from_pyqt('5.15.2') settings = darkmode.settings(versions=versions, special_flags=[flag]) dark_mode_expected = [ - ('darkModeEnabled', 'true'), - ('darkModeImagePolicy', '2'), + ('preferredColorScheme', '2'), + ('forceDarkModeEnabled', 'true'), + ('forceDarkModeImagePolicy', '2'), ] assert settings['blink-settings'] == expected + dark_mode_expected @@ -303,4 +244,3 @@ def test_options(configdata_init): if opt.raw_backends is not None: assert not opt.raw_backends['QtWebKit'], name - assert opt.raw_backends['QtWebEngine'] == 'Qt 5.14', name |