aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/inputpanel/data/inputpanel/inputpanel.qml17
-rw-r--r--tests/auto/inputpanel/data/tst_inputpanel.qml43
2 files changed, 59 insertions, 1 deletions
diff --git a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
index 1fb37d74..034150be 100644
--- a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
@@ -30,7 +30,7 @@
import QtTest 1.0
import QtQuick 2.0
import QtQuick.VirtualKeyboard 2.1
-import QtQuick.VirtualKeyboard.Settings 2.1
+import QtQuick.VirtualKeyboard.Settings 2.2
import "handwriting.js" as Handwriting
import "utils.js" as Utils
@@ -83,6 +83,7 @@ InputPanel {
property alias soundEffectSpy: soundEffectSpy
property alias inputMethodResultSpy: inputMethodResultSpy
property alias wordCandidateListChangedSpy: wordCandidateListChangedSpy
+ property alias wordCandidateListVisibleSpy: wordCandidateListVisibleSpy
property alias shiftStateSpy: shiftStateSpy
signal inputMethodResult(var text)
@@ -164,6 +165,12 @@ InputPanel {
}
SignalSpy {
+ id: wordCandidateListVisibleSpy
+ target: wordCandidateView
+ signalName: "onVisibleConditionChanged"
+ }
+
+ SignalSpy {
id: shiftStateSpy
target: InputContext
signalName: "onShiftChanged"
@@ -207,6 +214,14 @@ InputPanel {
VirtualKeyboardSettings.activeLocales = activeLocales
}
+ function setWclAutoHideDelay(wclAutoHideDelay) {
+ VirtualKeyboardSettings.wordCandidateList.autoHideDelay = wclAutoHideDelay
+ }
+
+ function setWclAlwaysVisible(wclAlwaysVisible) {
+ VirtualKeyboardSettings.wordCandidateList.alwaysVisible = wclAlwaysVisible
+ }
+
function mapInputMode(inputModeName) {
if (inputModeName === "Latin")
return InputEngine.Latin
diff --git a/tests/auto/inputpanel/data/tst_inputpanel.qml b/tests/auto/inputpanel/data/tst_inputpanel.qml
index 9cc1fedb..ffe88cc8 100644
--- a/tests/auto/inputpanel/data/tst_inputpanel.qml
+++ b/tests/auto/inputpanel/data/tst_inputpanel.qml
@@ -78,6 +78,8 @@ Rectangle {
}
function prepareTest(data) {
+ inputPanel.setWclAutoHideDelay(data !== undefined && data.hasOwnProperty("wclAutoHideDelay") ? data.wclAutoHideDelay : 5000)
+ inputPanel.setWclAlwaysVisible(data !== undefined && data.hasOwnProperty("wclAlwaysVisible") && data.wclAlwaysVisible)
container.forceActiveFocus()
if (data !== undefined && data.hasOwnProperty("initText")) {
textInput.text = data.initText
@@ -172,6 +174,14 @@ Rectangle {
property var locale: VirtualKeyboardSettings.locale; \
property var availableLocales: VirtualKeyboardSettings.availableLocales; \
property var activeLocales: VirtualKeyboardSettings.activeLocales }" },
+ { qml: "import QtQuick 2.7; \
+ import QtQuick.VirtualKeyboard.Settings 2.2; \
+ Item { property var styleName: VirtualKeyboardSettings.styleName; \
+ property var locale: VirtualKeyboardSettings.locale; \
+ property var availableLocales: VirtualKeyboardSettings.availableLocales; \
+ property var activeLocales: VirtualKeyboardSettings.activeLocales; \
+ property var wclAutoHideDelay: VirtualKeyboardSettings.wordCandidateList.autoHideDelay; \
+ property var wclAlwaysVisible: VirtualKeyboardSettings.wordCandidateList.alwaysVisible; }" },
]
}
@@ -1569,5 +1579,38 @@ Rectangle {
compare(languagePopupList.visible, false)
}
+
+ function test_wclAutoHide_data() {
+ return [
+ { wclAutoHideDelay: 100, wclAlwaysVisible: false },
+ { wclAutoHideDelay: 0, wclAlwaysVisible: true },
+ { wclAutoHideDelay: 0, wclAlwaysVisible: false },
+ ]
+ }
+
+ function test_wclAutoHide(data) {
+ prepareTest(data)
+ inputPanel.wordCandidateListChangedSpy.clear()
+ Qt.inputMethod.show()
+ waitForRendering(inputPanel)
+ compare(inputPanel.wordCandidateView.visibleCondition, data.wclAlwaysVisible)
+ inputPanel.virtualKeyClick("a")
+ inputPanel.virtualKeyClick("u")
+ inputPanel.virtualKeyClick("t")
+ inputPanel.virtualKeyClick("o")
+ waitForRendering(inputPanel)
+ if (!inputPanel.wordCandidateListVisibleHint)
+ skip("Prediction/spell correction not enabled")
+ inputPanel.wordCandidateListChangedSpy.wait(1000)
+ compare(inputPanel.wordCandidateView.visibleCondition, true)
+ inputPanel.wordCandidateListVisibleSpy.clear()
+ inputPanel.selectionListSelectCurrentItem()
+ if (data.wclAlwaysVisible)
+ wait(data.wclAutoHideDelay + 250)
+ else
+ inputPanel.wordCandidateListVisibleSpy.wait(data.wclAutoHideDelay + 500)
+ waitForRendering(inputPanel)
+ compare(inputPanel.wordCandidateView.visibleCondition, data.wclAlwaysVisible)
+ }
}
}