summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qmltests/data
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-06-11 12:57:07 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-06-11 12:57:42 +0200
commit147d70f330648acd105d6eb62493366fcf1e3abd (patch)
treeb47c0939bc7dfa155b787448da5102a10a156cfe /tests/auto/quick/qmltests/data
parent7f89badd0e1b71dabb5a88d1330b08ce9d8b6eb7 (diff)
parentaf1c0087e51b6e2ad905259bb7a1d50101735d2d (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: .qmake.conf src/3rdparty src/core/configure.json src/core/profile_io_data_qt.cpp tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp Change-Id: Ie8ae4aa03881a0733ff497fff46e3f7040735650
Diffstat (limited to 'tests/auto/quick/qmltests/data')
-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" });
+ }
}
}