summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qmltests
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2019-07-02 12:43:52 +0200
committerJüri Valdmann <juri.valdmann@qt.io>2019-07-02 12:43:52 +0200
commit57119f16668cf79dec0dbdfbc9a2183f9e5c44fa (patch)
treea9f6c7ec75d91eb8408d02dd2c16eec4a39e0541 /tests/auto/quick/qmltests
parentfb430b4e104dd6313a776980b4798f1333193149 (diff)
parentbd864f6418ed164c19a700fc4b6ebab3be431c62 (diff)
Merge remote-tracking branch 'origin/5.13' into dev
Diffstat (limited to 'tests/auto/quick/qmltests')
-rw-r--r--tests/auto/quick/qmltests/data/tst_action.qml54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/auto/quick/qmltests/data/tst_action.qml b/tests/auto/quick/qmltests/data/tst_action.qml
index f6d8669fe..56a91d8d0 100644
--- a/tests/auto/quick/qmltests/data/tst_action.qml
+++ b/tests/auto/quick/qmltests/data/tst_action.qml
@@ -127,5 +127,59 @@ TestWebEngineView {
stopAction.trigger();
compare(stopTriggerSpy.count, 0);
}
+
+ function test_editActionsWithExplicitFocus() {
+ var webView = Qt.createQmlObject("TestWebEngineView { visible: false; }", webEngineView);
+ webView.settings.focusOnNavigationEnabled = false;
+
+ // The view is hidden and no focus on the page. Edit actions should be disabled.
+ var selectAllAction = webView.action(WebEngineView.SelectAll);
+ verify(selectAllAction);
+ verify(!selectAllAction.enabled);
+
+ var triggerSpy = createTemporaryObject(signalSpy, webEngineView, {target: selectAllAction, signalName: "triggered"});
+ var enabledSpy = createTemporaryObject(signalSpy, webEngineView, {target: selectAllAction, signalName: "enabledChanged"});
+
+ webView.loadHtml("<html><body><div>foo bar</div></body></html>");
+ verify(webView.waitForLoadSucceeded());
+
+ // Still no focus because focus on navigation is disabled. Edit actions don't do anything (should not crash).
+ verify(!selectAllAction.enabled);
+ compare(enabledSpy.count, 0);
+ selectAllAction.trigger();
+ compare(triggerSpy.count, 0);
+ compare(getTextSelection(), "");
+
+ // Focus content by focusing window from JavaScript. Edit actions should be enabled and functional.
+ webView.runJavaScript("window.focus();");
+ tryVerify(function() { return enabledSpy.count === 1 });
+ verify(selectAllAction.enabled);
+ selectAllAction.trigger();
+ compare(triggerSpy.count, 1);
+ tryVerify(function() { return webView.getTextSelection() === "foo bar" });
+ }
+
+ function test_editActionsWithInitialFocus() {
+ var webView = Qt.createQmlObject("TestWebEngineView { visible: false; }", webEngineView);
+ webView.settings.focusOnNavigationEnabled = true;
+
+ // The view is hidden and no focus on the page. Edit actions should be disabled.
+ var selectAllAction = webView.action(WebEngineView.SelectAll);
+ verify(selectAllAction);
+ verify(!selectAllAction.enabled);
+
+ var triggerSpy = createTemporaryObject(signalSpy, webEngineView, {target: selectAllAction, signalName: "triggered"});
+ var enabledSpy = createTemporaryObject(signalSpy, webEngineView, {target: selectAllAction, signalName: "enabledChanged"});
+
+ webView.loadHtml("<html><body><div>foo bar</div></body></html>");
+ verify(webView.waitForLoadSucceeded());
+
+ // Content gets initial focus.
+ tryVerify(function() { return enabledSpy.count === 1 });
+ verify(selectAllAction.enabled);
+ selectAllAction.trigger();
+ compare(triggerSpy.count, 1);
+ tryVerify(function() { return webView.getTextSelection() === "foo bar" });
+ }
}
}