diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-06-11 19:14:14 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-06-11 19:14:14 +0200 |
commit | b0d3c8eee3ee78c011feeac36cf7c8ee9785b63b (patch) | |
tree | a92b03c89138f37b73582152348ee4503343a1e7 /tests/unit/browser/webengine/test_webenginetab.py | |
parent | c6cdd3f8440b22a294911ebed0492beea8913c49 (diff) | |
download | qutebrowser-b0d3c8eee3ee78c011feeac36cf7c8ee9785b63b.tar.gz qutebrowser-b0d3c8eee3ee78c011feeac36cf7c8ee9785b63b.zip |
Greasemonkey: Make sure script names are unique
Fixes #6353
Diffstat (limited to 'tests/unit/browser/webengine/test_webenginetab.py')
-rw-r--r-- | tests/unit/browser/webengine/test_webenginetab.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/unit/browser/webengine/test_webenginetab.py b/tests/unit/browser/webengine/test_webenginetab.py index 274e216ba..3d8eec663 100644 --- a/tests/unit/browser/webengine/test_webenginetab.py +++ b/tests/unit/browser/webengine/test_webenginetab.py @@ -164,6 +164,45 @@ class TestWebengineScripts: assert scripts_helper.get_script().injectionPoint() == expected + @pytest.mark.parametrize('header1, header2, expected_names', [ + ( + ["// @namespace ns1", "// @name same"], + ["// @namespace ns2", "// @name same"], + ['GM-ns1/same', 'GM-ns2/same'], + ), + ( + ["// @name same"], + ["// @name same"], + ['GM-same', 'GM-same-2'], + ), + ( + ["// @name same"], + ["// @name sam"], + ['GM-same', 'GM-sam'], + ), + ]) + def test_greasemonkey_duplicate_name(self, scripts_helper, + header1, header2, expected_names): + template = """ + // ==UserScript== + {header} + // ==/UserScript== + """ + template = textwrap.dedent(template.lstrip('\n')) + + source1 = template.format(header="\n".join(header1)) + script1 = greasemonkey.GreasemonkeyScript.parse(source1) + source2 = template.format(header="\n".join(header2)) + script2 = greasemonkey.GreasemonkeyScript.parse(source2) + scripts_helper.inject([script1, script2]) + + names = [script.name() for script in scripts_helper.get_scripts()] + assert names == expected_names + + source3 = textwrap.dedent(template.lstrip('\n')).format(header="// @name other") + script3 = greasemonkey.GreasemonkeyScript.parse(source3) + scripts_helper.inject([script3]) + def test_notification_permission_workaround(): """Make sure the value for QWebEnginePage::Notifications is correct.""" |