diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2019-07-02 12:43:52 +0200 |
---|---|---|
committer | Jüri Valdmann <juri.valdmann@qt.io> | 2019-07-02 12:43:52 +0200 |
commit | 57119f16668cf79dec0dbdfbc9a2183f9e5c44fa (patch) | |
tree | a9f6c7ec75d91eb8408d02dd2c16eec4a39e0541 /tests/auto/quick/qmltests | |
parent | fb430b4e104dd6313a776980b4798f1333193149 (diff) | |
parent | bd864f6418ed164c19a700fc4b6ebab3be431c62 (diff) |
Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: I806417dd7a6d2594a86ee49feedc4ad9ee48add2
Diffstat (limited to 'tests/auto/quick/qmltests')
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_action.qml | 54 |
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" }); + } } } |