1/** 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' 16import commoneventmanager from '@ohos.commonEventManager'; 17import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; 18import subtype from '@ohos.InputMethodSubtype'; 19import inputMethod from '@ohos.inputMethod'; 20import display from '@ohos.display'; 21import { Driver, ON, MatchPattern, Component } from '@ohos.UiTest' 22import { BusinessError } from '@ohos.base' 23 24export default function inputMethodEngineKeyJSUnit() { 25 describe('inputMethodEngineKeyEvent', () => { 26 let extra: ESObject = {}; 27 let inputSever: ESObject = { 28 packageName: '', 29 methodId: '', 30 name: '', 31 id: '', 32 extra: extra 33 } 34 beforeAll(async (done: Function) => { 35 let inputM = inputMethod.getCurrentInputMethod(); 36 console.info("====>beforeAll: getCurrentInputMethod inputMethodEngineJSUnit to: " + JSON.stringify(inputM)); 37 inputSever.packageName = inputM.packageName; 38 inputSever.methodId = inputM.methodId; 39 inputSever.name = inputM.packageName; 40 inputSever.id = inputM.methodId; 41 42 let InputKeyService: subtype = { 43 id: "InputKeyService", 44 label: "", 45 name: "com.acts.inputmethodengine.test", 46 mode: "lower", 47 locale: "", 48 language: "", 49 icon: "", 50 iconId: 0, 51 extra: {} 52 } 53 try { 54 await inputMethod.switchCurrentInputMethodSubtype(InputKeyService); 55 setTimeout(() => { 56 console.info("====>beforeAll: inputMethodEngineJSUnit switchCurrentInputMethodSubtype success"); 57 done(); 58 }, 2000) 59 } catch (err) { 60 console.info("====>beforeAll: inputMethodEngineJSUnit fail" + JSON.stringify(err)); 61 } 62 }) 63 64 /** 65 * afterEach: Test case-level clearance conditions, which are executed after each test case is executed. 66 */ 67 afterAll(async (done: Function) => { 68 done(); 69 }) 70 71 let dis = display.getDefaultDisplaySync(); 72 let driver = Driver.create(); 73 const delegator:AbilityDelegatorRegistry.AbilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); 74 75 /* 76 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 77 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 78 * @tc.desc Function test 79 * @tc.size MediumTest 80 * @tc.type Function 81 * @tc.level Level2 82 */ 83 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0010', 0, async (done: Function) => { 84 85 let unSubscriberCallback = (err: BusinessError) => { 86 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 unSubscriberCallback start"); 87 if (err) { 88 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 unSubscriberCallback failed:" + 89 JSON.stringify(err)); 90 } else { 91 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 unSubscriberCallback finish"); 92 } 93 } 94 95 let subscriberCallback = (err: BusinessError, data: ESObject) => { 96 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 subscriberCallback data:" 97 + JSON.stringify(data)); 98 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 99 let t = setTimeout(() => { 100 try { 101 expect(data.data).assertEqual("SUCCESS"); 102 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 end"); 103 clearTimeout(t); 104 done(); 105 } catch (err) { 106 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 err:" + JSON.stringify(err)); 107 clearTimeout(t); 108 done(); 109 } 110 }, 1000) 111 } 112 113 let publishCallback = async (err: BusinessError) => { 114 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 publishCallback start"); 115 if (err) { 116 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 publishCallback failed:" + 117 JSON.stringify(err)); 118 } else { 119 let t = setTimeout(async () => { 120 await driver.triggerKey(2045) 121 clearTimeout(t); 122 }, 200) 123 } 124 } 125 126 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 127 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0010"] 128 } 129 let subscriber: ESObject; 130 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 131 try { 132 subscriber = data; 133 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 subscriber data:" + 134 JSON.stringify(data)); 135 commoneventmanager.subscribe(subscriber, subscriberCallback); 136 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 subscriber finish"); 137 } catch (err) { 138 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 139 } 140 141 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 142 code: 10 143 } 144 let t = setTimeout(async () => { 145 clearTimeout(t); 146 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 147 }, 500) 148 }).catch((err: BusinessError) => { 149 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 150 }) 151 }); 152 153 /* 154 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 155 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 156 * @tc.desc Function test 157 * @tc.size MediumTest 158 * @tc.type Function 159 * @tc.level Level2 160 */ 161 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0020', 0, async (done: Function) => { 162 163 let unSubscriberCallback = (err: BusinessError) => { 164 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 unSubscriberCallback start"); 165 if (err) { 166 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 unSubscriberCallback failed:" + 167 JSON.stringify(err)); 168 } else { 169 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 unSubscriberCallback finish"); 170 } 171 } 172 173 let subscriberCallback = (err: BusinessError, data: ESObject) => { 174 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 subscriberCallback data:" 175 + JSON.stringify(data)); 176 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 177 let t = setTimeout(() => { 178 try { 179 expect(data.data).assertEqual("SUCCESS"); 180 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 end"); 181 clearTimeout(t); 182 done(); 183 } catch (err) { 184 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 err:" + JSON.stringify(err)); 185 clearTimeout(t); 186 done(); 187 } 188 }, 1000); 189 } 190 191 let publishCallback = async (err: BusinessError) => { 192 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 publishCallback start"); 193 if (err) { 194 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 publishCallback failed:" + 195 JSON.stringify(err)); 196 } else { 197 let t = setTimeout(async () => { 198 await driver.triggerKey(2017) 199 clearTimeout(t); 200 }, 200) 201 } 202 } 203 204 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 205 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0020"] 206 } 207 let subscriber: ESObject; 208 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 209 try { 210 subscriber = data; 211 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 subscriber data:" + 212 JSON.stringify(data)); 213 commoneventmanager.subscribe(subscriber, subscriberCallback); 214 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 subscriber finish"); 215 } catch (err) { 216 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 217 } 218 219 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 220 code: 20 221 } 222 let t = setTimeout(async () => { 223 clearTimeout(t); 224 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 225 }, 500) 226 }).catch((err: BusinessError) => { 227 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 228 }) 229 }); 230 231 /* 232 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 233 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 234 * @tc.desc Function test 235 * @tc.size MediumTest 236 * @tc.type Function 237 * @tc.level Level2 238 */ 239 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0030', 0, async (done: Function) => { 240 241 let unSubscriberCallback = (err: BusinessError) => { 242 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 unSubscriberCallback start"); 243 if (err) { 244 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 unSubscriberCallback failed:" + 245 JSON.stringify(err)); 246 } else { 247 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 unSubscriberCallback finish"); 248 } 249 } 250 251 let subscriberCallback = (err: BusinessError, data: ESObject) => { 252 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 subscriberCallback data:" 253 + JSON.stringify(data)); 254 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 255 let t = setTimeout(() => { 256 try { 257 expect(data.data).assertEqual("SUCCESS"); 258 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 end"); 259 clearTimeout(t); 260 done(); 261 } catch (err) { 262 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 err:" + JSON.stringify(err)); 263 clearTimeout(t); 264 done(); 265 } 266 }, 1000); 267 } 268 269 let publishCallback = async (err: BusinessError) => { 270 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 publishCallback start"); 271 if (err) { 272 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 publishCallback failed:" + 273 JSON.stringify(err)); 274 } else { 275 let t = setTimeout(async () => { 276 let result = await delegator.executeShellCommand(`uinput -K -d 2072 -d 2017 -u 2017 -u 2072`); 277 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 executeShellCommand success: " + JSON.stringify(result)); 278 clearTimeout(t); 279 }, 200) 280 } 281 } 282 283 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 284 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0030"] 285 } 286 let subscriber: ESObject; 287 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 288 try { 289 subscriber = data; 290 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 subscriber data:" + 291 JSON.stringify(data)); 292 commoneventmanager.subscribe(subscriber, subscriberCallback); 293 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 subscriber finish"); 294 } catch (err) { 295 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 296 } 297 298 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 299 code: 30 300 } 301 let t = setTimeout(async () => { 302 clearTimeout(t); 303 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 304 }, 500) 305 }).catch((err: BusinessError) => { 306 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 307 }) 308 }); 309 310 /* 311 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 312 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 313 * @tc.desc Function test 314 * @tc.size MediumTest 315 * @tc.type Function 316 * @tc.level Level2 317 */ 318 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0040', 0, async (done: Function) => { 319 320 let unSubscriberCallback = (err: BusinessError) => { 321 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 unSubscriberCallback start"); 322 if (err) { 323 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 unSubscriberCallback failed:" + 324 JSON.stringify(err)); 325 } else { 326 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 unSubscriberCallback finish"); 327 } 328 } 329 330 let subscriberCallback = (err: BusinessError, data: ESObject) => { 331 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 subscriberCallback data:" 332 + JSON.stringify(data)); 333 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 334 let t = setTimeout(() => { 335 try { 336 expect(data.data).assertEqual("SUCCESS"); 337 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 end"); 338 clearTimeout(t); 339 done(); 340 } catch (err) { 341 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 err:" + JSON.stringify(err)); 342 clearTimeout(t); 343 done(); 344 } 345 }, 1000) 346 } 347 348 let publishCallback = async (err: BusinessError) => { 349 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 publishCallback start"); 350 if (err) { 351 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 publishCallback failed:" + 352 JSON.stringify(err)); 353 } else { 354 let t = setTimeout(async () => { 355 let result = await delegator.executeShellCommand(`uinput -K -d 2017 -d 2047 -u 2047 -u 2017`); 356 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 executeShellCommand success: " + JSON.stringify(result)); 357 clearTimeout(t); 358 }, 200) 359 } 360 } 361 362 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 363 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0040"] 364 } 365 let subscriber: ESObject; 366 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 367 try { 368 subscriber = data; 369 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 subscriber data:" + 370 JSON.stringify(data)); 371 commoneventmanager.subscribe(subscriber, subscriberCallback); 372 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 subscriber finish"); 373 } catch (err) { 374 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 375 } 376 377 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 378 code: 40 379 } 380 let t = setTimeout(async () => { 381 clearTimeout(t); 382 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 383 }, 500) 384 }).catch((err: BusinessError) => { 385 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 386 }) 387 }); 388 389 /* 390 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 391 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 392 * @tc.desc Function test 393 * @tc.size MediumTest 394 * @tc.type Function 395 * @tc.level Level2 396 */ 397 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0050', 0, async (done: Function) => { 398 399 let unSubscriberCallback = (err: BusinessError) => { 400 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 unSubscriberCallback start"); 401 if (err) { 402 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 unSubscriberCallback failed:" + 403 JSON.stringify(err)); 404 } else { 405 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 unSubscriberCallback finish"); 406 } 407 } 408 409 let subscriberCallback = (err: BusinessError, data: ESObject) => { 410 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 subscriberCallback data:" 411 + JSON.stringify(data)); 412 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 413 let t = setTimeout(() => { 414 try { 415 expect(data.data).assertEqual("SUCCESS"); 416 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 end"); 417 clearTimeout(t); 418 done(); 419 } catch (err) { 420 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 err:" + JSON.stringify(err)); 421 clearTimeout(t); 422 done(); 423 } 424 }, 1000) 425 } 426 427 let publishCallback = async (err: BusinessError) => { 428 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 publishCallback start"); 429 if (err) { 430 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 publishCallback failed:" + 431 JSON.stringify(err)); 432 } else { 433 let t = setTimeout(async () => { 434 let result = await delegator.executeShellCommand(`uinput -K -d 2047 -d 2017 -u 2017 -u 2047`); 435 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 executeShellCommand success: " + JSON.stringify(result)); 436 clearTimeout(t); 437 }, 200) 438 439 } 440 } 441 442 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 443 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0050"] 444 } 445 let subscriber: ESObject; 446 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 447 try { 448 subscriber = data; 449 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 subscriber data:" + 450 JSON.stringify(data)); 451 commoneventmanager.subscribe(subscriber, subscriberCallback); 452 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 subscriber finish"); 453 } catch (err) { 454 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 455 } 456 457 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 458 code: 50 459 } 460 let t = setTimeout(async () => { 461 clearTimeout(t); 462 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 463 }, 500) 464 }).catch((err: BusinessError) => { 465 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 466 }) 467 }); 468 469 /* 470 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 471 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 472 * @tc.desc Function test 473 * @tc.size MediumTest 474 * @tc.type Function 475 * @tc.level Level2 476 */ 477 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0060', 0, async (done: Function) => { 478 479 let unSubscriberCallback = (err: BusinessError) => { 480 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 unSubscriberCallback start"); 481 if (err) { 482 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 unSubscriberCallback failed:" + 483 JSON.stringify(err)); 484 } else { 485 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 unSubscriberCallback finish"); 486 } 487 } 488 489 let subscriberCallback = (err: BusinessError, data: ESObject) => { 490 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 subscriberCallback data:" 491 + JSON.stringify(data)); 492 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 493 let t = setTimeout(() => { 494 try { 495 expect(data.data).assertEqual("SUCCESS"); 496 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 end"); 497 clearTimeout(t); 498 done(); 499 } catch (err) { 500 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 err:" + JSON.stringify(err)); 501 clearTimeout(t); 502 done(); 503 } 504 }, 1000) 505 } 506 507 let publishCallback = async (err: BusinessError) => { 508 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 publishCallback start"); 509 if (err) { 510 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 publishCallback failed:" + 511 JSON.stringify(err)); 512 } else { 513 let t = setTimeout(async () => { 514 let result = await delegator.executeShellCommand(`uinput -K -d 2047 -d 2001 -u 2001 -u 2047`); 515 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 executeShellCommand success: " + JSON.stringify(result)); 516 clearTimeout(t); 517 }, 200) 518 } 519 } 520 521 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 522 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0060"] 523 } 524 let subscriber: ESObject; 525 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 526 try { 527 subscriber = data; 528 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 subscriber data:" + 529 JSON.stringify(data)); 530 commoneventmanager.subscribe(subscriber, subscriberCallback); 531 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 subscriber finish"); 532 } catch (err) { 533 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 534 } 535 536 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 537 code: 60 538 } 539 let t = setTimeout(async () => { 540 clearTimeout(t); 541 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 542 }, 500) 543 }).catch((err: BusinessError) => { 544 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 545 }) 546 }); 547 548 /* 549 * @tc.number SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 550 * @tc.name SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 551 * @tc.desc Function test 552 * @tc.size MediumTest 553 * @tc.type Function 554 * @tc.level Level2 555 */ 556 it('SUB_Misc_InputMethod_Manage_Physical_Buttons_0070', 0, async (done: Function) => { 557 558 let unSubscriberCallback = (err: BusinessError) => { 559 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 unSubscriberCallback start"); 560 if (err) { 561 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 unSubscriberCallback failed:" + 562 JSON.stringify(err)); 563 } else { 564 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 unSubscriberCallback finish"); 565 } 566 } 567 568 let subscriberCallback = (err: BusinessError, data: ESObject) => { 569 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 subscriberCallback data:" 570 + JSON.stringify(data)); 571 commoneventmanager.unsubscribe(subscriber, unSubscriberCallback); 572 let t = setTimeout(() => { 573 try { 574 expect(data.data).assertEqual("SUCCESS"); 575 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 end"); 576 clearTimeout(t); 577 done(); 578 } catch (err) { 579 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 err:" + JSON.stringify(err)); 580 clearTimeout(t); 581 done(); 582 } 583 }, 1000) 584 } 585 586 let publishCallback = async (err: BusinessError) => { 587 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 publishCallback start"); 588 if (err) { 589 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 publishCallback failed:" + 590 JSON.stringify(err)); 591 } else { 592 let t = setTimeout(async () => { 593 let result = await delegator.executeShellCommand(`uinput -K -d 2047 -d 2062 -u 2062 -u 2047`); 594 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 executeShellCommand success: " + JSON.stringify(result)); 595 clearTimeout(t) 596 }, 200) 597 } 598 } 599 600 let commonEventSubscribeInfo: commoneventmanager.CommonEventSubscribeInfo = { 601 events: ["SUB_Misc_InputMethod_Manage_Physical_Buttons_0070"] 602 } 603 let subscriber: ESObject; 604 commoneventmanager.createSubscriber(commonEventSubscribeInfo).then((data) => { 605 try { 606 subscriber = data; 607 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 subscriber data:" + 608 JSON.stringify(data)); 609 commoneventmanager.subscribe(subscriber, subscriberCallback); 610 console.info("====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 subscriber finish"); 611 } catch (err) { 612 console.info(`====>Subscribe failed, code:${err.code}, message is ${err.message}`) 613 } 614 615 let commonEventPublishData: commoneventmanager.CommonEventPublishData = { 616 code: 70 617 } 618 let t = setTimeout(async () => { 619 clearTimeout(t); 620 commoneventmanager.publish('inputMethodEngineKeyTest', commonEventPublishData, publishCallback); 621 }, 500) 622 }).catch((err: BusinessError) => { 623 console.info(`====>createSubscriber failed, code:${err.code}, message is ${err.message}`) 624 }) 625 }); 626 627 }) 628}