diff options
Diffstat (limited to 'tests/unit/browser/webengine/test_darkmode.py')
-rw-r--r-- | tests/unit/browser/webengine/test_darkmode.py | 71 |
1 files changed, 47 insertions, 24 deletions
diff --git a/tests/unit/browser/webengine/test_darkmode.py b/tests/unit/browser/webengine/test_darkmode.py index 7d6a12716..bda05feb8 100644 --- a/tests/unit/browser/webengine/test_darkmode.py +++ b/tests/unit/browser/webengine/test_darkmode.py @@ -1,21 +1,10 @@ -# Copyright 2020-2021 Florian Bruhin (The Compiler) <mail@qutebrowser.org> - -# This file is part of qutebrowser. -# -# qutebrowser is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# qutebrowser is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# SPDX-FileCopyrightText: Florian Bruhin (The Compiler) <mail@qutebrowser.org> # -# You should have received a copy of the GNU General Public License -# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. +# SPDX-License-Identifier: GPL-3.0-or-later + import logging +from typing import List, Tuple import pytest @@ -115,7 +104,7 @@ QT_515_2_SETTINGS = {'blink-settings': [ ('forceDarkModeEnabled', 'true'), ('forceDarkModeInversionAlgorithm', '2'), ('forceDarkModeImagePolicy', '2'), - ('forceDarkModeGrayscale', 'true'), + ('forceDarkModeTextBrightnessThreshold', '100'), ]} @@ -124,7 +113,16 @@ QT_515_3_SETTINGS = { 'dark-mode-settings': [ ('InversionAlgorithm', '1'), ('ImagePolicy', '2'), - ('IsGrayScale', 'true'), + ('TextBrightnessThreshold', '100'), + ], +} + +QT_64_SETTINGS = { + 'blink-settings': [('forceDarkModeEnabled', 'true')], + 'dark-mode-settings': [ + ('InversionAlgorithm', '1'), + ('ImagePolicy', '2'), + ('ForegroundBrightnessThreshold', '100'), ], } @@ -132,12 +130,13 @@ QT_515_3_SETTINGS = { @pytest.mark.parametrize('qversion, expected', [ ('5.15.2', QT_515_2_SETTINGS), ('5.15.3', QT_515_3_SETTINGS), + ('6.4', QT_64_SETTINGS), ]) def test_qt_version_differences(config_stub, qversion, expected): settings = { 'enabled': True, 'algorithm': 'brightness-rgb', - 'grayscale.all': True, + 'threshold.foreground': 100, } for k, v in settings.items(): config_stub.set_obj('colors.webpage.darkmode.' + k, v) @@ -154,14 +153,10 @@ def test_qt_version_differences(config_stub, qversion, expected): 'PagePolicy', '1'), ('policy.images', 'smart', 'ImagePolicy', '2'), - ('threshold.text', 100, + ('threshold.foreground', 100, 'TextBrightnessThreshold', '100'), ('threshold.background', 100, 'BackgroundBrightnessThreshold', '100'), - ('grayscale.all', True, - 'Grayscale', 'true'), - ('grayscale.images', 0.5, - 'ImageGrayscale', '0.5'), ]) def test_customization(config_stub, setting, value, exp_key, exp_val): config_stub.val.colors.webpage.darkmode.enabled = True @@ -175,15 +170,43 @@ def test_customization(config_stub, setting, value, exp_key, exp_val): expected.append(('forceDarkModeImagePolicy', '2')) expected.append(('forceDarkMode' + exp_key, exp_val)) - versions = version.WebEngineVersions.from_pyqt('5.15.2') + versions = version.WebEngineVersions.from_api( + qtwe_version='5.15.2', + chromium_version=None, + ) darkmode_settings = darkmode.settings(versions=versions, special_flags=[]) assert darkmode_settings['blink-settings'] == expected +@pytest.mark.parametrize('qtwe_version, setting, value, expected', [ + ('6.6.1', 'policy.images', 'always', [('ImagePolicy', '0')]), + ('6.6.1', 'policy.images', 'never', [('ImagePolicy', '1')]), + ('6.6.1', 'policy.images', 'smart', [('ImagePolicy', '2'), ('ImageClassifierPolicy', '0')]), + ('6.6.1', 'policy.images', 'smart-simple', [('ImagePolicy', '2'), ('ImageClassifierPolicy', '1')]), + + ('6.5.3', 'policy.images', 'smart', [('ImagePolicy', '2')]), + ('6.5.3', 'policy.images', 'smart-simple', [('ImagePolicy', '2')]), +]) +def test_image_policy(config_stub, qtwe_version: str, setting: str, value: str, expected: List[Tuple[str, str]]): + config_stub.val.colors.webpage.darkmode.enabled = True + config_stub.set_obj('colors.webpage.darkmode.' + setting, value) + + versions = version.WebEngineVersions.from_api( + qtwe_version=qtwe_version, + chromium_version=None, + ) + darkmode_settings = darkmode.settings(versions=versions, special_flags=[]) + assert darkmode_settings['dark-mode-settings'] == expected + + @pytest.mark.parametrize('webengine_version, expected', [ ('5.15.2', darkmode.Variant.qt_515_2), ('5.15.3', darkmode.Variant.qt_515_3), ('6.2.0', darkmode.Variant.qt_515_3), + ('6.3.0', darkmode.Variant.qt_515_3), + ('6.4.0', darkmode.Variant.qt_64), + ('6.5.0', darkmode.Variant.qt_64), + ('6.6.0', darkmode.Variant.qt_66), ]) def test_variant(webengine_version, expected): versions = version.WebEngineVersions.from_pyqt(webengine_version) |