diff --git a/tests/auto/quick/qmltests/BLACKLIST b/tests/auto/quick/qmltests/BLACKLIST index f7eda413cd4d471182cf244943ff8e6437000af6..63d31c8751080a4151eadc2ad70517c4a1b0b05e 100644 --- a/tests/auto/quick/qmltests/BLACKLIST +++ b/tests/auto/quick/qmltests/BLACKLIST @@ -10,9 +10,6 @@ osx [WebViewGeopermission::test_geoPermissionRequest] osx -[WebEngineViewFocusOnNavigation::test_focusOnNavigation] -* - [WebEngineViewLoadUrl::test_urlProperty] windows diff --git a/tests/auto/quick/qmltests/data/tst_focusOnNavigation.qml b/tests/auto/quick/qmltests/data/tst_focusOnNavigation.qml index ce0fa2e31c2ca4419fab8656f8c0e37ba536dc18..15ec320a46db443efa1c0abd0fdc27a9a4e09413 100644 --- a/tests/auto/quick/qmltests/data/tst_focusOnNavigation.qml +++ b/tests/auto/quick/qmltests/data/tst_focusOnNavigation.qml @@ -67,8 +67,6 @@ Item { TestCase { name: "WebEngineViewFocusOnNavigation" when: windowShown - function init() { - } function test_focusOnNavigation_data() { return [ @@ -79,18 +77,29 @@ Item { ] } - function triggerJavascriptFocus() { - var callbackCalled = false; - webView.runJavaScript("document.getElementById(\"input\").focus()", function(result) { - callbackCalled = true; - }); - wait(100); - verify(callbackCalled); + function getActiveElementId() { + var activeElementId; + webView.runJavaScript("document.activeElement.id", function(result) { + activeElementId = result; + }); + tryVerify(function() { return activeElementId != undefined }); + return activeElementId; + } + + function verifyElementHasFocus(element) { + tryVerify(function() { return getActiveElementId() == element; }, 5000, + "Element \"" + element + "\" has focus"); + + } + + function setFocusToElement(element) { + webView.runJavaScript("document.getElementById('" + element + "').focus()"); + verifyElementHasFocus(element); } function loadAndTriggerFocusAndCompare(data) { verify(webView.waitForLoadSucceeded()); - triggerJavascriptFocus(); + setFocusToElement("input"); compare(webView.activeFocus, data.viewReceivedFocus); }