aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-15 10:18:22 +0300
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-27 10:13:51 +0000
commit81c0d7d4df40c1130a8e7c98411c045b7eafc475 (patch)
treebee9a753c20b80d6630f39fee86e7758f2aae926 /tests
parent251a86bd64856c2f48ac62f8f8747ddf21982876 (diff)
Add Cangjie input method for Traditional Chinese
This change adds Cangjie input method for Traditional Chinese. The input method is based on the TCIME input method for Android. https://code.google.com/p/android-traditional-chinese-ime/ The Cangjie input method is enabled by adding CONFIG+=tcime into qmake command line. The version of the Cangjie input is v3. Change-Id: Ibc49484d1277c332fc17e9b49b4227256ad88d5a Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/inputpanel/data/inputpanel/inputpanel.qml7
-rw-r--r--tests/auto/inputpanel/data/tst_inputpanel.qml53
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 6cf395b7..113431c2 100644
--- a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
@@ -46,6 +46,7 @@ InputPanel {
readonly property var availableLocales: VirtualKeyboardSettings.availableLocales
readonly property var activeLocales: VirtualKeyboardSettings.activeLocales
readonly property int inputMode: InputContext.inputEngine.inputMode
+ readonly property var inputMethod: InputContext.inputEngine.inputMethod
readonly property var keyboard: Utils.findChildByProperty(inputPanel, "objectName", "keyboard", null)
readonly property bool handwritingMode: keyboard.handwritingMode
readonly property var keyboardLayoutLoader: Utils.findChildByProperty(keyboard, "objectName", "keyboardLayoutLoader", null)
@@ -175,7 +176,9 @@ InputPanel {
function setLocale(inputLocale) {
VirtualKeyboardSettings.locale = inputLocale
- return Qt.inputMethod.locale.name.substring(0, 2) === inputLocale.substring(0, 2)
+ if (["ar", "fa"].indexOf(inputLocale.substring(0, 2)) !== -1)
+ return Qt.inputMethod.locale.name.substring(0, 2) === inputLocale.substring(0, 2)
+ return Qt.inputMethod.locale.name === inputLocale
}
function setActiveLocales(activeLocales) {
@@ -191,6 +194,8 @@ InputPanel {
return InputEngine.Dialable
else if (inputModeName === "Pinyin")
return InputEngine.Pinyin
+ else if (inputModeName === "Canjie")
+ return InputEngine.Canjie
else if (inputModeName === "Hangul")
return InputEngine.Hangul
else if (inputModeName === "Hiragana")
diff --git a/tests/auto/inputpanel/data/tst_inputpanel.qml b/tests/auto/inputpanel/data/tst_inputpanel.qml
index a589acd9..d0cb4356 100644
--- a/tests/auto/inputpanel/data/tst_inputpanel.qml
+++ b/tests/auto/inputpanel/data/tst_inputpanel.qml
@@ -701,6 +701,59 @@ Rectangle {
compare(textInput.text, data.outputText)
}
+ function test_cangjieInputMethod_data() {
+ return [
+ // "vehicle"
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\u5341", expectedCandidates: [ "\u8ECA" ], outputText: "\u8ECA" },
+ // simplified mode: "vehicle"
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: true, inputSequence: "\u5341\u5341", expectedCandidates: [ "\u8ECA" ], outputText: "\u8ECA" },
+ // "to thank"
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u535C\u53E3\u7AF9\u7AF9\u6208", expectedCandidates: [ "\u8B1D" ], outputText: "\u8B1D" },
+ // exceptions: "door"
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u65E5\u5F13", expectedCandidates: [ "\u9580" ], outputText: "\u9580" },
+ // exceptions: "small table"
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u7AF9\u5F13", expectedCandidates: [ "\u51E0" ], outputText: "\u51E0" },
+ // fixed decomposition
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u7AF9\u96E3", expectedCandidates: [ "\u81FC" ], outputText: "\u81FC" },
+ // input handling: valid input sequence + space
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\u5341 ", outputText: "\u8ECA" },
+ // input handling: invalid input sequence + space
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530 ", outputText: "" },
+ // input handling: valid input sequence + enter
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\u5341\n", outputText: "\u8ECA\n" },
+ // input handling: invalid input sequence + enter
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\n", outputText: "\n" },
+ // input handling: valid input sequence + punctuation
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\u5341\uFF0E", outputText: "\u8ECA\uFF0E" },
+ // input handling: invalid input sequence + punctuation
+ { initInputMethodHints: Qt.ImhNone, initLocale: "zh_TW", initSimplified: false, inputSequence: "\u5341\u7530\uFF0E", outputText: "\uFF0E" },
+ ]
+ }
+
+ function test_cangjieInputMethod(data) {
+ prepareTest(data)
+
+ if (data.hasOwnProperty("initSimplified")) {
+ if (inputPanel.inputMethod.simplified !== data.initSimplified)
+ verify(inputPanel.virtualKeyClick(Qt.Key_Mode_switch))
+ verify(inputPanel.inputMethod.simplified === data.initSimplified)
+ }
+
+ for (var inputIndex in data.inputSequence) {
+ verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
+ }
+ waitForRendering(inputPanel)
+
+ if (data.expectedCandidates) {
+ for (var candidateIndex in data.expectedCandidates) {
+ verify(inputPanel.selectionListSearchSuggestion(data.expectedCandidates[candidateIndex]))
+ verify(inputPanel.selectionListSelectCurrentItem())
+ }
+ }
+
+ compare(textInput.text, data.outputText)
+ }
+
function test_hangulInputMethod_data() {
return [
// Test boundaries of the Hangul Jamo BMP plane