summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/quick/qmltests/BLACKLIST3
-rw-r--r--tests/auto/quick/qmltests/data/tst_focusOnNavigation.qml29
2 files changed, 19 insertions, 13 deletions
diff --git a/tests/auto/quick/qmltests/BLACKLIST b/tests/auto/quick/qmltests/BLACKLIST
index f7eda413c..63d31c875 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 ce0fa2e31..15ec320a4 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);
}