diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-15 10:18:22 +0300 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2015-10-27 10:13:51 +0000 |
commit | 81c0d7d4df40c1130a8e7c98411c045b7eafc475 (patch) | |
tree | bee9a753c20b80d6630f39fee86e7758f2aae926 /tests | |
parent | 251a86bd64856c2f48ac62f8f8747ddf21982876 (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.qml | 7 | ||||
-rw-r--r-- | tests/auto/inputpanel/data/tst_inputpanel.qml | 53 |
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 |