From 2249a88e3a290886a6362e877bf951a0916e938e Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 27 Mar 2018 07:29:43 +0200 Subject: [PATCH] Make test_simple_js_webengine work correctly --- tests/unit/javascript/test_js_execution.py | 31 +++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/tests/unit/javascript/test_js_execution.py b/tests/unit/javascript/test_js_execution.py index 901c373c4..c5b5018d2 100644 --- a/tests/unit/javascript/test_js_execution.py +++ b/tests/unit/javascript/test_js_execution.py @@ -47,15 +47,32 @@ def test_element_js_webkit(webview, js_enabled, expected): @pytest.mark.usefixtures('redirect_webengine_data') -@pytest.mark.parametrize('js_enabled, expected', [(True, 2.0), (False, 2.0)]) -def test_simple_js_webengine(callback_checker, webengineview, js_enabled, - expected): +@pytest.mark.parametrize('js_enabled, world, expected', [ + # main world + (True, 0, 2.0), + (False, 0, None), + # application world + (True, 1, 2.0), + (False, 1, 2.0), + # user world + (True, 2, 2.0), + (False, 2, 2.0), +]) +def test_simple_js_webengine(callback_checker, webengineview, qapp, + js_enabled, world, expected): """With QtWebEngine, runJavaScript works even when JS is off.""" # If we get there (because of the webengineview fixture) we can be certain # QtWebEngine is available - from PyQt5.QtWebEngineWidgets import QWebEngineSettings - webengineview.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, - js_enabled) + from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEngineScript - webengineview.page().runJavaScript('1 + 1', callback_checker.callback) + assert world in [QWebEngineScript.MainWorld, + QWebEngineScript.ApplicationWorld, + QWebEngineScript.UserWorld] + + settings = webengineview.settings() + settings.setAttribute(QWebEngineSettings.JavascriptEnabled, js_enabled) + qapp.processEvents() + + page = webengineview.page() + page.runJavaScript('1 + 1', world, callback_checker.callback) callback_checker.check(expected)