122736c2fSopenharmony_ci/* 222736c2fSopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd. 322736c2fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 422736c2fSopenharmony_ci * you may not use this file except in compliance with the License. 522736c2fSopenharmony_ci * You may obtain a copy of the License at 622736c2fSopenharmony_ci * 722736c2fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 822736c2fSopenharmony_ci * 922736c2fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1022736c2fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1122736c2fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1222736c2fSopenharmony_ci * See the License for the specific language governing permissions and 1322736c2fSopenharmony_ci * limitations under the License. 1422736c2fSopenharmony_ci */ 1522736c2fSopenharmony_ci 1622736c2fSopenharmony_ciimport inputMethod from '@ohos.inputMethod'; 1722736c2fSopenharmony_ciimport commonEventManager from '@ohos.commonEventManager'; 1822736c2fSopenharmony_ciimport {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'; 1922736c2fSopenharmony_ciimport { PanelInfo, PanelFlag, PanelType } from '@ohos.inputMethod.Panel'; 2022736c2fSopenharmony_ci 2122736c2fSopenharmony_cidescribe('InputMethodWithAttachTest', function () { 2222736c2fSopenharmony_ci const WAIT_DEAL_OK = 500; 2322736c2fSopenharmony_ci const TEST_RESULT_CODE = 0; 2422736c2fSopenharmony_ci const TEST_FUNCTION = { 2522736c2fSopenharmony_ci INSERT_TEXT_SYNC: 0, 2622736c2fSopenharmony_ci MOVE_CURSOR_SYNC: 1, 2722736c2fSopenharmony_ci GET_ATTRIBUTE_SYNC: 2, 2822736c2fSopenharmony_ci SELECT_BY_RANGE_SYNC: 3, 2922736c2fSopenharmony_ci SELECT_BY_MOVEMENT_SYNC: 4, 3022736c2fSopenharmony_ci GET_INDEX_AT_CURSOR_SYNC: 5, 3122736c2fSopenharmony_ci DELETE_FORWARD_SYNC: 6, 3222736c2fSopenharmony_ci DELETE_BACKWARD_SYNC: 7, 3322736c2fSopenharmony_ci GET_FORWARD_SYNC: 8, 3422736c2fSopenharmony_ci GET_BACKWARD_SYNC: 9, 3522736c2fSopenharmony_ci CHANGE_FLAG_TO_FIXED: 10, 3622736c2fSopenharmony_ci CHANGE_FLAG_TO_FLOATING: 11, 3722736c2fSopenharmony_ci SETPRIVACYMODE_WITHOUT_PERMISSION: 12, 3822736c2fSopenharmony_ci SETPRIVACYMODE_ERROR_PARAM: 13 3922736c2fSopenharmony_ci } 4022736c2fSopenharmony_ci 4122736c2fSopenharmony_ci beforeAll(async function (done) { 4222736c2fSopenharmony_ci console.info('beforeAll called'); 4322736c2fSopenharmony_ci let inputMethodProperty = { 4422736c2fSopenharmony_ci name:'com.example.testIme', 4522736c2fSopenharmony_ci id:'InputMethodExtAbility' 4622736c2fSopenharmony_ci }; 4722736c2fSopenharmony_ci await inputMethod.switchInputMethod(inputMethodProperty); 4822736c2fSopenharmony_ci setTimeout(()=>{ 4922736c2fSopenharmony_ci done(); 5022736c2fSopenharmony_ci }, WAIT_DEAL_OK); 5122736c2fSopenharmony_ci }); 5222736c2fSopenharmony_ci 5322736c2fSopenharmony_ci afterAll(async function () { 5422736c2fSopenharmony_ci console.info('afterAll called'); 5522736c2fSopenharmony_ci let inputMethodSetting = inputMethod.getInputMethodSetting(); 5622736c2fSopenharmony_ci let props = await inputMethodSetting.listInputMethod(); 5722736c2fSopenharmony_ci let bundleName = 'com.example.newTestIme'; 5822736c2fSopenharmony_ci let bundleName1 = 'com.example.testIme'; 5922736c2fSopenharmony_ci for(let i = 0;i< props.length; i++) { 6022736c2fSopenharmony_ci let prop = props[i]; 6122736c2fSopenharmony_ci if(prop.name !== bundleName && prop.name !== bundleName1){ 6222736c2fSopenharmony_ci await inputMethod.switchInputMethod(prop); 6322736c2fSopenharmony_ci } 6422736c2fSopenharmony_ci } 6522736c2fSopenharmony_ci }); 6622736c2fSopenharmony_ci 6722736c2fSopenharmony_ci beforeEach(async function () { 6822736c2fSopenharmony_ci console.info('beforeEach called'); 6922736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 7022736c2fSopenharmony_ci let cfg = { 7122736c2fSopenharmony_ci inputAttribute: 7222736c2fSopenharmony_ci { 7322736c2fSopenharmony_ci textInputType: inputMethod.TextInputType.TEXT, 7422736c2fSopenharmony_ci enterKeyType: inputMethod.EnterKeyType.NONE 7522736c2fSopenharmony_ci } 7622736c2fSopenharmony_ci }; 7722736c2fSopenharmony_ci await inputMethodCtrl.attach(false, cfg); 7822736c2fSopenharmony_ci }); 7922736c2fSopenharmony_ci 8022736c2fSopenharmony_ci afterEach(async function () { 8122736c2fSopenharmony_ci console.info('afterEach called'); 8222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 8322736c2fSopenharmony_ci await inputMethodCtrl.detach(); 8422736c2fSopenharmony_ci }); 8522736c2fSopenharmony_ci 8622736c2fSopenharmony_ci function publishCommonEvent(codeNumber) { 8722736c2fSopenharmony_ci console.info(`[publishCommonEvent] publish event, codeNumber = ${codeNumber}`); 8822736c2fSopenharmony_ci commonEventManager.publish('syncTestFunction', { code: codeNumber }, (err)=>{ 8922736c2fSopenharmony_ci console.info(`inputMethod publish finish, err = ${JSON.stringify(err)}`); 9022736c2fSopenharmony_ci }) 9122736c2fSopenharmony_ci } 9222736c2fSopenharmony_ci 9322736c2fSopenharmony_ci function subscribe(subscribeInfo, functionCode, done) { 9422736c2fSopenharmony_ci commonEventManager.createSubscriber(subscribeInfo).then((data)=>{ 9522736c2fSopenharmony_ci let subscriber = data; 9622736c2fSopenharmony_ci commonEventManager.subscribe(subscriber, (err, eventData)=>{ 9722736c2fSopenharmony_ci console.info("inputMethod subscribe"); 9822736c2fSopenharmony_ci if(eventData.code === TEST_RESULT_CODE) { 9922736c2fSopenharmony_ci expect(true).assertTrue(); 10022736c2fSopenharmony_ci }else{ 10122736c2fSopenharmony_ci expect().assertFail(); 10222736c2fSopenharmony_ci } 10322736c2fSopenharmony_ci commonEventManager.unsubscribe(subscriber); 10422736c2fSopenharmony_ci done(); 10522736c2fSopenharmony_ci }) 10622736c2fSopenharmony_ci publishCommonEvent(functionCode); 10722736c2fSopenharmony_ci }) 10822736c2fSopenharmony_ci } 10922736c2fSopenharmony_ci /* 11022736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_showTextInput_001 11122736c2fSopenharmony_ci * @tc.name Test whether the keyboard is displayed successfully. 11222736c2fSopenharmony_ci * @tc.desc Function test 11322736c2fSopenharmony_ci * @tc.level 2 11422736c2fSopenharmony_ci */ 11522736c2fSopenharmony_ci it('inputmethod_with_attach_test_showTextInput_001', 0, async function (done) { 11622736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_showTextInput_001 Test start*************'); 11722736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 11822736c2fSopenharmony_ci inputMethodCtrl.showTextInput((err) => { 11922736c2fSopenharmony_ci if (err) { 12022736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_showTextInput_001 result: ${JSON.stringify(err)}`); 12122736c2fSopenharmony_ci expect().assertFail(); 12222736c2fSopenharmony_ci done(); 12322736c2fSopenharmony_ci } 12422736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_showTextInput_001 callback success'); 12522736c2fSopenharmony_ci expect(true).assertTrue(); 12622736c2fSopenharmony_ci done(); 12722736c2fSopenharmony_ci }); 12822736c2fSopenharmony_ci }); 12922736c2fSopenharmony_ci 13022736c2fSopenharmony_ci /* 13122736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_showTextInput_002 13222736c2fSopenharmony_ci * @tc.name Test whether the keyboard is displayed successfully. 13322736c2fSopenharmony_ci * @tc.desc Function test 13422736c2fSopenharmony_ci * @tc.level 2 13522736c2fSopenharmony_ci */ 13622736c2fSopenharmony_ci it('inputmethod_with_attach_test_showTextInput_002', 0, async function (done) { 13722736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_showTextInput_002 Test start*************'); 13822736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 13922736c2fSopenharmony_ci inputMethodCtrl.showTextInput().then(() => { 14022736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_showTextInput_002 promise success'); 14122736c2fSopenharmony_ci expect(true).assertTrue(); 14222736c2fSopenharmony_ci done(); 14322736c2fSopenharmony_ci }).catch((error) => { 14422736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_showTextInput_002 result: ${JSON.stringify(error)}`); 14522736c2fSopenharmony_ci expect().assertFail(); 14622736c2fSopenharmony_ci done(); 14722736c2fSopenharmony_ci }); 14822736c2fSopenharmony_ci }); 14922736c2fSopenharmony_ci 15022736c2fSopenharmony_ci /* 15122736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_hideTextInput_001 15222736c2fSopenharmony_ci * @tc.name Test whether the keyboard is hide successfully. 15322736c2fSopenharmony_ci * @tc.desc Function test 15422736c2fSopenharmony_ci * @tc.level 2 15522736c2fSopenharmony_ci */ 15622736c2fSopenharmony_ci it('inputmethod_with_attach_test_hideTextInput_001', 0, async function (done) { 15722736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_hideTextInput_001 Test start*************'); 15822736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 15922736c2fSopenharmony_ci inputMethodCtrl.hideTextInput((err) => { 16022736c2fSopenharmony_ci if (err) { 16122736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_hideTextInput_001 result: ${JSON.stringify(err)}`); 16222736c2fSopenharmony_ci expect().assertFail(); 16322736c2fSopenharmony_ci done(); 16422736c2fSopenharmony_ci return; 16522736c2fSopenharmony_ci } 16622736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_hideTextInput_001 callback success'); 16722736c2fSopenharmony_ci expect(true).assertTrue(); 16822736c2fSopenharmony_ci done(); 16922736c2fSopenharmony_ci }); 17022736c2fSopenharmony_ci }); 17122736c2fSopenharmony_ci 17222736c2fSopenharmony_ci 17322736c2fSopenharmony_ci /* 17422736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_hideTextInput_002 17522736c2fSopenharmony_ci * @tc.name Test whether the keyboard is hide successfully. 17622736c2fSopenharmony_ci * @tc.desc Function test 17722736c2fSopenharmony_ci * @tc.level 2 17822736c2fSopenharmony_ci */ 17922736c2fSopenharmony_ci it('inputmethod_with_attach_test_hideTextInput_002', 0, async function (done) { 18022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_hideTextInput_002 Test start*************'); 18122736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 18222736c2fSopenharmony_ci inputMethodCtrl.hideTextInput().then(() => { 18322736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_hideTextInput_002 promise success'); 18422736c2fSopenharmony_ci expect(true).assertTrue(); 18522736c2fSopenharmony_ci done(); 18622736c2fSopenharmony_ci }).catch((error) => { 18722736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_hideTextInput_002 result: ${JSON.stringify(error)}`); 18822736c2fSopenharmony_ci expect().assertFail(); 18922736c2fSopenharmony_ci done(); 19022736c2fSopenharmony_ci }); 19122736c2fSopenharmony_ci }); 19222736c2fSopenharmony_ci 19322736c2fSopenharmony_ci /* 19422736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_setCallingWindow_001 19522736c2fSopenharmony_ci * @tc.name Test the window ID of the application that the notification system is currently bound to 19622736c2fSopenharmony_ci * the input method. After setting correctly, whether the window where the client is located can avoid 19722736c2fSopenharmony_ci * the input method window. 19822736c2fSopenharmony_ci * @tc.desc Function test 19922736c2fSopenharmony_ci * @tc.level 2 20022736c2fSopenharmony_ci */ 20122736c2fSopenharmony_ci it('inputmethod_with_attach_test_setCallingWindow_001', 0, async function (done) { 20222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_setCallingWindow_001 Test start*************'); 20322736c2fSopenharmony_ci try { 20422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 20522736c2fSopenharmony_ci let windId = 100; 20622736c2fSopenharmony_ci inputMethodCtrl.setCallingWindow(windId, (err) => { 20722736c2fSopenharmony_ci if (err) { 20822736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_setCallingWindow_001 result: ${JSON.stringify(err)}`); 20922736c2fSopenharmony_ci expect().assertFail(); 21022736c2fSopenharmony_ci done(); 21122736c2fSopenharmony_ci } 21222736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_setCallingWindow_001 callback success'); 21322736c2fSopenharmony_ci expect(true).assertTrue(); 21422736c2fSopenharmony_ci done(); 21522736c2fSopenharmony_ci }) 21622736c2fSopenharmony_ci } catch (error) { 21722736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_setCallingWindow_001 result: ${JSON.stringify(error)}`); 21822736c2fSopenharmony_ci expect().assertFail(); 21922736c2fSopenharmony_ci done(); 22022736c2fSopenharmony_ci } 22122736c2fSopenharmony_ci }); 22222736c2fSopenharmony_ci 22322736c2fSopenharmony_ci /* 22422736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_setCallingWindow_002 22522736c2fSopenharmony_ci * @tc.name Test the window ID of the application that the notification system is currently bound to 22622736c2fSopenharmony_ci * the input method. After setting correctly, whether the window where the client is located can avoid 22722736c2fSopenharmony_ci * the input method window. 22822736c2fSopenharmony_ci * @tc.desc Function test 22922736c2fSopenharmony_ci * @tc.level 2 23022736c2fSopenharmony_ci */ 23122736c2fSopenharmony_ci it('inputmethod_with_attach_test_setCallingWindow_002', 0, async function (done) { 23222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_setCallingWindow_002 Test start*************'); 23322736c2fSopenharmony_ci try { 23422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 23522736c2fSopenharmony_ci let windId = 100; 23622736c2fSopenharmony_ci inputMethodCtrl.setCallingWindow(windId).then(() => { 23722736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_setCallingWindow_002 promise success'); 23822736c2fSopenharmony_ci expect(true).assertTrue(); 23922736c2fSopenharmony_ci done(); 24022736c2fSopenharmony_ci }).catch((error) => { 24122736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_setCallingWindow_002 result: ${JSON.stringify(error)}`); 24222736c2fSopenharmony_ci expect().assertFail(); 24322736c2fSopenharmony_ci done(); 24422736c2fSopenharmony_ci }) 24522736c2fSopenharmony_ci } catch (error) { 24622736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_setCallingWindow_002 result: ${JSON.stringify(error)}`); 24722736c2fSopenharmony_ci expect().assertFail(); 24822736c2fSopenharmony_ci done(); 24922736c2fSopenharmony_ci } 25022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_setCallingWindow_002 Test end*************'); 25122736c2fSopenharmony_ci }); 25222736c2fSopenharmony_ci 25322736c2fSopenharmony_ci /* 25422736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_updateCursor_001 25522736c2fSopenharmony_ci * @tc.name Test whether the notification input method is valid when the current application cursor has changed. 25622736c2fSopenharmony_ci * @tc.desc Function test 25722736c2fSopenharmony_ci * @tc.level 2 25822736c2fSopenharmony_ci */ 25922736c2fSopenharmony_ci it('inputmethod_with_attach_test_updateCursor_001', 0, async function (done) { 26022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateCursor_001 Test start*************'); 26122736c2fSopenharmony_ci try { 26222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 26322736c2fSopenharmony_ci let cursorInfo = { left: 100, top: 110, width: 600, height: 800 }; 26422736c2fSopenharmony_ci inputMethodCtrl.updateCursor(cursorInfo, (err) => { 26522736c2fSopenharmony_ci if (err) { 26622736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateCursor_001 result: ${JSON.stringify(err)}`); 26722736c2fSopenharmony_ci expect().assertFail(); 26822736c2fSopenharmony_ci done(); 26922736c2fSopenharmony_ci return; 27022736c2fSopenharmony_ci } 27122736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_updateCursor_001 callback success'); 27222736c2fSopenharmony_ci expect(true).assertTrue(); 27322736c2fSopenharmony_ci done(); 27422736c2fSopenharmony_ci }) 27522736c2fSopenharmony_ci } catch (error) { 27622736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateCursor_001 result: ${JSON.stringify(error)}`); 27722736c2fSopenharmony_ci expect().assertFail(); 27822736c2fSopenharmony_ci done(); 27922736c2fSopenharmony_ci } 28022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateCursor_001 Test end*************'); 28122736c2fSopenharmony_ci }); 28222736c2fSopenharmony_ci 28322736c2fSopenharmony_ci /* 28422736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_updateCursor_002 28522736c2fSopenharmony_ci * @tc.name Test whether the notification input method is valid when the current application cursor has changed. 28622736c2fSopenharmony_ci * @tc.desc Function test 28722736c2fSopenharmony_ci * @tc.level 2 28822736c2fSopenharmony_ci */ 28922736c2fSopenharmony_ci it('inputmethod_with_attach_test_updateCursor_002', 0, async function (done) { 29022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateCursor_002 Test start*************'); 29122736c2fSopenharmony_ci try { 29222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 29322736c2fSopenharmony_ci let cursorInfo = { left: 100, top: 110, width: 600, height: 800 }; 29422736c2fSopenharmony_ci inputMethodCtrl.updateCursor(cursorInfo).then(() => { 29522736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_updateCursor_002 promise success'); 29622736c2fSopenharmony_ci expect(true).assertTrue(); 29722736c2fSopenharmony_ci done(); 29822736c2fSopenharmony_ci }).catch((error) => { 29922736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateCursor_002 result: ${JSON.stringify(error)}`); 30022736c2fSopenharmony_ci expect().assertFail(); 30122736c2fSopenharmony_ci done(); 30222736c2fSopenharmony_ci }) 30322736c2fSopenharmony_ci } catch (error) { 30422736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateCursor_002 result: ${JSON.stringify(error)}`); 30522736c2fSopenharmony_ci expect().assertFail(); 30622736c2fSopenharmony_ci done(); 30722736c2fSopenharmony_ci } 30822736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateCursor_002 Test end*************'); 30922736c2fSopenharmony_ci }); 31022736c2fSopenharmony_ci 31122736c2fSopenharmony_ci /* 31222736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_changeSelection_001 31322736c2fSopenharmony_ci * @tc.name Test whether the selection range of the current application text of the notification input 31422736c2fSopenharmony_ci * method has changed. 31522736c2fSopenharmony_ci * @tc.desc Function test 31622736c2fSopenharmony_ci * @tc.level 2 31722736c2fSopenharmony_ci */ 31822736c2fSopenharmony_ci it('inputmethod_with_attach_test_changeSelection_001', 0, async function (done) { 31922736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_changeSelection_001 Test start*************'); 32022736c2fSopenharmony_ci try { 32122736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 32222736c2fSopenharmony_ci let text = 'text'; 32322736c2fSopenharmony_ci let start = 0; 32422736c2fSopenharmony_ci let end = 5; 32522736c2fSopenharmony_ci inputMethodCtrl.changeSelection(text, start, end, (err) => { 32622736c2fSopenharmony_ci if (err) { 32722736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_changeSelection_001 result: ${JSON.stringify(err)}`); 32822736c2fSopenharmony_ci expect().assertFail(); 32922736c2fSopenharmony_ci done(); 33022736c2fSopenharmony_ci return; 33122736c2fSopenharmony_ci } 33222736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_changeSelection_001 callback success'); 33322736c2fSopenharmony_ci expect(true).assertTrue(); 33422736c2fSopenharmony_ci done(); 33522736c2fSopenharmony_ci }) 33622736c2fSopenharmony_ci } catch (error) { 33722736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_changeSelection_001 result: ${JSON.stringify(error)}`); 33822736c2fSopenharmony_ci expect().assertFail(); 33922736c2fSopenharmony_ci done(); 34022736c2fSopenharmony_ci } 34122736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_changeSelection_001 Test end*************'); 34222736c2fSopenharmony_ci }); 34322736c2fSopenharmony_ci 34422736c2fSopenharmony_ci /* 34522736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_changeSelection_002 34622736c2fSopenharmony_ci * @tc.name Test whether the selection range of the current application text of the notification input 34722736c2fSopenharmony_ci * method has changed. 34822736c2fSopenharmony_ci * @tc.desc Function test 34922736c2fSopenharmony_ci * @tc.level 2 35022736c2fSopenharmony_ci */ 35122736c2fSopenharmony_ci it('inputmethod_with_attach_test_changeSelection_002', 0, async function (done) { 35222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_changeSelection_002 Test start*************'); 35322736c2fSopenharmony_ci try { 35422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 35522736c2fSopenharmony_ci let text = 'text'; 35622736c2fSopenharmony_ci let start = 0; 35722736c2fSopenharmony_ci let end = 5; 35822736c2fSopenharmony_ci inputMethodCtrl.changeSelection(text, start, end).then(() => { 35922736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_changeSelection_002 promise success'); 36022736c2fSopenharmony_ci expect(true).assertTrue(); 36122736c2fSopenharmony_ci done(); 36222736c2fSopenharmony_ci }).catch((error) => { 36322736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_changeSelection_002 result: ${JSON.stringify(error)}`); 36422736c2fSopenharmony_ci expect().assertFail(); 36522736c2fSopenharmony_ci done(); 36622736c2fSopenharmony_ci }) 36722736c2fSopenharmony_ci } catch (error) { 36822736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_changeSelection_002 result: ${JSON.stringify(error)}`); 36922736c2fSopenharmony_ci expect().assertFail(); 37022736c2fSopenharmony_ci done(); 37122736c2fSopenharmony_ci } 37222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_changeSelection_002 Test end*************'); 37322736c2fSopenharmony_ci }); 37422736c2fSopenharmony_ci 37522736c2fSopenharmony_ci /* 37622736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_updateAttribute_001 37722736c2fSopenharmony_ci * @tc.name Test whether the InputAttribute information can be updated successfully. 37822736c2fSopenharmony_ci * @tc.desc Function test 37922736c2fSopenharmony_ci * @tc.level 2 38022736c2fSopenharmony_ci */ 38122736c2fSopenharmony_ci it('inputmethod_with_attach_test_updateAttribute_001', 0, async function (done) { 38222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateAttribute_001 Test start*************'); 38322736c2fSopenharmony_ci try { 38422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 38522736c2fSopenharmony_ci let attribute = { textInputType: inputMethod.TextInputType.TEXT, enterKeyType: inputMethod.EnterKeyType.NONE }; 38622736c2fSopenharmony_ci inputMethodCtrl.updateAttribute(attribute, (err) => { 38722736c2fSopenharmony_ci if (err) { 38822736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateAttribute_001 result: ${JSON.stringify(err)}`); 38922736c2fSopenharmony_ci expect().assertFail(); 39022736c2fSopenharmony_ci done(); 39122736c2fSopenharmony_ci return; 39222736c2fSopenharmony_ci } 39322736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_updateAttribute_001 callback success'); 39422736c2fSopenharmony_ci expect(true).assertTrue(); 39522736c2fSopenharmony_ci done(); 39622736c2fSopenharmony_ci }) 39722736c2fSopenharmony_ci } catch (error) { 39822736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateAttribute_001 result: ${JSON.stringify(error)}`); 39922736c2fSopenharmony_ci expect().assertFail(); 40022736c2fSopenharmony_ci done(); 40122736c2fSopenharmony_ci } 40222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateAttribute_001 Test end*************'); 40322736c2fSopenharmony_ci }); 40422736c2fSopenharmony_ci 40522736c2fSopenharmony_ci /* 40622736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_updateAttribute_001 40722736c2fSopenharmony_ci * @tc.name Test whether the InputAttribute information can be updated successfully. 40822736c2fSopenharmony_ci * @tc.desc Function test 40922736c2fSopenharmony_ci * @tc.level 2 41022736c2fSopenharmony_ci */ 41122736c2fSopenharmony_ci it('inputmethod_with_attach_test_updateAttribute_001', 0, async function (done) { 41222736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateAttribute_001 Test start*************'); 41322736c2fSopenharmony_ci try { 41422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 41522736c2fSopenharmony_ci let attribute = { textInputType: 1, enterKeyType: 1 }; 41622736c2fSopenharmony_ci inputMethodCtrl.updateAttribute(attribute).then(() => { 41722736c2fSopenharmony_ci console.info('inputmethod_with_attach_test_updateAttribute_001 promise success'); 41822736c2fSopenharmony_ci expect(true).assertTrue(); 41922736c2fSopenharmony_ci done(); 42022736c2fSopenharmony_ci }).catch((error) => { 42122736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateAttribute_001 result: ${JSON.stringify(error)}`); 42222736c2fSopenharmony_ci expect().assertFail(); 42322736c2fSopenharmony_ci done(); 42422736c2fSopenharmony_ci }) 42522736c2fSopenharmony_ci } catch (error) { 42622736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_updateAttribute_001 result: ${JSON.stringify(error)}`); 42722736c2fSopenharmony_ci expect().assertFail(); 42822736c2fSopenharmony_ci done(); 42922736c2fSopenharmony_ci } 43022736c2fSopenharmony_ci console.info('************* inputmethod_with_attach_test_updateAttribute_001 Test end*************'); 43122736c2fSopenharmony_ci }); 43222736c2fSopenharmony_ci 43322736c2fSopenharmony_ci /* 43422736c2fSopenharmony_ci * @tc.number inputmethod_test_showSoftKeyboard_001 43522736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will show softboard with callback. 43622736c2fSopenharmony_ci * @tc.desc Function test 43722736c2fSopenharmony_ci * @tc.level 2 43822736c2fSopenharmony_ci */ 43922736c2fSopenharmony_ci it('inputmethod_test_showSoftKeyboard_001', 0, async function (done) { 44022736c2fSopenharmony_ci console.info('************* inputmethod_test_showSoftKeyboard_001 Test start*************'); 44122736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getInputMethodController(); 44222736c2fSopenharmony_ci inputMethodCtrl.showSoftKeyboard((err)=>{ 44322736c2fSopenharmony_ci if (err) { 44422736c2fSopenharmony_ci console.info(`inputmethod_test_showSoftKeyboard_001 err, ${JSON.stringify(err.message)}`); 44522736c2fSopenharmony_ci expect().assertFail(); 44622736c2fSopenharmony_ci done(); 44722736c2fSopenharmony_ci } 44822736c2fSopenharmony_ci console.info('************* inputmethod_test_showSoftKeyboard_001 Test end*************'); 44922736c2fSopenharmony_ci expect(true).assertTrue(); 45022736c2fSopenharmony_ci done(); 45122736c2fSopenharmony_ci }); 45222736c2fSopenharmony_ci }); 45322736c2fSopenharmony_ci 45422736c2fSopenharmony_ci /* 45522736c2fSopenharmony_ci * @tc.number inputmethod_test_showSoftKeyboard_002 45622736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will show softboard with callback. 45722736c2fSopenharmony_ci * @tc.desc Function test 45822736c2fSopenharmony_ci * @tc.level 2 45922736c2fSopenharmony_ci */ 46022736c2fSopenharmony_ci it('inputmethod_test_showSoftKeyboard_002', 0, async function (done) { 46122736c2fSopenharmony_ci console.info('************* inputmethod_test_showSoftKeyboard_002 Test start*************'); 46222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getInputMethodController(); 46322736c2fSopenharmony_ci inputMethodCtrl.showSoftKeyboard().then(()=>{ 46422736c2fSopenharmony_ci console.info('inputmethod_test_showSoftKeyboard_002 success.'); 46522736c2fSopenharmony_ci expect(true).assertTrue(); 46622736c2fSopenharmony_ci done(); 46722736c2fSopenharmony_ci }).catch((err) => { 46822736c2fSopenharmony_ci console.info(`inputmethod_test_showSoftKeyboard_002 err, ${JSON.stringify(err.message)}`); 46922736c2fSopenharmony_ci expect().assertFail(); 47022736c2fSopenharmony_ci done(); 47122736c2fSopenharmony_ci }); 47222736c2fSopenharmony_ci }); 47322736c2fSopenharmony_ci 47422736c2fSopenharmony_ci /* 47522736c2fSopenharmony_ci * @tc.number inputmethod_test_hideSoftKeyboard_001 47622736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will hide softboard with callback. 47722736c2fSopenharmony_ci * @tc.desc Function test 47822736c2fSopenharmony_ci * @tc.level 2 47922736c2fSopenharmony_ci */ 48022736c2fSopenharmony_ci it('inputmethod_test_hideSoftKeyboard_001', 0, async function (done) { 48122736c2fSopenharmony_ci console.info('************* inputmethod_test_hideSoftKeyboard_001 Test start*************'); 48222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getInputMethodController(); 48322736c2fSopenharmony_ci inputMethodCtrl.hideSoftKeyboard((err)=>{ 48422736c2fSopenharmony_ci if(err){ 48522736c2fSopenharmony_ci console.info(`inputmethod_test_hideSoftKeyboard_001 err, ${JSON.stringify(err.message)}`); 48622736c2fSopenharmony_ci expect().assertFail(); 48722736c2fSopenharmony_ci done(); 48822736c2fSopenharmony_ci } 48922736c2fSopenharmony_ci console.info('************* inputmethod_test_hideSoftKeyboard_001 Test end*************'); 49022736c2fSopenharmony_ci expect(true).assertTrue(); 49122736c2fSopenharmony_ci done(); 49222736c2fSopenharmony_ci }); 49322736c2fSopenharmony_ci }); 49422736c2fSopenharmony_ci 49522736c2fSopenharmony_ci /* 49622736c2fSopenharmony_ci * @tc.number inputmethod_test_hideSoftKeyboard_001 49722736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will hide softboard with callback. 49822736c2fSopenharmony_ci * @tc.desc Function test 49922736c2fSopenharmony_ci * @tc.level 2 50022736c2fSopenharmony_ci */ 50122736c2fSopenharmony_ci it('inputmethod_test_hideSoftKeyboard_002', 0, async function (done) { 50222736c2fSopenharmony_ci console.info('************* inputmethod_test_hideSoftKeyboard_002 Test start*************'); 50322736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getInputMethodController(); 50422736c2fSopenharmony_ci inputMethodCtrl.hideSoftKeyboard().then(()=>{ 50522736c2fSopenharmony_ci console.info('inputmethod_test_hideSoftKeyboard_002 success.'); 50622736c2fSopenharmony_ci expect(true).assertTrue(); 50722736c2fSopenharmony_ci done(); 50822736c2fSopenharmony_ci }).catch((err) => { 50922736c2fSopenharmony_ci console.info(`inputmethod_test_hideSoftKeyboard_002 err, ${JSON.stringify(err.message)}`); 51022736c2fSopenharmony_ci expect().assertFail(); 51122736c2fSopenharmony_ci done(); 51222736c2fSopenharmony_ci }); 51322736c2fSopenharmony_ci }); 51422736c2fSopenharmony_ci 51522736c2fSopenharmony_ci /* 51622736c2fSopenharmony_ci * @tc.number inputmethod_test_stopInputSessionWithAttach_001 51722736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will hides the keyboard. 51822736c2fSopenharmony_ci * @tc.desc Function test 51922736c2fSopenharmony_ci * @tc.level 2 52022736c2fSopenharmony_ci */ 52122736c2fSopenharmony_ci it('inputmethod_test_stopInputSessionWithAttach_001', 0, function (done) { 52222736c2fSopenharmony_ci console.info('************* inputmethod_test_stopInputSessionWithAttach_001 Test start*************'); 52322736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 52422736c2fSopenharmony_ci inputMethodCtrl.stopInputSession((err, ret) => { 52522736c2fSopenharmony_ci if (err) { 52622736c2fSopenharmony_ci console.info(`inputmethod_test_stopInputSessionWithAttach_001 err, ${JSON.stringify(err.message)}`); 52722736c2fSopenharmony_ci expect().assertFail(); 52822736c2fSopenharmony_ci done(); 52922736c2fSopenharmony_ci return; 53022736c2fSopenharmony_ci } 53122736c2fSopenharmony_ci expect(ret).assertTrue(); 53222736c2fSopenharmony_ci console.info('************* inputmethod_test_stopInputSessionWithAttach_001 Test end*************'); 53322736c2fSopenharmony_ci done(); 53422736c2fSopenharmony_ci }); 53522736c2fSopenharmony_ci }); 53622736c2fSopenharmony_ci 53722736c2fSopenharmony_ci /* 53822736c2fSopenharmony_ci * @tc.number inputmethod_test_stopInputSessionWithAttach_002 53922736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will hides the keyboard. 54022736c2fSopenharmony_ci * @tc.desc Function test 54122736c2fSopenharmony_ci * @tc.level 2 54222736c2fSopenharmony_ci */ 54322736c2fSopenharmony_ci it('inputmethod_test_stopInputSessionWithAttach_002', 0, function (done) { 54422736c2fSopenharmony_ci console.info('************* inputmethod_test_stopInputSessionWithAttach_002 Test start*************'); 54522736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 54622736c2fSopenharmony_ci inputMethodCtrl.hideSoftKeyboard().then((result)=>{ 54722736c2fSopenharmony_ci if (result) { 54822736c2fSopenharmony_ci console.info('inputmethod_test_stopInputSessionWithAttach_002 failed.'); 54922736c2fSopenharmony_ci expect().assertFail(); 55022736c2fSopenharmony_ci done(); 55122736c2fSopenharmony_ci } 55222736c2fSopenharmony_ci console.info('inputmethod_test_stopInputSessionWithAttach_002 success.'); 55322736c2fSopenharmony_ci expect(true).assertTrue(); 55422736c2fSopenharmony_ci done(); 55522736c2fSopenharmony_ci }).catch((err) => { 55622736c2fSopenharmony_ci console.info(`inputmethod_test_stopInputSessionWithAttach_002 err, ${JSON.stringify(err.message)}`); 55722736c2fSopenharmony_ci expect().assertFail(); 55822736c2fSopenharmony_ci done(); 55922736c2fSopenharmony_ci }); 56022736c2fSopenharmony_ci }); 56122736c2fSopenharmony_ci 56222736c2fSopenharmony_ci /* 56322736c2fSopenharmony_ci * @tc.number inputmethod_with_attach_test_on_000 56422736c2fSopenharmony_ci * @tc.name Test whether the register the callback of the input method is valid. 56522736c2fSopenharmony_ci * @tc.desc Function test 56622736c2fSopenharmony_ci * @tc.level 2 56722736c2fSopenharmony_ci */ 56822736c2fSopenharmony_ci it('inputmethod_with_attach_test_on_000', 0, async function (done) { 56922736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 57022736c2fSopenharmony_ci try { 57122736c2fSopenharmony_ci inputMethodCtrl.on('insertText', (text) => { 57222736c2fSopenharmony_ci console.info(`inputMethod insertText success, text: ${JSON.stringify(text)}`); 57322736c2fSopenharmony_ci }); 57422736c2fSopenharmony_ci inputMethodCtrl.on('deleteLeft', (length) => { 57522736c2fSopenharmony_ci console.info(`inputMethod deleteLeft success, length: ${JSON.stringify(length)}`); 57622736c2fSopenharmony_ci }); 57722736c2fSopenharmony_ci inputMethodCtrl.on('deleteRight', (length) => { 57822736c2fSopenharmony_ci console.info(`inputMethod deleteRight success, length: ${JSON.stringify(length)}`); 57922736c2fSopenharmony_ci }); 58022736c2fSopenharmony_ci inputMethodCtrl.on('sendKeyboardStatus', (keyBoardStatus) => { 58122736c2fSopenharmony_ci console.info(`inputMethod sendKeyboardStatus success, keyBoardStatus: ${JSON.stringify(keyBoardStatus)}`); 58222736c2fSopenharmony_ci }); 58322736c2fSopenharmony_ci inputMethodCtrl.on('sendFunctionKey', (functionKey) => { 58422736c2fSopenharmony_ci console.info(`inputMethod sendFunctionKey success, 58522736c2fSopenharmony_ci functionKey.enterKeyType: ${JSON.stringify(functionKey.enterKeyType)}`); 58622736c2fSopenharmony_ci }); 58722736c2fSopenharmony_ci inputMethodCtrl.on('moveCursor', (direction) => { 58822736c2fSopenharmony_ci console.info(`inputMethod moveCursor success, direction: ${JSON.stringify(direction)}`); 58922736c2fSopenharmony_ci }); 59022736c2fSopenharmony_ci inputMethodCtrl.on('handleExtendAction', (action) => { 59122736c2fSopenharmony_ci console.info(`inputMethod handleExtendAction success, action: ${JSON.stringify(action)}`); 59222736c2fSopenharmony_ci }); 59322736c2fSopenharmony_ci expect(true).assertTrue(); 59422736c2fSopenharmony_ci done(); 59522736c2fSopenharmony_ci } catch(error) { 59622736c2fSopenharmony_ci console.info(`inputmethod_with_attach_test_on_000 result: ${JSON.stringify(error)}`); 59722736c2fSopenharmony_ci expect().assertFail(); 59822736c2fSopenharmony_ci done(); 59922736c2fSopenharmony_ci } 60022736c2fSopenharmony_ci }); 60122736c2fSopenharmony_ci 60222736c2fSopenharmony_ci /* 60322736c2fSopenharmony_ci * @tc.number inputmethod_test_insertTextSync_001 60422736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 60522736c2fSopenharmony_ci * @tc.desc Function test 60622736c2fSopenharmony_ci * @tc.level 2 60722736c2fSopenharmony_ci */ 60822736c2fSopenharmony_ci it('inputmethod_test_insertTextSync_001', 0, async function (done) { 60922736c2fSopenharmony_ci console.info('************* inputmethod_test_insertTextSync_001 Test start*************'); 61022736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 61122736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 61222736c2fSopenharmony_ci try { 61322736c2fSopenharmony_ci inputMethodCtrl.on('insertText', (text) => { 61422736c2fSopenharmony_ci console.info(`inputMethod insertText success, text: ${JSON.stringify(text)}`); 61522736c2fSopenharmony_ci expect(true).assertTrue(); 61622736c2fSopenharmony_ci done(); 61722736c2fSopenharmony_ci }); 61822736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.INSERT_TEXT_SYNC); 61922736c2fSopenharmony_ci } catch(error) { 62022736c2fSopenharmony_ci console.info(`inputmethod_test_insertTextSync result: ${JSON.stringify(error)}`); 62122736c2fSopenharmony_ci expect().assertFail(); 62222736c2fSopenharmony_ci done(); 62322736c2fSopenharmony_ci } 62422736c2fSopenharmony_ci }); 62522736c2fSopenharmony_ci 62622736c2fSopenharmony_ci /* 62722736c2fSopenharmony_ci * @tc.number inputmethod_test_moveCursorSync_001 62822736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 62922736c2fSopenharmony_ci * @tc.desc Function test 63022736c2fSopenharmony_ci * @tc.level 2 63122736c2fSopenharmony_ci */ 63222736c2fSopenharmony_ci it('inputmethod_test_moveCursorSync_001', 0, async function (done) { 63322736c2fSopenharmony_ci console.info('************* inputmethod_test_moveCursorSync_001 Test start*************'); 63422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 63522736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 63622736c2fSopenharmony_ci try { 63722736c2fSopenharmony_ci inputMethodCtrl.on('moveCursor', (direction) => { 63822736c2fSopenharmony_ci console.info(`inputMethod moveCursor success, direction: ${direction}`); 63922736c2fSopenharmony_ci expect(true).assertTrue(); 64022736c2fSopenharmony_ci done(); 64122736c2fSopenharmony_ci }); 64222736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.MOVE_CURSOR_SYNC); 64322736c2fSopenharmony_ci } catch(error) { 64422736c2fSopenharmony_ci console.info(`inputmethod_text_moveCursorSync result: ${JSON.stringify(error)}`); 64522736c2fSopenharmony_ci expect().assertFail(); 64622736c2fSopenharmony_ci done(); 64722736c2fSopenharmony_ci } 64822736c2fSopenharmony_ci }); 64922736c2fSopenharmony_ci 65022736c2fSopenharmony_ci /* 65122736c2fSopenharmony_ci * @tc.number inputmethod_test_getEditorAttributeSync_001 65222736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 65322736c2fSopenharmony_ci * @tc.desc Function test 65422736c2fSopenharmony_ci * @tc.level 2 65522736c2fSopenharmony_ci */ 65622736c2fSopenharmony_ci it('inputmethod_test_getEditorAttributeSync_001', 0, async function (done) { 65722736c2fSopenharmony_ci console.info('************* inputmethod_test_getEditorAttributeSync_001 Test start*************'); 65822736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 65922736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 66022736c2fSopenharmony_ci try { 66122736c2fSopenharmony_ci let subscribeInfo = { 66222736c2fSopenharmony_ci events: ['getEditorAttributeSyncResult'] 66322736c2fSopenharmony_ci }; 66422736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.GET_ATTRIBUTE_SYNC, done); 66522736c2fSopenharmony_ci } catch(error) { 66622736c2fSopenharmony_ci console.info(`inputmethod_test_getEditorAttributeSync_001 result: ${JSON.stringify(error)}`); 66722736c2fSopenharmony_ci expect().assertFail(); 66822736c2fSopenharmony_ci done(); 66922736c2fSopenharmony_ci } 67022736c2fSopenharmony_ci }); 67122736c2fSopenharmony_ci 67222736c2fSopenharmony_ci /* 67322736c2fSopenharmony_ci * @tc.number inputmethod_test_SelectByRangeSync_001 67422736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 67522736c2fSopenharmony_ci * @tc.desc Function test 67622736c2fSopenharmony_ci * @tc.level 2 67722736c2fSopenharmony_ci */ 67822736c2fSopenharmony_ci it('inputmethod_test_selectByRangeSync_001', 0, async function (done) { 67922736c2fSopenharmony_ci console.info('************* inputmethod_test_selectByRangeSync_001 Test start*************'); 68022736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 68122736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 68222736c2fSopenharmony_ci try { 68322736c2fSopenharmony_ci inputMethodCtrl.on('selectByRange', (range) => { 68422736c2fSopenharmony_ci console.info(`inputMethod selectByRangeSync success, direction: ${range}`); 68522736c2fSopenharmony_ci expect(true).assertTrue(); 68622736c2fSopenharmony_ci done(); 68722736c2fSopenharmony_ci }); 68822736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.SELECT_BY_RANGE_SYNC); 68922736c2fSopenharmony_ci } catch(error) { 69022736c2fSopenharmony_ci console.info(`inputmethod_text_selectByRangeSync result: ${JSON.stringify(error)}`); 69122736c2fSopenharmony_ci expect().assertFail(); 69222736c2fSopenharmony_ci done(); 69322736c2fSopenharmony_ci } 69422736c2fSopenharmony_ci }); 69522736c2fSopenharmony_ci 69622736c2fSopenharmony_ci /* 69722736c2fSopenharmony_ci * @tc.number inputmethod_test_selectByMovementSync_001 69822736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 69922736c2fSopenharmony_ci * @tc.desc Function test 70022736c2fSopenharmony_ci * @tc.level 2 70122736c2fSopenharmony_ci */ 70222736c2fSopenharmony_ci it('inputmethod_test_selectByMovementSync_001', 0, async function (done) { 70322736c2fSopenharmony_ci console.info('************* inputmethod_test_selectByMovementSync_001 Test start*************'); 70422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 70522736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 70622736c2fSopenharmony_ci try { 70722736c2fSopenharmony_ci inputMethodCtrl.on('selectByMovement', (movement) => { 70822736c2fSopenharmony_ci console.info(`inputMethod selectByMovementSync success, movement: ${movement}`); 70922736c2fSopenharmony_ci expect(true).assertTrue(); 71022736c2fSopenharmony_ci done(); 71122736c2fSopenharmony_ci }); 71222736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.SELECT_BY_MOVEMENT_SYNC); 71322736c2fSopenharmony_ci } catch(error) { 71422736c2fSopenharmony_ci console.info(`inputmethod_text_selectByMovementSync result: ${JSON.stringify(error)}`); 71522736c2fSopenharmony_ci expect().assertFail(); 71622736c2fSopenharmony_ci done(); 71722736c2fSopenharmony_ci } 71822736c2fSopenharmony_ci }); 71922736c2fSopenharmony_ci 72022736c2fSopenharmony_ci /* 72122736c2fSopenharmony_ci * @tc.number inputmethod_test_selectByMovementSync_001 72222736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 72322736c2fSopenharmony_ci * @tc.desc Function test 72422736c2fSopenharmony_ci * @tc.level 2 72522736c2fSopenharmony_ci */ 72622736c2fSopenharmony_ci it('inputmethod_test_getTextIndexAtCursorSync_001', 0, async function (done) { 72722736c2fSopenharmony_ci console.info('************* inputmethod_test_getTextIndexAtCursorSync_001 Test start*************'); 72822736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 72922736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 73022736c2fSopenharmony_ci try { 73122736c2fSopenharmony_ci inputMethodCtrl.on('getTextIndexAtCursor', () => { 73222736c2fSopenharmony_ci console.info(`inputMethod getTextIndexAtCursor success`); 73322736c2fSopenharmony_ci return 2; 73422736c2fSopenharmony_ci }); 73522736c2fSopenharmony_ci let subscribeInfo = { 73622736c2fSopenharmony_ci events: ['getTextIndexAtCursorSyncResult'] 73722736c2fSopenharmony_ci }; 73822736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.GET_INDEX_AT_CURSOR_SYNC, done); 73922736c2fSopenharmony_ci } catch(error) { 74022736c2fSopenharmony_ci console.info(`inputmethod_test_getTextIndexAtCursorSync_001 result: ${JSON.stringify(error)}`); 74122736c2fSopenharmony_ci expect().assertFail(); 74222736c2fSopenharmony_ci done(); 74322736c2fSopenharmony_ci } 74422736c2fSopenharmony_ci }); 74522736c2fSopenharmony_ci 74622736c2fSopenharmony_ci /* 74722736c2fSopenharmony_ci * @tc.number inputmethod_test_deleteForwardSync_001 74822736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 74922736c2fSopenharmony_ci * @tc.desc Function test 75022736c2fSopenharmony_ci * @tc.level 2 75122736c2fSopenharmony_ci */ 75222736c2fSopenharmony_ci it('inputmethod_test_deleteForwardSync_001', 0, async function (done) { 75322736c2fSopenharmony_ci console.info('************* inputmethod_test_deleteForwardSync_001 Test start*************'); 75422736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 75522736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 75622736c2fSopenharmony_ci try { 75722736c2fSopenharmony_ci inputMethodCtrl.on('deleteLeft', (length) => { 75822736c2fSopenharmony_ci console.info(`inputMethod deleteForwardSync success, length: ${length}`); 75922736c2fSopenharmony_ci expect(true).assertTrue(); 76022736c2fSopenharmony_ci done(); 76122736c2fSopenharmony_ci }); 76222736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.DELETE_FORWARD_SYNC); 76322736c2fSopenharmony_ci } catch(error) { 76422736c2fSopenharmony_ci console.info(`inputmethod_text_deleteForwardSync result: ${JSON.stringify(error)}`); 76522736c2fSopenharmony_ci expect().assertFail(); 76622736c2fSopenharmony_ci done(); 76722736c2fSopenharmony_ci } 76822736c2fSopenharmony_ci }); 76922736c2fSopenharmony_ci 77022736c2fSopenharmony_ci /* 77122736c2fSopenharmony_ci * @tc.number inputmethod_test_deleteBackwardSync_001 77222736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 77322736c2fSopenharmony_ci * @tc.desc Function test 77422736c2fSopenharmony_ci * @tc.level 2 77522736c2fSopenharmony_ci */ 77622736c2fSopenharmony_ci it('inputmethod_test_deleteBackwardSync_001', 0, async function (done) { 77722736c2fSopenharmony_ci console.info('************* inputmethod_test_deleteBackwardSync_001 Test start*************'); 77822736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 77922736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 78022736c2fSopenharmony_ci try { 78122736c2fSopenharmony_ci inputMethodCtrl.on('deleteRight', (length) => { 78222736c2fSopenharmony_ci console.info(`inputMethod deleteBackwardSync success, length: ${length}`); 78322736c2fSopenharmony_ci expect(true).assertTrue(); 78422736c2fSopenharmony_ci done(); 78522736c2fSopenharmony_ci }); 78622736c2fSopenharmony_ci publishCommonEvent(TEST_FUNCTION.DELETE_BACKWARD_SYNC); 78722736c2fSopenharmony_ci } catch(error) { 78822736c2fSopenharmony_ci console.info(`inputmethod_text_deleteBackwardSync result: ${JSON.stringify(error)}`); 78922736c2fSopenharmony_ci expect().assertFail(); 79022736c2fSopenharmony_ci done(); 79122736c2fSopenharmony_ci } 79222736c2fSopenharmony_ci }); 79322736c2fSopenharmony_ci 79422736c2fSopenharmony_ci /* 79522736c2fSopenharmony_ci * @tc.number inputmethod_test_getForwardSync_001 79622736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 79722736c2fSopenharmony_ci * @tc.desc Function test 79822736c2fSopenharmony_ci * @tc.level 2 79922736c2fSopenharmony_ci */ 80022736c2fSopenharmony_ci it('inputmethod_test_getForwardSync_001', 0, async function (done) { 80122736c2fSopenharmony_ci console.info('************* inputmethod_test_getForwardSync_001 Test start*************'); 80222736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 80322736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 80422736c2fSopenharmony_ci try { 80522736c2fSopenharmony_ci inputMethodCtrl.on('getLeftTextOfCursor', (length) => { 80622736c2fSopenharmony_ci console.info(`inputMethod getForwardSync success, length: ${length}`); 80722736c2fSopenharmony_ci return 'getLeftTextOfCursor'; 80822736c2fSopenharmony_ci }); 80922736c2fSopenharmony_ci let subscribeInfo = { 81022736c2fSopenharmony_ci events: ['getForwardSyncResult'] 81122736c2fSopenharmony_ci }; 81222736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.GET_FORWARD_SYNC, done); 81322736c2fSopenharmony_ci } catch(error) { 81422736c2fSopenharmony_ci console.info(`inputmethod_text_getForwardSync result: ${JSON.stringify(error)}`); 81522736c2fSopenharmony_ci expect().assertFail(); 81622736c2fSopenharmony_ci done(); 81722736c2fSopenharmony_ci } 81822736c2fSopenharmony_ci }); 81922736c2fSopenharmony_ci /* 82022736c2fSopenharmony_ci * @tc.number inputmethod_test_getBackwardSync_001 82122736c2fSopenharmony_ci * @tc.name Test Indicates the input method which will replace the current one. 82222736c2fSopenharmony_ci * @tc.desc Function test 82322736c2fSopenharmony_ci * @tc.level 2 82422736c2fSopenharmony_ci */ 82522736c2fSopenharmony_ci it('inputmethod_test_getBackwardSync_001', 0, async function (done) { 82622736c2fSopenharmony_ci console.info('************* inputmethod_test_getBackwardSync_001 Test start*************'); 82722736c2fSopenharmony_ci let inputMethodCtrl = inputMethod.getController(); 82822736c2fSopenharmony_ci await inputMethodCtrl.showSoftKeyboard(); 82922736c2fSopenharmony_ci try { 83022736c2fSopenharmony_ci inputMethodCtrl.on('getRightTextOfCursor', (length) => { 83122736c2fSopenharmony_ci console.info(`inputMethod getBackwardSync success, length: ${length}`); 83222736c2fSopenharmony_ci return 'getRightTextOfCursor'; 83322736c2fSopenharmony_ci }); 83422736c2fSopenharmony_ci let subscribeInfo = { 83522736c2fSopenharmony_ci events: ['getBackwardSyncResult'] 83622736c2fSopenharmony_ci }; 83722736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.GET_BACKWARD_SYNC, done); 83822736c2fSopenharmony_ci } catch(error) { 83922736c2fSopenharmony_ci console.info(`inputmethod_text_getBackwardSync result: ${JSON.stringify(error)}`); 84022736c2fSopenharmony_ci expect().assertFail(); 84122736c2fSopenharmony_ci done(); 84222736c2fSopenharmony_ci } 84322736c2fSopenharmony_ci }); 84422736c2fSopenharmony_ci 84522736c2fSopenharmony_ci /* 84622736c2fSopenharmony_ci * @tc.number inputmethod_test_isPanelShown_001 84722736c2fSopenharmony_ci * @tc.name Test Indicates querying by isPanelShown. 84822736c2fSopenharmony_ci * @tc.desc Function test 84922736c2fSopenharmony_ci * @tc.level 2 85022736c2fSopenharmony_ci */ 85122736c2fSopenharmony_ci it('inputmethod_test_isPanelShown_001', 0, async function (done) { 85222736c2fSopenharmony_ci console.info('************* inputmethod_test_isPanelShown_001 Test start*************'); 85322736c2fSopenharmony_ci try { 85422736c2fSopenharmony_ci let cfg = { 85522736c2fSopenharmony_ci inputAttribute: 85622736c2fSopenharmony_ci { 85722736c2fSopenharmony_ci textInputType: inputMethod.TextInputType.TEXT, 85822736c2fSopenharmony_ci enterKeyType: inputMethod.EnterKeyType.NONE 85922736c2fSopenharmony_ci } 86022736c2fSopenharmony_ci }; 86122736c2fSopenharmony_ci await inputMethod.getController().attach(true, cfg); 86222736c2fSopenharmony_ci setTimeout(()=>{ 86322736c2fSopenharmony_ci let result = inputMethod.getSetting().isPanelShown({type: PanelType.SOFT_KEYBOARD}); 86422736c2fSopenharmony_ci if (result) { 86522736c2fSopenharmony_ci expect(true).assertTrue(); 86622736c2fSopenharmony_ci } else { 86722736c2fSopenharmony_ci expect().assertFail(); 86822736c2fSopenharmony_ci } 86922736c2fSopenharmony_ci done(); 87022736c2fSopenharmony_ci }, WAIT_DEAL_OK); 87122736c2fSopenharmony_ci } catch (error) { 87222736c2fSopenharmony_ci console.info(`inputmethod_test_isPanelShown_001 result: ${JSON.stringify(error)}`); 87322736c2fSopenharmony_ci expect().assertFail(); 87422736c2fSopenharmony_ci done(); 87522736c2fSopenharmony_ci } 87622736c2fSopenharmony_ci }); 87722736c2fSopenharmony_ci 87822736c2fSopenharmony_ci /* 87922736c2fSopenharmony_ci * @tc.number inputmethod_test_isPanelShown_002 88022736c2fSopenharmony_ci * @tc.name Test Indicates querying by isPanelShown. 88122736c2fSopenharmony_ci * @tc.desc Function test 88222736c2fSopenharmony_ci * @tc.level 2 88322736c2fSopenharmony_ci */ 88422736c2fSopenharmony_ci it('inputmethod_test_isPanelShown_002', 0, async function (done) { 88522736c2fSopenharmony_ci console.info('************* inputmethod_test_isPanelShown_002 Test start*************'); 88622736c2fSopenharmony_ci try { 88722736c2fSopenharmony_ci let subscribeInfo = { 88822736c2fSopenharmony_ci events: ['changeFlag'] 88922736c2fSopenharmony_ci }; 89022736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.CHANGE_FLAG_TO_FLOATING, () => { 89122736c2fSopenharmony_ci let result = inputMethod.getSetting().isPanelShown({ 89222736c2fSopenharmony_ci type: PanelType.SOFT_KEYBOARD, 89322736c2fSopenharmony_ci flag: PanelFlag.FLAG_FLOATING 89422736c2fSopenharmony_ci }); 89522736c2fSopenharmony_ci if (result) { 89622736c2fSopenharmony_ci expect(true).assertTrue(); 89722736c2fSopenharmony_ci } else { 89822736c2fSopenharmony_ci expect().assertFail(); 89922736c2fSopenharmony_ci } 90022736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.CHANGE_FLAG_TO_FIXED, done); 90122736c2fSopenharmony_ci }); 90222736c2fSopenharmony_ci } catch (error) { 90322736c2fSopenharmony_ci console.info(`inputmethod_test_isPanelShown_002 result: ${JSON.stringify(error)}`); 90422736c2fSopenharmony_ci expect().assertFail(); 90522736c2fSopenharmony_ci done(); 90622736c2fSopenharmony_ci } 90722736c2fSopenharmony_ci }); 90822736c2fSopenharmony_ci 90922736c2fSopenharmony_ci /* 91022736c2fSopenharmony_ci * @tc.number inputmethod_test_setPrivacyModeWithoutPermission_001 91122736c2fSopenharmony_ci * @tc.name Test Indicates set panel privacy mode without permission. 91222736c2fSopenharmony_ci * @tc.desc Function test 91322736c2fSopenharmony_ci * @tc.level 2 91422736c2fSopenharmony_ci */ 91522736c2fSopenharmony_ci it('inputmethod_test_setPrivacyModeWithoutPermission_001', 0, async function (done) { 91622736c2fSopenharmony_ci console.info('************* inputmethod_test_setPrivacyModeWithoutPermission_001 Test start*************'); 91722736c2fSopenharmony_ci try { 91822736c2fSopenharmony_ci let subscribeInfo = { 91922736c2fSopenharmony_ci events: ['setPrivacyModeWithoutPermissionResult'] 92022736c2fSopenharmony_ci }; 92122736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.SETPRIVACYMODE_WITHOUT_PERMISSION, done); 92222736c2fSopenharmony_ci } catch(error) { 92322736c2fSopenharmony_ci console.info(`inputmethod_test_setPrivacyModeWithoutPermission_001 result: ${JSON.stringify(error)}`); 92422736c2fSopenharmony_ci expect().assertFail(); 92522736c2fSopenharmony_ci done(); 92622736c2fSopenharmony_ci } 92722736c2fSopenharmony_ci }); 92822736c2fSopenharmony_ci 92922736c2fSopenharmony_ci /* 93022736c2fSopenharmony_ci * @tc.number inputmethod_test_setPrivacyModeErrorParam_001 93122736c2fSopenharmony_ci * @tc.name Test Indicates set panel privacy mode with undefined param. 93222736c2fSopenharmony_ci * @tc.desc Function test 93322736c2fSopenharmony_ci * @tc.level 2 93422736c2fSopenharmony_ci */ 93522736c2fSopenharmony_ci it('inputmethod_test_setPrivacyModeErrorParam_001', 0, async function (done) { 93622736c2fSopenharmony_ci console.info('************* inputmethod_test_setPrivacyModeErrorParam_001 Test start*************'); 93722736c2fSopenharmony_ci try { 93822736c2fSopenharmony_ci let subscribeInfo = { 93922736c2fSopenharmony_ci events: ['setPrivacyModeErrorParamResult'] 94022736c2fSopenharmony_ci }; 94122736c2fSopenharmony_ci subscribe(subscribeInfo, TEST_FUNCTION.SETPRIVACYMODE_ERROR_PARAM, done); 94222736c2fSopenharmony_ci } catch(error) { 94322736c2fSopenharmony_ci console.info(`inputmethod_test_setPrivacyModeErrorParam_001 result: ${JSON.stringify(error)}`); 94422736c2fSopenharmony_ci expect().assertFail(); 94522736c2fSopenharmony_ci done(); 94622736c2fSopenharmony_ci } 94722736c2fSopenharmony_ci }); 94822736c2fSopenharmony_ci});