1 /* 2 * Copyright (c) 2025 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 */ 15 16 #include "key_subscriber_handler.h" 17 18 #include <fstream> 19 #include <list> 20 21 #include <gtest/gtest.h> 22 23 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 24 #include "call_manager_client.h" 25 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 26 27 #include "want.h" 28 29 #include "common_event_data.h" 30 #include "common_event_manager.h" 31 #include "common_event_support.h" 32 #include "device_event_monitor.h" 33 #include "display_event_monitor.h" 34 #include "event_log_helper.h" 35 #include "input_event_handler.h" 36 #include "key_event.h" 37 #include "key_option.h" 38 #include "key_shortcut_manager.h" 39 #include "mmi_log.h" 40 #include "nap_process.h" 41 #include "switch_subscriber_handler.h" 42 #include "tablet_subscriber_handler.h" 43 #include "uds_server.h" 44 45 #undef MMI_LOG_TAG 46 #define MMI_LOG_TAG "KeyCommandHandlerTest" 47 48 namespace OHOS { 49 namespace MMI { 50 namespace { 51 using namespace testing::ext; 52 const std::string PROGRAM_NAME = "uds_session_test"; 53 constexpr int32_t MODULE_TYPE { 1 }; 54 constexpr int32_t UDS_FD { 1 }; 55 constexpr int32_t UDS_UID { 100 }; 56 constexpr int32_t UDS_PID { 100 }; 57 constexpr int32_t REMOVE_OBSERVER { -2 }; 58 constexpr int32_t UNOBSERVED { -1 }; 59 constexpr int32_t ACTIVE_EVENT { 2 }; 60 constexpr uint32_t MAX_PRE_KEY_COUNT { 4 }; 61 } // namespace 62 63 class KeySubscriberHandlerTest : public testing::Test { 64 public: SetUpTestCase(void)65 static void SetUpTestCase(void) {} TearDownTestCase(void)66 static void TearDownTestCase(void) {} 67 }; 68 69 /** 70 * @tc.name: KeySubscriberHandlerTest_HandleKeyEvent_001 71 * @tc.desc: Test HandleKeyEvent 72 * @tc.type: FUNC 73 * @tc.require: 74 */ 75 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyEvent_001, TestSize.Level1) 76 { 77 CALL_DEBUG_ENTER; 78 KeySubscriberHandler handler; 79 KeyEvent::KeyItem item; 80 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 81 ASSERT_NE(keyEvent, nullptr); 82 handler.enableCombineKey_ = false; 83 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 84 item.SetKeyCode(KeyEvent::KEYCODE_A); 85 keyEvent->AddKeyItem(item); 86 item.SetKeyCode(KeyEvent::KEYCODE_B); 87 keyEvent->AddKeyItem(item); 88 EXPECT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 89 ASSERT_NO_FATAL_FAILURE(handler.HandleKeyEvent(keyEvent)); 90 91 handler.enableCombineKey_ = true; 92 handler.hasEventExecuting_ = true; 93 handler.keyEvent_ = KeyEvent::Create(); 94 ASSERT_NE(handler.keyEvent_, nullptr); 95 handler.keyEvent_->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 96 handler.keyEvent_->SetKeyAction(KeyEvent::KEY_ACTION_UP); 97 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 98 item.SetKeyCode(KeyEvent::KEYCODE_A); 99 handler.keyEvent_->AddKeyItem(item); 100 item.SetKeyCode(KeyEvent::KEYCODE_B); 101 handler.keyEvent_->AddKeyItem(item); 102 EXPECT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 103 EXPECT_TRUE(EventLogHelper::IsBetaVersion()); 104 EXPECT_FALSE(keyEvent->HasFlag(InputEvent::EVENT_FLAG_PRIVACY_MODE)); 105 ASSERT_NO_FATAL_FAILURE(handler.HandleKeyEvent(keyEvent)); 106 } 107 108 /** 109 * @tc.name: KeySubscriberHandlerTest_DumpSubscriber_001 110 * @tc.desc: Test DumpSubscriber 111 * @tc.type: FUNC 112 * @tc.require: 113 */ 114 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_DumpSubscriber_001, TestSize.Level1) 115 { 116 CALL_TEST_DEBUG; 117 KeySubscriberHandler handler; 118 int32_t fd = 1; 119 SessionPtr sess; 120 auto keyOption = std::make_shared<KeyOption>(); 121 keyOption->preKeys_.insert(10); 122 keyOption->preKeys_.insert(20); 123 keyOption->preKeys_.insert(30); 124 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 125 ASSERT_NO_FATAL_FAILURE(handler.DumpSubscriber(fd, subscriber)); 126 } 127 128 /** 129 * @tc.name: InputWindowsManagerTest_UnsubscribeKeyEvent_001 130 * @tc.desc: Test UnsubscribeKeyEvent 131 * @tc.type: FUNC 132 * @tc.require: 133 */ 134 HWTEST_F(KeySubscriberHandlerTest, InputWindowsManagerTest_UnsubscribeKeyEvent_001, TestSize.Level1) 135 { 136 CALL_TEST_DEBUG; 137 KeySubscriberHandler keySubscriberHandler; 138 auto keyEvent = KeyEvent::Create(); 139 ASSERT_NE(keyEvent, nullptr); 140 keySubscriberHandler.HandleKeyEvent(keyEvent); 141 auto pointerEvent = PointerEvent::Create(); 142 keySubscriberHandler.HandlePointerEvent(pointerEvent); 143 keySubscriberHandler.HandleTouchEvent(pointerEvent); 144 keySubscriberHandler.RemoveSubscriberKeyUpTimer(1); 145 std::vector<std::string> args = {}; 146 keySubscriberHandler.Dump(1, args); 147 UDSServer udsServer; 148 SessionPtr sess = udsServer.GetSessionByPid(1); 149 std::shared_ptr<KeyOption> keyOption = nullptr; 150 ASSERT_EQ(keySubscriberHandler.SubscribeKeyEvent(sess, -1, keyOption), -1); 151 SessionPtr sessPtr = nullptr; 152 ASSERT_NE(keySubscriberHandler.UnsubscribeKeyEvent(sessPtr, -1), 0); 153 ASSERT_NE(keySubscriberHandler.UnsubscribeKeyEvent(sess, 1), 0); 154 } 155 156 /** 157 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_001 158 * @tc.desc: Test IsEnableCombineKey 159 * @tc.type: FUNC 160 * @tc.require: 161 */ 162 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_001, TestSize.Level1) 163 { 164 CALL_TEST_DEBUG; 165 KeySubscriberHandler keySubscriberHandler; 166 keySubscriberHandler.EnableCombineKey(false); 167 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 168 CHKPV(keyEvent); 169 KeyEvent::KeyItem item; 170 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 171 keyEvent->AddKeyItem(item); 172 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 173 keySubscriberHandler.HandleKeyEvent(keyEvent); 174 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 175 } 176 177 /** 178 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_002 179 * @tc.desc: Test IsEnableCombineKey 180 * @tc.type: FUNC 181 * @tc.require: 182 */ 183 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_002, TestSize.Level1) 184 { 185 CALL_TEST_DEBUG; 186 KeySubscriberHandler keySubscriberHandler; 187 keySubscriberHandler.EnableCombineKey(false); 188 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 189 CHKPV(keyEvent); 190 KeyEvent::KeyItem item1; 191 item1.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 192 keyEvent->AddKeyItem(item1); 193 KeyEvent::KeyItem item2; 194 item2.SetKeyCode(KeyEvent::KEYCODE_L); 195 keyEvent->AddKeyItem(item2); 196 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 197 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 198 } 199 200 /** 201 * @tc.name: KeySubscriberHandlerTest_EnableCombineKey_001 202 * @tc.desc: Test enable combineKey 203 * @tc.type: FUNC 204 * @tc.require: 205 */ 206 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_EnableCombineKey_001, TestSize.Level1) 207 { 208 CALL_TEST_DEBUG; 209 KeySubscriberHandler keySubscriberHandler; 210 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 211 } 212 213 /** 214 * @tc.name: KeySubscriberHandlerTest_SubscribeKeyEvent_001 215 * @tc.desc: Test subscribe keyEvent 216 * @tc.type: FUNC 217 * @tc.require: 218 */ 219 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscribeKeyEvent_001, TestSize.Level1) 220 { 221 CALL_DEBUG_ENTER; 222 KeySubscriberHandler handler; 223 SessionPtr sess; 224 auto keyOption = std::make_shared<KeyOption>(); 225 int32_t ret = handler.SubscribeKeyEvent(sess, -1, keyOption); 226 ASSERT_EQ(ret, RET_ERR); 227 ret = handler.SubscribeKeyEvent(nullptr, 1, keyOption); 228 ASSERT_NE(ret, RET_OK); 229 ret = handler.SubscribeKeyEvent(sess, 1, keyOption); 230 ASSERT_NE(ret, RET_OK); 231 } 232 233 /** 234 * @tc.name: KeySubscriberHandlerTest_RemoveSubscriber_001 235 * @tc.desc: Test remove subscriber 236 * @tc.type: FUNC 237 * @tc.require: 238 */ 239 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveSubscriber_001, TestSize.Level1) 240 { 241 CALL_DEBUG_ENTER; 242 KeySubscriberHandler handler; 243 SessionPtr sess; 244 int32_t ret = handler.RemoveSubscriber(sess, 1, true); 245 ASSERT_EQ(ret, RET_ERR); 246 ret = handler.RemoveSubscriber(nullptr, 1, true); 247 ASSERT_EQ(ret, RET_ERR); 248 } 249 250 /** 251 * @tc.name: KeySubscriberHandlerTest_IsEqualKeyOption_001 252 * @tc.desc: Test is equal keyOption 253 * @tc.type: FUNC 254 * @tc.require: 255 */ 256 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEqualKeyOption_001, TestSize.Level1) 257 { 258 CALL_DEBUG_ENTER; 259 KeySubscriberHandler handler; 260 auto newOption = std::make_shared<KeyOption>(); 261 auto oldOption = std::make_shared<KeyOption>(); 262 newOption->SetPreKeys({1, 2, 3}); 263 oldOption->SetPreKeys({4, 5, 6}); 264 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 265 newOption->SetFinalKey(1); 266 oldOption->SetFinalKey(2); 267 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 268 newOption->SetFinalKeyDown(true); 269 oldOption->SetFinalKeyDown(false); 270 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 271 newOption->SetFinalKeyDownDuration(100); 272 oldOption->SetFinalKeyDownDuration(200); 273 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 274 newOption->SetFinalKeyUpDelay(100); 275 oldOption->SetFinalKeyUpDelay(200); 276 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 277 newOption->SetPreKeys({1, 2, 3}); 278 oldOption->SetPreKeys({1, 2, 3}); 279 newOption->SetFinalKey(1); 280 oldOption->SetFinalKey(1); 281 newOption->SetFinalKeyDown(true); 282 oldOption->SetFinalKeyDown(true); 283 newOption->SetFinalKeyDownDuration(100); 284 oldOption->SetFinalKeyDownDuration(100); 285 newOption->SetFinalKeyUpDelay(100); 286 oldOption->SetFinalKeyUpDelay(100); 287 ASSERT_TRUE(handler.IsEqualKeyOption(newOption, oldOption)); 288 } 289 290 /** 291 * @tc.name: KeySubscriberHandlerTest_IsPreKeysMatch_001 292 * @tc.desc: Test is preKeys match 293 * @tc.type: FUNC 294 * @tc.require: 295 */ 296 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsPreKeysMatch_001, TestSize.Level1) 297 { 298 CALL_DEBUG_ENTER; 299 KeySubscriberHandler handler; 300 std::set<int32_t> preKeys; 301 std::vector<int32_t> pressedKeys = {1, 2, 3}; 302 ASSERT_TRUE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 303 preKeys = {1, 2, 3}; 304 ASSERT_TRUE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 305 pressedKeys = {1, 2, 3, 4}; 306 ASSERT_FALSE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 307 pressedKeys = {1, 2, 3}; 308 preKeys = {1, 2, 3, 4}; 309 ASSERT_FALSE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 310 } 311 312 /** 313 * @tc.name: KeySubscriberHandlerTest_IsEqualPreKeys_001 314 * @tc.desc: Test is equal preKeys 315 * @tc.type: FUNC 316 * @tc.require: 317 */ 318 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEqualPreKeys_001, TestSize.Level1) 319 { 320 CALL_TEST_DEBUG; 321 KeySubscriberHandler handler; 322 std::set<int32_t> preKeys = {1, 2, 3}; 323 std::set<int32_t> pressedKeys = {4, 5, 6}; 324 ASSERT_FALSE(handler.IsEqualPreKeys(preKeys, pressedKeys)); 325 pressedKeys = {1, 2, 3}; 326 ASSERT_TRUE(handler.IsEqualPreKeys(preKeys, pressedKeys)); 327 pressedKeys = {1, 2}; 328 ASSERT_FALSE(handler.IsEqualPreKeys(preKeys, pressedKeys)); 329 } 330 331 /** 332 * @tc.name: KeySubscriberHandlerTest_IsMatchForegroundPid_001 333 * @tc.desc: Test is match foreground pid 334 * @tc.type: FUNC 335 * @tc.require: 336 */ 337 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsMatchForegroundPid_001, TestSize.Level1) 338 { 339 CALL_TEST_DEBUG; 340 KeySubscriberHandler handler; 341 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subs; 342 std::set<int32_t> foregroundPids = {1, 2, 3}; 343 ASSERT_FALSE(handler.IsMatchForegroundPid(subs, foregroundPids)); 344 } 345 346 /** 347 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownSubscriber_001 348 * @tc.desc: Test notify key down subscriber 349 * @tc.type: FUNC 350 * @tc.require: 351 */ 352 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownSubscriber_001, TestSize.Level1) 353 { 354 CALL_TEST_DEBUG; 355 KeySubscriberHandler handler; 356 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 357 auto keyOption = std::make_shared<KeyOption>(); 358 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 359 bool handled = false; 360 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownSubscriber(keyEvent, keyOption, subscribers, handled)); 361 keyEvent = nullptr; 362 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownSubscriber(keyEvent, keyOption, subscribers, handled)); 363 } 364 365 /** 366 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownRightNow_001 367 * @tc.desc: Test notify key down right now 368 * @tc.type: FUNC 369 * @tc.require: 370 */ 371 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownRightNow_001, TestSize.Level1) 372 { 373 CALL_TEST_DEBUG; 374 KeySubscriberHandler handler; 375 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 376 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 377 bool handled = false; 378 handler.NotifyKeyDownRightNow(keyEvent, subscribers, true, handled); 379 ASSERT_FALSE(handled); 380 } 381 382 /** 383 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownDelay_001 384 * @tc.desc: Test notify key down delay 385 * @tc.type: FUNC 386 * @tc.require: 387 */ 388 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownDelay_001, TestSize.Level1) 389 { 390 CALL_DEBUG_ENTER; 391 KeySubscriberHandler handler; 392 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 393 CHKPV(keyEvent); 394 KeyEvent::KeyItem item; 395 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 396 keyEvent->AddKeyItem(item); 397 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 398 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 399 bool handled = false; 400 handler.NotifyKeyDownDelay(keyEvent, subscribers, handled); 401 ASSERT_FALSE(handled); 402 } 403 404 /** 405 * @tc.name: KeySubscriberHandlerTest_InitSessionDeleteCallback_001 406 * @tc.desc: Test init session delete callback 407 * @tc.type: FUNC 408 * @tc.require: 409 */ 410 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_InitSessionDeleteCallback_001, TestSize.Level1) 411 { 412 CALL_DEBUG_ENTER; 413 KeySubscriberHandler handler; 414 handler.callbackInitialized_ = true; 415 ASSERT_TRUE(handler.InitSessionDeleteCallback()); 416 handler.callbackInitialized_ = false; 417 ASSERT_FALSE(handler.InitSessionDeleteCallback()); 418 } 419 420 /** 421 * @tc.name: KeySubscriberHandlerTest_HandleKeyDown_001 422 * @tc.desc: Test handle key down 423 * @tc.type: FUNC 424 * @tc.require: 425 */ 426 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyDown_001, TestSize.Level1) 427 { 428 CALL_DEBUG_ENTER; 429 KeySubscriberHandler handler; 430 auto result = handler.HandleKeyDown(nullptr); 431 ASSERT_FALSE(result); 432 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 433 CHKPV(keyEvent); 434 result = handler.HandleKeyDown(keyEvent); 435 ASSERT_FALSE(result); 436 } 437 438 /** 439 * @tc.name: KeySubscriberHandlerTest_RemoveKeyCode_001 440 * @tc.desc: Test remove key code 441 * @tc.type: FUNC 442 * @tc.require: 443 */ 444 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyCode_001, TestSize.Level1) 445 { 446 CALL_TEST_DEBUG; 447 KeySubscriberHandler handler; 448 std::vector<int32_t> keyCodes; 449 handler.RemoveKeyCode(1, keyCodes); 450 ASSERT_TRUE(keyCodes.empty()); 451 keyCodes = {2, 3, 4}; 452 handler.RemoveKeyCode(1, keyCodes); 453 ASSERT_EQ(keyCodes, (std::vector<int32_t>{2, 3, 4})); 454 keyCodes = {1, 2, 3}; 455 ASSERT_EQ(keyCodes, (std::vector<int32_t>{1, 2, 3})); 456 } 457 458 /** 459 * @tc.name: KeySubscriberHandlerTest_AddSubscriber_001 460 * @tc.desc: Test add subscriber 461 * @tc.type: FUNC 462 * @tc.require: 463 */ 464 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddSubscriber_001, TestSize.Level1) 465 { 466 CALL_TEST_DEBUG; 467 KeySubscriberHandler handler; 468 SessionPtr sess; 469 std::shared_ptr<KeyOption> keyOption; 470 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 471 std::shared_ptr<KeyOption> option = std::make_shared<KeyOption>(); 472 handler.AddSubscriber(subscriber, option, true); 473 auto it = handler.subscriberMap_.find(option); 474 ASSERT_NE(it->second.front(), subscriber); 475 auto newSubscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 476 handler.AddSubscriber(newSubscriber, option, true); 477 ASSERT_NE(it->second.back(), newSubscriber); 478 } 479 480 /** 481 * @tc.name: KeySubscriberHandlerTest_IsFunctionKey_001 482 * @tc.desc: Test is function key 483 * @tc.type: FUNC 484 * @tc.require: 485 */ 486 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsFunctionKey_001, TestSize.Level1) 487 { 488 CALL_TEST_DEBUG; 489 KeySubscriberHandler handler; 490 auto keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 491 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 492 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_BRIGHTNESS_UP); 493 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 494 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_MUTE); 495 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 496 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_SWITCHVIDEOMODE); 497 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 498 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_WLAN); 499 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 500 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_CONFIG); 501 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 502 keyEvent = std::make_shared<KeyEvent>(KeyEvent::KEYCODE_A); 503 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 504 } 505 506 /** 507 * @tc.name: KeySubscriberHandlerTest_CloneKeyEvent_001 508 * @tc.desc: Test clone key event 509 * @tc.type: FUNC 510 * @tc.require: 511 */ 512 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_CloneKeyEvent_001, TestSize.Level1) 513 { 514 CALL_TEST_DEBUG; 515 KeySubscriberHandler handler; 516 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 517 ASSERT_NE(keyEvent, nullptr); 518 ASSERT_TRUE(handler.CloneKeyEvent(keyEvent)); 519 handler.keyEvent_ = nullptr; 520 ASSERT_TRUE(handler.CloneKeyEvent(keyEvent)); 521 } 522 523 /** 524 * @tc.name: KeySubscriberHandlerTest_NotifyKeyUpSubscriber_001 525 * @tc.desc: Test notify key up subscriber 526 * @tc.type: FUNC 527 * @tc.require: 528 */ 529 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyUpSubscriber_001, TestSize.Level1) 530 { 531 CALL_TEST_DEBUG; 532 KeySubscriberHandler handler; 533 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 534 ASSERT_NE(keyEvent, nullptr); 535 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 536 bool handled = false; 537 handler.NotifyKeyUpSubscriber(keyEvent, subscribers, handled); 538 ASSERT_FALSE(handled); 539 handler.isForegroundExits_ = false; 540 handler.NotifyKeyUpSubscriber(keyEvent, subscribers, handled); 541 ASSERT_FALSE(handled); 542 handler.isForegroundExits_ = true; 543 handler.foregroundPids_.clear(); 544 handler.NotifyKeyUpSubscriber(keyEvent, subscribers, handled); 545 ASSERT_FALSE(handled); 546 } 547 548 /** 549 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKeySwipe_001 550 * @tc.desc: Test is enable combine key swipe 551 * @tc.type: FUNC 552 * @tc.require: 553 */ 554 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKeySwipe_001, TestSize.Level1) 555 { 556 CALL_TEST_DEBUG; 557 KeySubscriberHandler handler; 558 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 559 ASSERT_NE(keyEvent, nullptr); 560 KeyEvent::KeyItem item; 561 item.SetKeyCode(KeyEvent::KEYCODE_CTRL_LEFT); 562 keyEvent->AddKeyItem(item); 563 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CTRL_LEFT); 564 ASSERT_TRUE(handler.IsEnableCombineKeySwipe(keyEvent)); 565 item.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 566 keyEvent->AddKeyItem(item); 567 keyEvent->SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 568 ASSERT_TRUE(handler.IsEnableCombineKeySwipe(keyEvent)); 569 item.SetKeyCode(KeyEvent::KEYCODE_DPAD_RIGHT); 570 keyEvent->AddKeyItem(item); 571 keyEvent->SetKeyCode(KeyEvent::KEYCODE_DPAD_RIGHT); 572 ASSERT_TRUE(handler.IsEnableCombineKeySwipe(keyEvent)); 573 item.SetKeyCode(KeyEvent::KEYCODE_CTRL_RIGHT); 574 keyEvent->AddKeyItem(item); 575 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CTRL_RIGHT); 576 ASSERT_TRUE(handler.IsEnableCombineKeySwipe(keyEvent)); 577 item.SetKeyCode(KeyEvent::KEYCODE_A); 578 keyEvent->AddKeyItem(item); 579 keyEvent->SetKeyCode(KeyEvent::KEYCODE_A); 580 ASSERT_TRUE(handler.IsEnableCombineKeySwipe(keyEvent)); 581 } 582 583 /** 584 * @tc.name: KeySubscriberHandlerTest_OnSubscribeKeyEvent_001 585 * @tc.desc: Test on subscribe key event 586 * @tc.type: FUNC 587 * @tc.require: 588 */ 589 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSubscribeKeyEvent_001, TestSize.Level1) 590 { 591 CALL_TEST_DEBUG; 592 KeySubscriberHandler handler; 593 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 594 ASSERT_NE(keyEvent, nullptr); 595 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 596 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 597 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 598 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 599 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_CANCEL); 600 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 601 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_CANCEL); 602 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 603 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 604 handler.OnSubscribeKeyEvent(keyEvent); 605 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 606 } 607 608 /** 609 * @tc.name: KeySubscriberHandlerTest_OnSessionDelete_001 610 * @tc.desc: Test onSession delete 611 * @tc.type: FUNC 612 * @tc.require: 613 */ 614 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSessionDelete_001, TestSize.Level1) 615 { 616 CALL_TEST_DEBUG; 617 KeySubscriberHandler handler; 618 UDSServer udsServer; 619 auto keyOption = std::make_shared<KeyOption>(); 620 SessionPtr sess = udsServer.GetSessionByPid(1); 621 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>>subscriberMap_; 622 auto newSubscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 623 auto newSubscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 624 auto newSubscriber3 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(3, sess, keyOption); 625 subscriberMap_.push_back(newSubscriber1); 626 subscriberMap_.push_back(newSubscriber2); 627 subscriberMap_.push_back(newSubscriber3); 628 handler.OnSessionDelete(sess); 629 for (auto& sub : subscriberMap_) { 630 ASSERT_EQ(sub->sess_, nullptr); 631 } 632 } 633 634 /** 635 * @tc.name: KeySubscriberHandlerTest_ClearSubscriberTimer_001 636 * @tc.desc: Test clear subscriber timer 637 * @tc.type: FUNC 638 * @tc.require: 639 */ 640 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_ClearSubscriberTimer_001, TestSize.Level1) 641 { 642 CALL_TEST_DEBUG; 643 KeySubscriberHandler handler; 644 SessionPtr sess; 645 std::shared_ptr<KeyOption> keyOption; 646 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 647 auto subscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 648 auto subscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 649 subscribers.push_back(subscriber1); 650 subscribers.push_back(subscriber2); 651 ASSERT_NO_FATAL_FAILURE(handler.ClearSubscriberTimer(subscribers)); 652 } 653 654 /** 655 * @tc.name: KeySubscriberHandlerTest_OnTimer_001 656 * @tc.desc: Test OnTimer 657 * @tc.type: FUNC 658 * @tc.require: 659 */ 660 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnTimer_001, TestSize.Level1) 661 { 662 CALL_TEST_DEBUG; 663 KeySubscriberHandler handler; 664 SessionPtr sess; 665 std::shared_ptr<KeyOption> keyOption; 666 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 667 subscriber->keyEvent_.reset(); 668 handler.OnTimer(subscriber); 669 ASSERT_EQ(subscriber->keyEvent_, nullptr); 670 } 671 672 /** 673 * @tc.name: KeySubscriberHandlerTest_SubscriberNotifyNap_001 674 * @tc.desc: Test SubscriberNotifyNap 675 * @tc.type: FUNC 676 * @tc.require: 677 */ 678 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscriberNotifyNap_001, TestSize.Level1) 679 { 680 CALL_TEST_DEBUG; 681 KeySubscriberHandler handler; 682 SessionPtr sess; 683 std::shared_ptr<KeyOption> keyOption; 684 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 685 ASSERT_NO_FATAL_FAILURE(handler.SubscriberNotifyNap(subscriber)); 686 } 687 688 /** 689 * @tc.name: KeySubscriberHandlerTest_HandleKeyUp_001 690 * @tc.desc: Test HandleKeyUp 691 * @tc.type: FUNC 692 * @tc.require: 693 */ 694 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUp_001, TestSize.Level1) 695 { 696 CALL_TEST_DEBUG; 697 KeySubscriberHandler handler; 698 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 699 ASSERT_NE(keyEvent, nullptr); 700 KeyEvent::KeyItem item; 701 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 702 keyEvent->AddKeyItem(item); 703 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 704 bool handled = handler.HandleKeyUp(keyEvent); 705 EXPECT_FALSE(handled); 706 } 707 708 /** 709 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_001 710 * @tc.desc: Test NotifySubscriber 711 * @tc.type: FUNC 712 * @tc.require: 713 */ 714 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_001, TestSize.Level1) 715 { 716 CALL_TEST_DEBUG; 717 KeySubscriberHandler handler; 718 SessionPtr sess; 719 std::shared_ptr<KeyOption> keyOption; 720 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 721 ASSERT_NE(keyEvent, nullptr); 722 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 723 KeyEvent::KeyItem item; 724 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 725 keyEvent->AddKeyItem(item); 726 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 727 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 728 } 729 730 /** 731 * @tc.name: KeySubscriberHandlerTest_HandleKeyCancel_001 732 * @tc.desc: Test HandleKeyCancel 733 * @tc.type: FUNC 734 * @tc.require: 735 */ 736 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyCancel_001, TestSize.Level1) 737 { 738 CALL_TEST_DEBUG; 739 KeySubscriberHandler handler; 740 UDSServer udsServer; 741 SessionPtr sess = udsServer.GetSessionByPid(1); 742 auto keyOption = std::make_shared<KeyOption>(); 743 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 744 ASSERT_NE(keyEvent, nullptr); 745 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>>subscriberMap_; 746 auto newSubscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 747 auto newSubscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 748 subscriberMap_.push_back(newSubscriber1); 749 subscriberMap_.push_back(newSubscriber2); 750 EXPECT_FALSE(handler.HandleKeyCancel(keyEvent)); 751 } 752 753 /** 754 * @tc.name: KeySubscriberHandlerTest_PrintKeyOption_001 755 * @tc.desc: Test PrintKeyOption 756 * @tc.type: FUNC 757 * @tc.require: 758 */ 759 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_PrintKeyOption_001, TestSize.Level1) 760 { 761 CALL_TEST_DEBUG; 762 KeySubscriberHandler handler; 763 auto keyOption = std::make_shared<KeyOption>(); 764 keyOption->SetFinalKey(1); 765 keyOption->SetFinalKeyDown(true); 766 keyOption->SetFinalKeyDownDuration(1000); 767 keyOption->SetPreKeys({1, 2, 3}); 768 ASSERT_NO_FATAL_FAILURE(handler.PrintKeyOption(keyOption)); 769 } 770 771 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 772 /** 773 * @tc.name: KeySubscriberHandlerTest_HandleKeyUpWithDelay_002 774 * @tc.desc: Test HandleKeyUpWithDelay 775 * @tc.type: FUNC 776 * @tc.require: 777 */ 778 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUpWithDelay_002, TestSize.Level1) 779 { 780 CALL_TEST_DEBUG; 781 KeySubscriberHandler handler; 782 SessionPtr sess; 783 auto keyOption = std::make_shared<KeyOption>(); 784 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 785 ASSERT_NE(keyEvent, nullptr); 786 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 787 788 subscriber->keyOption_->finalKeyUpDelay_ = -2; 789 ASSERT_NO_FATAL_FAILURE(handler.HandleKeyUpWithDelay(keyEvent, subscriber)); 790 } 791 792 /** 793 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_001 794 * @tc.desc: Test ring mute 795 * @tc.type: FUNC 796 * @tc.require: 797 */ 798 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_001, TestSize.Level1) 799 { 800 CALL_TEST_DEBUG; 801 KeySubscriberHandler keySubscriberHandler; 802 OHOS::EventFwk::Want want; 803 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 804 OHOS::EventFwk::CommonEventData data; 805 data.SetWant(want); 806 int callState = 0; 807 DEVICE_MONITOR->SetCallState(data, callState); 808 809 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 810 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 811 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 812 } 813 814 /** 815 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_002 816 * @tc.desc: Test ring mute 817 * @tc.type: FUNC 818 * @tc.require: 819 */ 820 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_002, TestSize.Level1) 821 { 822 CALL_TEST_DEBUG; 823 KeySubscriberHandler keySubscriberHandler; 824 OHOS::EventFwk::Want want; 825 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 826 OHOS::EventFwk::CommonEventData data; 827 data.SetWant(want); 828 int callState = 0; 829 DEVICE_MONITOR->SetCallState(data, callState); 830 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 831 data.SetWant(want); 832 callState = 0; 833 DEVICE_MONITOR->SetCallState(data, callState); 834 835 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 836 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_DOWN); 837 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 838 } 839 840 /** 841 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_003 842 * @tc.desc: Test ring mute 843 * @tc.type: FUNC 844 * @tc.require: 845 */ 846 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_003, TestSize.Level1) 847 { 848 CALL_TEST_DEBUG; 849 KeySubscriberHandler keySubscriberHandler; 850 OHOS::EventFwk::Want want; 851 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 852 OHOS::EventFwk::CommonEventData data; 853 data.SetWant(want); 854 int callState = 0; 855 DEVICE_MONITOR->SetCallState(data, callState); 856 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 857 data.SetWant(want); 858 callState = 0; 859 DEVICE_MONITOR->SetCallState(data, callState); 860 861 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 862 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_UP); 863 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 864 } 865 866 /** 867 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_004 868 * @tc.desc: Test ring mute 869 * @tc.type: FUNC 870 * @tc.require: 871 */ 872 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_004, TestSize.Level1) 873 { 874 CALL_TEST_DEBUG; 875 KeySubscriberHandler keySubscriberHandler; 876 OHOS::EventFwk::Want want; 877 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 878 OHOS::EventFwk::CommonEventData data; 879 data.SetWant(want); 880 int callState = 0; 881 DEVICE_MONITOR->SetCallState(data, callState); 882 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 883 data.SetWant(want); 884 callState = 0; 885 DEVICE_MONITOR->SetCallState(data, callState); 886 887 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 888 keyEvent->SetKeyCode(KeyEvent::KEYCODE_F1); 889 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 890 } 891 892 /** 893 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_005 894 * @tc.desc: Test ring mute 895 * @tc.type: FUNC 896 * @tc.require: 897 */ 898 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_005, TestSize.Level1) 899 { 900 CALL_TEST_DEBUG; 901 KeySubscriberHandler keySubscriberHandler; 902 OHOS::EventFwk::Want want; 903 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 904 OHOS::EventFwk::CommonEventData data; 905 data.SetWant(want); 906 int callState = 0; 907 DEVICE_MONITOR->SetCallState(data, callState); 908 909 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 910 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 911 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 912 } 913 914 /** 915 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_006 916 * @tc.desc: Test ring mute 917 * @tc.type: FUNC 918 * @tc.require: 919 */ 920 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_006, TestSize.Level1) 921 { 922 CALL_TEST_DEBUG; 923 KeySubscriberHandler keySubscriberHandler; 924 OHOS::EventFwk::Want want; 925 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 926 OHOS::EventFwk::CommonEventData data; 927 data.SetWant(want); 928 int callState = 0; 929 DEVICE_MONITOR->SetCallState(data, callState); 930 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 931 data.SetWant(want); 932 callState = 0; 933 DEVICE_MONITOR->SetCallState(data, callState); 934 935 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 936 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_DOWN); 937 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 938 } 939 940 /** 941 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_007 942 * @tc.desc: Test ring mute 943 * @tc.type: FUNC 944 * @tc.require: 945 */ 946 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_007, TestSize.Level1) 947 { 948 CALL_TEST_DEBUG; 949 KeySubscriberHandler keySubscriberHandler; 950 OHOS::EventFwk::Want want; 951 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 952 OHOS::EventFwk::CommonEventData data; 953 data.SetWant(want); 954 int callState = 0; 955 DEVICE_MONITOR->SetCallState(data, callState); 956 957 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 958 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 959 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 960 } 961 962 /** 963 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_008 964 * @tc.desc: Test ring mute 965 * @tc.type: FUNC 966 * @tc.require: 967 */ 968 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_008, TestSize.Level1) 969 { 970 CALL_TEST_DEBUG; 971 KeySubscriberHandler keySubscriberHandler; 972 973 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 974 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_DOWN); 975 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 976 } 977 978 /** 979 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_009 980 * @tc.desc: Test ring mute 981 * @tc.type: FUNC 982 * @tc.require: 983 */ 984 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_009, TestSize.Level1) 985 { 986 CALL_TEST_DEBUG; 987 KeySubscriberHandler keySubscriberHandler; 988 989 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 990 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_UP); 991 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 992 } 993 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 994 995 /** 996 * @tc.name: KeySubscriberHandlerTest_SubscribeKeyEvent_002 997 * @tc.desc: Test subscribe keyEvent 998 * @tc.type: FUNC 999 * @tc.require: 1000 */ 1001 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscribeKeyEvent_002, TestSize.Level1) 1002 { 1003 CALL_DEBUG_ENTER; 1004 KeySubscriberHandler handler; 1005 int32_t subscribeId = 1; 1006 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1007 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1008 std::set<int32_t> preKeys; 1009 preKeys.insert(1); 1010 keyOption->SetPreKeys(preKeys); 1011 ASSERT_NE(handler.SubscribeKeyEvent(sess, subscribeId, keyOption), RET_OK); 1012 1013 preKeys.insert(2); 1014 preKeys.insert(3); 1015 preKeys.insert(4); 1016 preKeys.insert(5); 1017 preKeys.insert(6); 1018 keyOption->SetPreKeys(preKeys); 1019 ASSERT_NE(handler.SubscribeKeyEvent(sess, subscribeId, keyOption), RET_OK); 1020 } 1021 1022 /** 1023 * @tc.name: KeySubscriberHandlerTest_IsEqualKeyOption 1024 * @tc.desc: Test Is Equal KeyOption 1025 * @tc.type: FUNC 1026 * @tc.require: 1027 */ 1028 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEqualKeyOption, TestSize.Level1) 1029 { 1030 CALL_DEBUG_ENTER; 1031 KeySubscriberHandler handler; 1032 std::shared_ptr<KeyOption> newOption = std::make_shared<KeyOption>(); 1033 std::shared_ptr<KeyOption> oldOption = std::make_shared<KeyOption>(); 1034 std::set<int32_t> preKeys; 1035 std::set<int32_t> pressedKeys; 1036 preKeys.insert(1); 1037 pressedKeys.insert(1); 1038 newOption->SetPreKeys(preKeys); 1039 oldOption->SetPreKeys(pressedKeys); 1040 newOption->SetFinalKey(1); 1041 oldOption->SetFinalKey(2); 1042 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 1043 1044 oldOption->SetFinalKey(1); 1045 newOption->SetFinalKeyDown(true); 1046 oldOption->SetFinalKeyDown(false); 1047 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 1048 oldOption->SetFinalKeyDown(true); 1049 1050 newOption->SetFinalKeyDownDuration(100); 1051 oldOption->SetFinalKeyDownDuration(150); 1052 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 1053 oldOption->SetFinalKeyDownDuration(100); 1054 1055 newOption->SetFinalKeyUpDelay(100); 1056 oldOption->SetFinalKeyUpDelay(150); 1057 ASSERT_FALSE(handler.IsEqualKeyOption(newOption, oldOption)); 1058 oldOption->SetFinalKeyUpDelay(100); 1059 ASSERT_TRUE(handler.IsEqualKeyOption(newOption, oldOption)); 1060 } 1061 1062 /** 1063 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_003 1064 * @tc.desc: Test Is Enable CombineKey 1065 * @tc.type: FUNC 1066 * @tc.require: 1067 */ 1068 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_003, TestSize.Level1) 1069 { 1070 CALL_DEBUG_ENTER; 1071 KeySubscriberHandler handler; 1072 KeyEvent::KeyItem item; 1073 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1074 handler.enableCombineKey_ = false; 1075 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 1076 item.SetKeyCode(KeyEvent::KEYCODE_A); 1077 keyEvent->AddKeyItem(item); 1078 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 1079 1080 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1081 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 1082 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 1083 1084 item.SetKeyCode(KeyEvent::KEYCODE_B); 1085 keyEvent->AddKeyItem(item); 1086 ASSERT_FALSE(handler.IsEnableCombineKey(keyEvent)); 1087 1088 keyEvent->SetKeyCode(KeyEvent::KEYCODE_DPAD_RIGHT); 1089 ASSERT_FALSE(handler.IsEnableCombineKey(keyEvent)); 1090 1091 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 1092 ASSERT_FALSE(handler.IsEnableCombineKey(keyEvent)); 1093 } 1094 1095 /** 1096 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_004 1097 * @tc.desc: Test Is Enable CombineKey 1098 * @tc.type: FUNC 1099 * @tc.require: 1100 */ 1101 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_004, TestSize.Level1) 1102 { 1103 CALL_DEBUG_ENTER; 1104 KeySubscriberHandler handler; 1105 KeyEvent::KeyItem item; 1106 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1107 ASSERT_NE(keyEvent, nullptr); 1108 handler.enableCombineKey_ = false; 1109 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 1110 item.SetKeyCode(KeyEvent::KEYCODE_L); 1111 keyEvent->AddKeyItem(item); 1112 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 1113 } 1114 1115 /** 1116 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_005 1117 * @tc.desc: Test Is Enable CombineKey 1118 * @tc.type: FUNC 1119 * @tc.require: 1120 */ 1121 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_005, TestSize.Level1) 1122 { 1123 CALL_DEBUG_ENTER; 1124 KeySubscriberHandler handler; 1125 KeyEvent::KeyItem item; 1126 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1127 ASSERT_NE(keyEvent, nullptr); 1128 handler.enableCombineKey_ = false; 1129 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 1130 item.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 1131 keyEvent->AddKeyItem(item); 1132 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 1133 } 1134 1135 /** 1136 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_006 1137 * @tc.desc: Test Is Enable CombineKey 1138 * @tc.type: FUNC 1139 * @tc.require: 1140 */ 1141 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_006, TestSize.Level1) 1142 { 1143 CALL_DEBUG_ENTER; 1144 KeySubscriberHandler handler; 1145 KeyEvent::KeyItem item; 1146 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1147 ASSERT_NE(keyEvent, nullptr); 1148 handler.enableCombineKey_ = false; 1149 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 1150 item.SetKeyCode(KeyEvent::KEYCODE_META_RIGHT); 1151 keyEvent->AddKeyItem(item); 1152 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 1153 } 1154 1155 /** 1156 * @tc.name: KeySubscriberHandlerTest_RemoveSubscriber 1157 * @tc.desc: Test Remove Subscriber 1158 * @tc.type: FUNC 1159 * @tc.require: 1160 */ 1161 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveSubscriber, TestSize.Level1) 1162 { 1163 CALL_DEBUG_ENTER; 1164 KeySubscriberHandler handler; 1165 int32_t subscribeId = 2; 1166 int32_t id = 1; 1167 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1168 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1169 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1170 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1171 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1172 subscriberList.push_back(subscriber); 1173 handler.subscriberMap_.insert(std::make_pair(keyOption, subscriberList)); 1174 ASSERT_EQ(handler.RemoveSubscriber(session, subscribeId, true), RET_ERR); 1175 subscribeId = 1; 1176 ASSERT_EQ(handler.RemoveSubscriber(session, subscribeId, true), RET_OK); 1177 } 1178 1179 /** 1180 * @tc.name: KeySubscriberHandlerTest_IsFunctionKey 1181 * @tc.desc: Test IsFunctionKey 1182 * @tc.type: FUNC 1183 * @tc.require: 1184 */ 1185 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsFunctionKey, TestSize.Level1) 1186 { 1187 CALL_DEBUG_ENTER; 1188 KeySubscriberHandler handler; 1189 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1190 ASSERT_NE(keyEvent, nullptr); 1191 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_UP); 1192 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1193 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_UP); 1194 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1195 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_DOWN); 1196 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1197 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_MUTE); 1198 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1199 keyEvent->SetKeyCode(KeyEvent::KEYCODE_MUTE); 1200 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1201 keyEvent->SetKeyCode(KeyEvent::KEYCODE_SWITCHVIDEOMODE); 1202 ASSERT_TRUE(handler.IsFunctionKey(keyEvent)); 1203 keyEvent->SetKeyCode(KeyEvent::KEYCODE_WLAN); 1204 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 1205 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CONFIG); 1206 ASSERT_FALSE(handler.IsFunctionKey(keyEvent)); 1207 } 1208 1209 /** 1210 * @tc.name: KeySubscriberHandlerTest_OnSubscribeKeyEvent 1211 * @tc.desc: Test OnSubscribeKeyEvent 1212 * @tc.type: FUNC 1213 * @tc.require: 1214 */ 1215 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSubscribeKeyEvent, TestSize.Level1) 1216 { 1217 CALL_DEBUG_ENTER; 1218 KeySubscriberHandler handler; 1219 KeyEvent::KeyItem item; 1220 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1221 ASSERT_NE(keyEvent, nullptr); 1222 handler.enableCombineKey_ = false; 1223 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 1224 item.SetKeyCode(KeyEvent::KEYCODE_A); 1225 keyEvent->AddKeyItem(item); 1226 item.SetKeyCode(KeyEvent::KEYCODE_B); 1227 keyEvent->AddKeyItem(item); 1228 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 1229 1230 handler.enableCombineKey_ = true; 1231 handler.hasEventExecuting_ = true; 1232 handler.keyEvent_ = KeyEvent::Create(); 1233 ASSERT_NE(handler.keyEvent_, nullptr); 1234 handler.keyEvent_->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 1235 handler.keyEvent_->SetKeyAction(KeyEvent::KEY_ACTION_UP); 1236 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 1237 item.SetKeyCode(KeyEvent::KEYCODE_A); 1238 handler.keyEvent_->AddKeyItem(item); 1239 item.SetKeyCode(KeyEvent::KEYCODE_B); 1240 handler.keyEvent_->AddKeyItem(item); 1241 ASSERT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 1242 1243 handler.hasEventExecuting_ = false; 1244 handler.needSkipPowerKeyUp_ = true; 1245 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1246 ASSERT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 1247 1248 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UNKNOWN); 1249 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 1250 } 1251 1252 /** 1253 * @tc.name: KeySubscriberHandlerTest_OnSessionDelete 1254 * @tc.desc: Test OnSessionDelete 1255 * @tc.type: FUNC 1256 * @tc.require: 1257 */ 1258 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSessionDelete, TestSize.Level1) 1259 { 1260 CALL_DEBUG_ENTER; 1261 KeySubscriberHandler handler; 1262 int32_t id = 1; 1263 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1264 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1265 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1266 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1267 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1268 subscriberList.push_back(subscriber); 1269 handler.subscriberMap_.insert(std::make_pair(keyOption, subscriberList)); 1270 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1271 ASSERT_NO_FATAL_FAILURE(handler.OnSessionDelete(sess)); 1272 ASSERT_NO_FATAL_FAILURE(handler.OnSessionDelete(session)); 1273 } 1274 1275 /** 1276 * @tc.name: KeySubscriberHandlerTest_IsPreKeysMatch 1277 * @tc.desc: Test IsPreKeysMatch 1278 * @tc.type: FUNC 1279 * @tc.require: 1280 */ 1281 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsPreKeysMatch, TestSize.Level1) 1282 { 1283 CALL_DEBUG_ENTER; 1284 KeySubscriberHandler handler; 1285 std::set<int32_t> preKeys; 1286 std::vector<int32_t> pressedKeys; 1287 preKeys.insert(KeyEvent::KEYCODE_A); 1288 pressedKeys.push_back(KeyEvent::KEYCODE_B); 1289 ASSERT_FALSE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 1290 preKeys.clear(); 1291 pressedKeys.clear(); 1292 preKeys.insert(KeyEvent::KEYCODE_C); 1293 pressedKeys.push_back(KeyEvent::KEYCODE_C); 1294 ASSERT_TRUE(handler.IsPreKeysMatch(preKeys, pressedKeys)); 1295 } 1296 1297 /** 1298 * @tc.name: KeySubscriberHandlerTest_IsMatchForegroundPid 1299 * @tc.desc: Test Is Match Foreground Pid 1300 * @tc.type: FUNC 1301 * @tc.require: 1302 */ 1303 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsMatchForegroundPid, TestSize.Level1) 1304 { 1305 CALL_DEBUG_ENTER; 1306 KeySubscriberHandler handler; 1307 int32_t id = 1; 1308 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1309 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1310 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1311 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1312 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1313 std::set<int32_t> foregroundPids; 1314 subscriberList.push_back(subscriber); 1315 foregroundPids.insert(1); 1316 ASSERT_FALSE(handler.IsMatchForegroundPid(subscriberList, foregroundPids)); 1317 1318 foregroundPids.insert(100); 1319 ASSERT_TRUE(handler.IsMatchForegroundPid(subscriberList, foregroundPids)); 1320 } 1321 1322 /** 1323 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownSubscriber 1324 * @tc.desc: Test Notify Key Down Subscriber 1325 * @tc.type: FUNC 1326 * @tc.require: 1327 */ 1328 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownSubscriber, TestSize.Level1) 1329 { 1330 CALL_DEBUG_ENTER; 1331 KeySubscriberHandler handler; 1332 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1333 ASSERT_NE(keyEvent, nullptr); 1334 int32_t id = 1; 1335 bool handled = false; 1336 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1337 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1338 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1339 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1340 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1341 subscriberList.push_back(subscriber); 1342 keyOption->SetFinalKeyDownDuration(100); 1343 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownSubscriber(keyEvent, keyOption, subscriberList, handled)); 1344 } 1345 1346 /** 1347 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownRightNow 1348 * @tc.desc: Test Notify Key Down Right Now 1349 * @tc.type: FUNC 1350 * @tc.require: 1351 */ 1352 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownRightNow, TestSize.Level1) 1353 { 1354 CALL_DEBUG_ENTER; 1355 KeySubscriberHandler handler; 1356 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1357 ASSERT_NE(keyEvent, nullptr); 1358 int32_t id = 1; 1359 bool handled = false; 1360 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1361 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1362 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1363 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1364 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1365 subscriberList.push_back(subscriber); 1366 handler.isForegroundExits_ = true; 1367 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownRightNow(keyEvent, subscriberList, true, handled)); 1368 1369 handler.isForegroundExits_ = false; 1370 handler.foregroundPids_.insert(UDS_PID); 1371 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1372 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownRightNow(keyEvent, subscriberList, true, handled)); 1373 } 1374 1375 /** 1376 * @tc.name: KeySubscriberHandlerTest_NotifyKeyDownDelay 1377 * @tc.desc: Test Notify KeyDown Delay 1378 * @tc.type: FUNC 1379 * @tc.require: 1380 */ 1381 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyDownDelay, TestSize.Level1) 1382 { 1383 CALL_DEBUG_ENTER; 1384 KeySubscriberHandler handler; 1385 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1386 ASSERT_NE(keyEvent, nullptr); 1387 int32_t id = 1; 1388 bool handled = false; 1389 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1390 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1391 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1392 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1393 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1394 subscriber->timerId_ = 1; 1395 subscriberList.push_back(subscriber); 1396 handler.isForegroundExits_ = true; 1397 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownDelay(keyEvent, subscriberList, handled)); 1398 1399 handler.isForegroundExits_ = false; 1400 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1401 handler.foregroundPids_.insert(UDS_PID); 1402 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyDownDelay(keyEvent, subscriberList, handled)); 1403 } 1404 1405 /** 1406 * @tc.name: KeySubscriberHandlerTest_NotifyKeyUpSubscriber 1407 * @tc.desc: Test Notify KeyUp Subscriber 1408 * @tc.type: FUNC 1409 * @tc.require: 1410 */ 1411 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifyKeyUpSubscriber, TestSize.Level1) 1412 { 1413 CALL_DEBUG_ENTER; 1414 KeySubscriberHandler handler; 1415 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1416 ASSERT_NE(keyEvent, nullptr); 1417 int32_t id = 1; 1418 bool handled = false; 1419 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1420 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1421 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1422 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1423 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1424 subscriber->timerId_ = 1; 1425 keyOption->SetFinalKeyUpDelay(1000); 1426 subscriberList.push_back(subscriber); 1427 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyUpSubscriber(keyEvent, subscriberList, handled)); 1428 handler.isForegroundExits_ = true; 1429 handler.foregroundPids_.insert(UDS_PID); 1430 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyUpSubscriber(keyEvent, subscriberList, handled)); 1431 handler.foregroundPids_.erase(UDS_PID); 1432 ASSERT_NO_FATAL_FAILURE(handler.NotifyKeyUpSubscriber(keyEvent, subscriberList, handled)); 1433 } 1434 1435 /** 1436 * @tc.name: KeySubscriberHandlerTest_IsKeyEventSubscribed 1437 * @tc.desc: Test IsKeyEventSubscribed 1438 * @tc.type: FUNC 1439 * @tc.require: 1440 */ 1441 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsKeyEventSubscribed, TestSize.Level1) 1442 { 1443 KeySubscriberHandler handler; 1444 int32_t id = 1; 1445 int32_t keyCode = KeyEvent::KEYCODE_ALT_LEFT; 1446 int32_t trrigerType = KeyEvent::KEY_ACTION_DOWN; 1447 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1448 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1449 keyOption->SetFinalKeyDown(false); 1450 keyOption->SetFinalKey(KeyEvent::KEYCODE_CTRL_LEFT); 1451 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1452 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1453 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 1454 subscriberList.push_back(subscriber); 1455 handler.subscriberMap_.insert(std::make_pair(keyOption, subscriberList)); 1456 ASSERT_FALSE(handler.IsKeyEventSubscribed(keyCode, trrigerType)); 1457 1458 for (auto &iter : handler.subscriberMap_) { 1459 iter.first->SetFinalKeyDown(true); 1460 } 1461 keyCode = KeyEvent::KEYCODE_CTRL_LEFT; 1462 ASSERT_TRUE(handler.IsKeyEventSubscribed(keyCode, trrigerType)); 1463 } 1464 1465 /** 1466 * @tc.name: KeySubscriberHandlerTest_RemoveKeyCode 1467 * @tc.desc: Test RemoveKeyCode 1468 * @tc.type: FUNC 1469 * @tc.require: 1470 */ 1471 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyCode, TestSize.Level1) 1472 { 1473 KeySubscriberHandler handler; 1474 int32_t keyCode = KeyEvent::KEYCODE_A; 1475 std::vector<int32_t> keyCodes { KeyEvent::KEYCODE_A, KeyEvent::KEYCODE_B }; 1476 ASSERT_NO_FATAL_FAILURE(handler.RemoveKeyCode(keyCode, keyCodes)); 1477 keyCode = KeyEvent::KEYCODE_C; 1478 ASSERT_NO_FATAL_FAILURE(handler.RemoveKeyCode(keyCode, keyCodes)); 1479 } 1480 1481 /** 1482 * @tc.name: KeySubscriberHandlerTest_IsRepeatedKeyEvent 1483 * @tc.desc: Test IsRepeatedKeyEvent 1484 * @tc.type: FUNC 1485 * @tc.require: 1486 */ 1487 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsRepeatedKeyEvent, TestSize.Level1) 1488 { 1489 KeySubscriberHandler handler; 1490 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1491 ASSERT_NE(keyEvent, nullptr); 1492 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1493 handler.keyEvent_ = KeyEvent::Create(); 1494 ASSERT_NE(keyEvent, nullptr); 1495 handler.hasEventExecuting_ = true; 1496 handler.keyEvent_->SetKeyCode(KeyEvent::KEYCODE_A); 1497 keyEvent->SetKeyCode(KeyEvent::KEYCODE_B); 1498 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1499 keyEvent->SetKeyCode(KeyEvent::KEYCODE_A); 1500 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 1501 handler.keyEvent_->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 1502 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1503 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 1504 KeyEvent::KeyItem item; 1505 item.SetKeyCode(KeyEvent::KEYCODE_A); 1506 handler.keyEvent_->AddKeyItem(item); 1507 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1508 item.SetKeyCode(KeyEvent::KEYCODE_B); 1509 keyEvent->AddKeyItem(item); 1510 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1511 item.SetKeyCode(KeyEvent::KEYCODE_B); 1512 handler.keyEvent_->AddKeyItem(item); 1513 item.SetKeyCode(KeyEvent::KEYCODE_D); 1514 keyEvent->AddKeyItem(item); 1515 ASSERT_FALSE(handler.IsRepeatedKeyEvent(keyEvent)); 1516 } 1517 1518 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 1519 /** 1520 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_010 1521 * @tc.desc: Test the funcation HandleRingMute 1522 * @tc.type: FUNC 1523 * @tc.require: 1524 */ 1525 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_010, TestSize.Level1) 1526 { 1527 CALL_TEST_DEBUG; 1528 KeySubscriberHandler handler; 1529 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1530 ASSERT_NE(keyEvent, nullptr); 1531 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_DOWN); 1532 OHOS::EventFwk::Want want; 1533 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 1534 OHOS::EventFwk::CommonEventData data; 1535 data.SetWant(want); 1536 int32_t callState = 0; 1537 DEVICE_MONITOR->SetCallState(data, callState); 1538 DeviceEventMonitor monitor; 1539 monitor.hasHandleRingMute_ = false; 1540 bool ret = handler.HandleRingMute(keyEvent); 1541 ASSERT_FALSE(ret); 1542 monitor.hasHandleRingMute_ = true; 1543 ret = handler.HandleRingMute(keyEvent); 1544 ASSERT_FALSE(ret); 1545 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1546 ret = handler.HandleRingMute(keyEvent); 1547 ASSERT_FALSE(ret); 1548 want.SetParam("state", StateType::CALL_STATUS_ALERTING); 1549 data.SetWant(want); 1550 DEVICE_MONITOR->SetCallState(data, callState); 1551 ret = handler.HandleRingMute(keyEvent); 1552 ASSERT_FALSE(ret); 1553 } 1554 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 1555 1556 /** 1557 * @tc.name: KeySubscriberHandlerTest_OnSubscribeKeyEvent_002 1558 * @tc.desc: Test the funcation OnSubscribeKeyEvent 1559 * @tc.type: FUNC 1560 * @tc.require: 1561 */ 1562 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSubscribeKeyEvent_002, TestSize.Level1) 1563 { 1564 CALL_TEST_DEBUG; 1565 KeySubscriberHandler handler; 1566 OHOS::EventFwk::Want want; 1567 want.SetParam("state", StateType::CALL_STATUS_DISCONNECTED); 1568 OHOS::EventFwk::CommonEventData data; 1569 data.SetWant(want); 1570 int callState = 0; 1571 DEVICE_MONITOR->SetCallState(data, callState); 1572 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 1573 data.SetWant(want); 1574 callState = 0; 1575 DEVICE_MONITOR->SetCallState(data, callState); 1576 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1577 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_UP); 1578 bool ret = handler.OnSubscribeKeyEvent(keyEvent); 1579 ASSERT_FALSE(ret); 1580 } 1581 1582 /** 1583 * @tc.name: KeySubscriberHandlerTest_OnSubscribeKeyEvent_003 1584 * @tc.desc: Test the funcation OnSubscribeKeyEvent 1585 * @tc.type: FUNC 1586 * @tc.require: 1587 */ 1588 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSubscribeKeyEvent_003, TestSize.Level1) 1589 { 1590 CALL_TEST_DEBUG; 1591 KeySubscriberHandler handler; 1592 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1593 ASSERT_NE(keyEvent, nullptr); 1594 handler.needSkipPowerKeyUp_ = true; 1595 KeyEvent::KeyItem item; 1596 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 1597 keyEvent->AddKeyItem(item); 1598 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1599 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 1600 ASSERT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 1601 } 1602 1603 /** 1604 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_002 1605 * @tc.desc: Test the funcation NotifySubscriber 1606 * @tc.type: FUNC 1607 * @tc.require: 1608 */ 1609 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_002, TestSize.Level1) 1610 { 1611 CALL_TEST_DEBUG; 1612 KeySubscriberHandler handler; 1613 SessionPtr sess; 1614 std::shared_ptr<KeyOption> keyOption; 1615 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1616 ASSERT_NE(keyEvent, nullptr); 1617 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1618 KeyEvent::KeyItem item; 1619 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 1620 keyEvent->AddKeyItem(item); 1621 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 1622 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 1623 } 1624 1625 /** 1626 * @tc.name: KeySubscriberHandlerTest_AddTimer_001 1627 * @tc.desc: Test the funcation AddTimer 1628 * @tc.type: FUNC 1629 * @tc.require: 1630 */ 1631 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddTimer_001, TestSize.Level1) 1632 { 1633 CALL_TEST_DEBUG; 1634 KeySubscriberHandler handler; 1635 int32_t id = 1; 1636 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 1637 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 1638 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 1639 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 1640 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1641 ASSERT_NE(keyEvent, nullptr); 1642 subscriber->timerId_ = 1; 1643 bool ret = handler.AddTimer(subscriber, keyEvent); 1644 ASSERT_TRUE(ret); 1645 subscriber->timerId_ = -1; 1646 keyOption->isFinalKeyDown_ = true; 1647 ret = handler.AddTimer(subscriber, keyEvent); 1648 ASSERT_TRUE(ret); 1649 keyOption->isFinalKeyDown_ = false; 1650 ret = handler.AddTimer(subscriber, keyEvent); 1651 ASSERT_TRUE(ret); 1652 } 1653 1654 /** 1655 * @tc.name: KeySubscriberHandlerTest_HandleKeyDown_002 1656 * @tc.desc: Test the funcation HandleKeyDown 1657 * @tc.type: FUNC 1658 * @tc.require: 1659 */ 1660 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyDown_002, TestSize.Level1) 1661 { 1662 CALL_DEBUG_ENTER; 1663 KeySubscriberHandler handler; 1664 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1665 ASSERT_NE(keyEvent, nullptr); 1666 auto keyOption = std::make_shared<KeyOption>(); 1667 keyOption->isFinalKeyDown_ = false; 1668 SessionPtr sess; 1669 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1670 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 1671 subscribers.push_back(subscriber); 1672 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1673 bool ret = handler.HandleKeyDown(keyEvent); 1674 ASSERT_FALSE(ret); 1675 keyOption->isFinalKeyDown_ = true; 1676 keyOption->finalKey_ = true; 1677 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1678 subscribers.push_back(subscriber); 1679 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1680 KeyEvent::KeyItem item; 1681 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 1682 keyEvent->AddKeyItem(item); 1683 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1684 ret = handler.HandleKeyDown(keyEvent); 1685 ASSERT_FALSE(ret); 1686 keyOption->finalKey_ = false; 1687 std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1688 subscribers.push_back(subscriber); 1689 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1690 ret = handler.HandleKeyDown(keyEvent); 1691 ASSERT_FALSE(ret); 1692 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 1693 ret = handler.HandleKeyDown(keyEvent); 1694 ASSERT_FALSE(ret); 1695 } 1696 1697 /** 1698 * @tc.name: KeySubscriberHandlerTest_HandleKeyUp_002 1699 * @tc.desc: Test the funcation HandleKeyUp 1700 * @tc.type: FUNC 1701 * @tc.require: 1702 */ 1703 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUp_002, TestSize.Level1) 1704 { 1705 CALL_DEBUG_ENTER; 1706 KeySubscriberHandler handler; 1707 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1708 ASSERT_NE(keyEvent, nullptr); 1709 auto keyOption = std::make_shared<KeyOption>(); 1710 keyOption->isFinalKeyDown_ = true; 1711 SessionPtr sess; 1712 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1713 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 1714 subscribers.push_back(subscriber); 1715 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1716 bool ret = handler.HandleKeyUp(keyEvent); 1717 ASSERT_FALSE(ret); 1718 keyOption->isFinalKeyDown_ = false; 1719 keyOption->finalKey_ = 2; 1720 std::set<int32_t> tmp; 1721 for (auto i = 0; i < 5; i++) { 1722 tmp.insert(i); 1723 KeyEvent::KeyItem keyItem; 1724 keyItem.pressed_ = true; 1725 keyItem.SetKeyCode(i); 1726 keyItem.downTime_ = 2000; 1727 keyEvent->keys_.push_back(keyItem); 1728 } 1729 tmp.clear(); 1730 keyOption->SetPreKeys(tmp); 1731 keyOption->finalKeyDownDuration_ = 0; 1732 keyOption->finalKey_ = -1; 1733 keyEvent->SetKeyCode(-1); 1734 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1735 subscribers.push_back(subscriber); 1736 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1737 KEY_SHORTCUT_MGR->isCheckShortcut_ = true; 1738 ret = handler.HandleKeyUp(keyEvent); 1739 ASSERT_FALSE(ret); 1740 keyOption->finalKeyDownDuration_ = 3; 1741 keyOption->finalKey_ = 3; 1742 keyEvent->SetKeyCode(3); 1743 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1744 subscribers.push_back(subscriber); 1745 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1746 KEY_SHORTCUT_MGR->isCheckShortcut_ = true; 1747 ret = handler.HandleKeyUp(keyEvent); 1748 ASSERT_FALSE(ret); 1749 } 1750 1751 /** 1752 * @tc.name: KeySubscriberHandlerTest_HandleKeyUp_003 1753 * @tc.desc: Test the funcation HandleKeyUp 1754 * @tc.type: FUNC 1755 * @tc.require: 1756 */ 1757 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUp_003, TestSize.Level1) 1758 { 1759 CALL_DEBUG_ENTER; 1760 KeySubscriberHandler handler; 1761 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1762 ASSERT_NE(keyEvent, nullptr); 1763 auto keyOption = std::make_shared<KeyOption>(); 1764 keyOption->isFinalKeyDown_ = false; 1765 SessionPtr sess; 1766 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1767 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 1768 keyOption->finalKey_ = 0; 1769 subscribers.push_back(subscriber); 1770 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1771 KEY_SHORTCUT_MGR->isCheckShortcut_ = true; 1772 keyEvent->SetKeyCode(-1); 1773 bool ret = false; 1774 ret = handler.HandleKeyUp(keyEvent); 1775 ASSERT_FALSE(ret); 1776 keyOption->finalKey_ = 2; 1777 std::set<int32_t> tmp; 1778 for (auto i = 0; i < 5; i++) { 1779 tmp.insert(i); 1780 KeyEvent::KeyItem keyItem; 1781 keyItem.pressed_ = true; 1782 keyItem.SetKeyCode(i); 1783 keyItem.downTime_ = 2000; 1784 keyEvent->keys_.push_back(keyItem); 1785 } 1786 keyOption->SetPreKeys(tmp); 1787 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1788 subscribers.push_back(subscriber); 1789 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1790 keyEvent->SetKeyCode(2); 1791 KEY_SHORTCUT_MGR->isCheckShortcut_ = true; 1792 ret = handler.HandleKeyUp(keyEvent); 1793 ASSERT_FALSE(ret); 1794 tmp.clear(); 1795 keyOption->SetPreKeys(tmp); 1796 keyOption->finalKey_ = 4; 1797 keyEvent->SetKeyCode(4); 1798 keyEvent->actionTime_ = 3000; 1799 keyOption->finalKeyDownDuration_ = 3; 1800 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1801 subscribers.push_back(subscriber); 1802 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1803 KEY_SHORTCUT_MGR->isCheckShortcut_ = true; 1804 ret = handler.HandleKeyUp(keyEvent); 1805 ASSERT_FALSE(ret); 1806 } 1807 1808 /** 1809 * @tc.name: KeySubscriberHandlerTest_HandleKeyUp_004 1810 * @tc.desc: Test the funcation HandleKeyUp 1811 * @tc.type: FUNC 1812 * @tc.require: 1813 */ 1814 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUp_004, TestSize.Level1) 1815 { 1816 CALL_DEBUG_ENTER; 1817 KeySubscriberHandler handler; 1818 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1819 ASSERT_NE(keyEvent, nullptr); 1820 auto keyOption = std::make_shared<KeyOption>(); 1821 keyOption->isFinalKeyDown_ = true; 1822 SessionPtr sess; 1823 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 1824 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 1825 subscribers.push_back(subscriber); 1826 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 1827 bool ret = handler.HandleKeyUp(keyEvent); 1828 ASSERT_FALSE(ret); 1829 } 1830 1831 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 1832 /** 1833 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_01 1834 * @tc.desc: Test the funcation HandleRingMute 1835 * @tc.type: FUNC 1836 * @tc.require: 1837 */ 1838 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_01, TestSize.Level1) 1839 { 1840 CALL_TEST_DEBUG; 1841 KeySubscriberHandler handler; 1842 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1843 ASSERT_NE(keyEvent, nullptr); 1844 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 1845 DeviceEventMonitor monitor; 1846 monitor.callState_ = StateType::CALL_STATUS_INCOMING; 1847 bool ret = handler.HandleRingMute(keyEvent); 1848 ASSERT_FALSE(ret); 1849 handler.HandleRingMute(keyEvent); 1850 monitor.hasHandleRingMute_ = false; 1851 ret = handler.HandleRingMute(keyEvent); 1852 ASSERT_FALSE(ret); 1853 monitor.hasHandleRingMute_ = true; 1854 ret = handler.HandleRingMute(keyEvent); 1855 ASSERT_FALSE(ret); 1856 monitor.callState_ = StateType::CALL_STATUS_DIALING; 1857 ret = handler.HandleRingMute(keyEvent); 1858 ASSERT_FALSE(ret); 1859 } 1860 1861 /** 1862 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_02 1863 * @tc.desc: Test ring mute 1864 * @tc.type: FUNC 1865 * @tc.require: 1866 */ 1867 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_02, TestSize.Level1) 1868 { 1869 CALL_TEST_DEBUG; 1870 KeySubscriberHandler keySubscriberHandler; 1871 1872 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1873 ASSERT_NE(keyEvent, nullptr); 1874 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 1875 1876 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1877 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1878 callManagerClientPtr = nullptr; 1879 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1880 } 1881 1882 /** 1883 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_03 1884 * @tc.desc: Test ring mute 1885 * @tc.type: FUNC 1886 * @tc.require: 1887 */ 1888 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_03, TestSize.Level1) 1889 { 1890 CALL_TEST_DEBUG; 1891 KeySubscriberHandler keySubscriberHandler; 1892 1893 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1894 ASSERT_NE(keyEvent, nullptr); 1895 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 1896 1897 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1898 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1899 EXPECT_NE(callManagerClientPtr, nullptr); 1900 DEVICE_MONITOR->hasHandleRingMute_ = false; 1901 auto ret = callManagerClientPtr->MuteRinger(); 1902 EXPECT_NE(ret, ERR_OK); 1903 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1904 } 1905 1906 /** 1907 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_04 1908 * @tc.desc: Test ring mute 1909 * @tc.type: FUNC 1910 * @tc.require: 1911 */ 1912 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_04, TestSize.Level1) 1913 { 1914 CALL_TEST_DEBUG; 1915 KeySubscriberHandler keySubscriberHandler; 1916 1917 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1918 ASSERT_NE(keyEvent, nullptr); 1919 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 1920 1921 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1922 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1923 EXPECT_NE(callManagerClientPtr, nullptr); 1924 DEVICE_MONITOR->hasHandleRingMute_ = false; 1925 keyEvent->keyCode_ = KeyEvent::KEYCODE_POWER; 1926 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1927 } 1928 1929 /** 1930 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_05 1931 * @tc.desc: Test ring mute 1932 * @tc.type: FUNC 1933 * @tc.require: 1934 */ 1935 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_05, TestSize.Level1) 1936 { 1937 CALL_TEST_DEBUG; 1938 KeySubscriberHandler keySubscriberHandler; 1939 1940 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1941 ASSERT_NE(keyEvent, nullptr); 1942 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 1943 1944 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1945 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1946 EXPECT_NE(callManagerClientPtr, nullptr); 1947 DEVICE_MONITOR->hasHandleRingMute_ = false; 1948 keyEvent->keyCode_ = KeyEvent::KEYCODE_CALL; 1949 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1950 } 1951 1952 /** 1953 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_06 1954 * @tc.desc: Test ring mute 1955 * @tc.type: FUNC 1956 * @tc.require: 1957 */ 1958 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_06, TestSize.Level1) 1959 { 1960 CALL_TEST_DEBUG; 1961 KeySubscriberHandler keySubscriberHandler; 1962 1963 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1964 ASSERT_NE(keyEvent, nullptr); 1965 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_UP; 1966 1967 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1968 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1969 EXPECT_NE(callManagerClientPtr, nullptr); 1970 DEVICE_MONITOR->hasHandleRingMute_ = true; 1971 keyEvent->keyCode_ = KeyEvent::KEYCODE_POWER; 1972 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1973 } 1974 1975 /** 1976 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_07 1977 * @tc.desc: Test ring mute 1978 * @tc.type: FUNC 1979 * @tc.require: 1980 */ 1981 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_07, TestSize.Level1) 1982 { 1983 CALL_TEST_DEBUG; 1984 KeySubscriberHandler keySubscriberHandler; 1985 1986 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 1987 ASSERT_NE(keyEvent, nullptr); 1988 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_UP; 1989 1990 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 1991 auto callManagerClientPtr = DelayedSingleton<OHOS::Telephony::CallManagerClient>::GetInstance(); 1992 EXPECT_NE(callManagerClientPtr, nullptr); 1993 DEVICE_MONITOR->hasHandleRingMute_ = true; 1994 keyEvent->keyCode_ = KeyEvent::KEYCODE_CAMERA; 1995 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 1996 } 1997 1998 /** 1999 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_08 2000 * @tc.desc: Test ring mute 2001 * @tc.type: FUNC 2002 * @tc.require: 2003 */ 2004 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_08, TestSize.Level1) 2005 { 2006 CALL_TEST_DEBUG; 2007 KeySubscriberHandler keySubscriberHandler; 2008 2009 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2010 ASSERT_NE(keyEvent, nullptr); 2011 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 2012 2013 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 2014 std::shared_ptr<OHOS::Telephony::CallManagerClient> callManagerClientPtr = nullptr; 2015 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 2016 } 2017 2018 /** 2019 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_09 2020 * @tc.desc: Test ring mute 2021 * @tc.type: FUNC 2022 * @tc.require: 2023 */ 2024 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_09, TestSize.Level1) 2025 { 2026 CALL_TEST_DEBUG; 2027 KeySubscriberHandler keySubscriberHandler; 2028 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2029 ASSERT_NE(keyEvent, nullptr); 2030 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 2031 2032 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 2033 std::shared_ptr<OHOS::Telephony::CallManagerClient> callManagerClientPtr; 2034 callManagerClientPtr = std::make_shared<OHOS::Telephony::CallManagerClient>(); 2035 EXPECT_NE(callManagerClientPtr, nullptr); 2036 DEVICE_MONITOR->hasHandleRingMute_ = false; 2037 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 2038 } 2039 2040 /** 2041 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_10 2042 * @tc.desc: Test ring mute 2043 * @tc.type: FUNC 2044 * @tc.require: 2045 */ 2046 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_10, TestSize.Level1) 2047 { 2048 CALL_TEST_DEBUG; 2049 KeySubscriberHandler keySubscriberHandler; 2050 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2051 ASSERT_NE(keyEvent, nullptr); 2052 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 2053 2054 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 2055 std::shared_ptr<OHOS::Telephony::CallManagerClient> callManagerClientPtr; 2056 callManagerClientPtr = std::make_shared<OHOS::Telephony::CallManagerClient>(); 2057 EXPECT_NE(callManagerClientPtr, nullptr); 2058 DEVICE_MONITOR->hasHandleRingMute_ = true; 2059 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_UP; 2060 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 2061 } 2062 2063 /** 2064 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_11 2065 * @tc.desc: Test ring mute 2066 * @tc.type: FUNC 2067 * @tc.require: 2068 */ 2069 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_11, TestSize.Level1) 2070 { 2071 CALL_TEST_DEBUG; 2072 KeySubscriberHandler keySubscriberHandler; 2073 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2074 ASSERT_NE(keyEvent, nullptr); 2075 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_DOWN; 2076 2077 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 2078 std::shared_ptr<OHOS::Telephony::CallManagerClient> callManagerClientPtr; 2079 callManagerClientPtr = std::make_shared<OHOS::Telephony::CallManagerClient>(); 2080 EXPECT_NE(callManagerClientPtr, nullptr); 2081 DEVICE_MONITOR->hasHandleRingMute_ = true; 2082 keyEvent->keyCode_ = KeyEvent::KEYCODE_POWER; 2083 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 2084 } 2085 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 2086 2087 /** 2088 * @tc.name: KeySubscriberHandlerTest_AddKeyGestureSubscriber_01 2089 * @tc.desc: Test AddKeyGestureSubscriber 2090 * @tc.type: FUNC 2091 * @tc.require: 2092 */ 2093 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddKeyGestureSubscriber_01, TestSize.Level1) 2094 { 2095 CALL_TEST_DEBUG; 2096 KeySubscriberHandler handler; 2097 SessionPtr sess; 2098 std::shared_ptr<KeyOption> keyOption; 2099 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2100 subscriber->timerId_ = -1; 2101 ASSERT_NO_FATAL_FAILURE(handler.AddKeyGestureSubscriber(subscriber, keyOption)); 2102 } 2103 2104 /** 2105 * @tc.name: KeySubscriberHandlerTest_AddKeyGestureSubscriber_02 2106 * @tc.desc: Test AddKeyGestureSubscriber 2107 * @tc.type: FUNC 2108 * @tc.require: 2109 */ 2110 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddKeyGestureSubscriber_02, TestSize.Level1) 2111 { 2112 CALL_TEST_DEBUG; 2113 KeySubscriberHandler handler; 2114 SessionPtr sess; 2115 std::shared_ptr<KeyOption> keyOption; 2116 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(3, sess, keyOption); 2117 subscriber->timerId_ = 1; 2118 2119 auto keyOption1 = std::make_shared<KeyOption>(); 2120 keyOption1->SetFinalKey(1); 2121 keyOption1->SetFinalKeyDown(true); 2122 auto keyOption2 = std::make_shared<KeyOption>(); 2123 keyOption2->SetFinalKey(1); 2124 keyOption2->SetFinalKeyDown(true); 2125 2126 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 2127 auto subscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2128 auto subscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 2129 subscribers.push_back(subscriber1); 2130 subscribers.push_back(subscriber2); 2131 handler.keyGestures_.insert({keyOption2, subscribers}); 2132 2133 for (auto &iter : handler.keyGestures_) { 2134 EXPECT_TRUE(handler.IsEqualKeyOption(keyOption1, iter.first)); 2135 } 2136 ASSERT_NO_FATAL_FAILURE(handler.AddKeyGestureSubscriber(subscriber, keyOption1)); 2137 } 2138 2139 /** 2140 * @tc.name: KeySubscriberHandlerTest_AddKeyGestureSubscriber_03 2141 * @tc.desc: Test AddKeyGestureSubscriber 2142 * @tc.type: FUNC 2143 * @tc.require: 2144 */ 2145 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddKeyGestureSubscriber_03, TestSize.Level1) 2146 { 2147 CALL_TEST_DEBUG; 2148 KeySubscriberHandler handler; 2149 SessionPtr sess; 2150 std::shared_ptr<KeyOption> keyOption; 2151 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(3, sess, keyOption); 2152 subscriber->timerId_ = 2; 2153 2154 auto keyOption1 = std::make_shared<KeyOption>(); 2155 keyOption1->SetFinalKey(2); 2156 keyOption1->SetFinalKeyDown(true); 2157 auto keyOption2 = std::make_shared<KeyOption>(); 2158 keyOption2->SetFinalKey(1); 2159 keyOption2->SetFinalKeyDown(false); 2160 2161 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 2162 auto subscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2163 auto subscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 2164 subscribers.push_back(subscriber1); 2165 subscribers.push_back(subscriber2); 2166 handler.keyGestures_.insert({keyOption2, subscribers}); 2167 2168 for (auto &iter : handler.keyGestures_) { 2169 EXPECT_FALSE(handler.IsEqualKeyOption(keyOption1, iter.first)); 2170 } 2171 ASSERT_NO_FATAL_FAILURE(handler.AddKeyGestureSubscriber(subscriber, keyOption1)); 2172 } 2173 2174 /** 2175 * @tc.name: KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_01 2176 * @tc.desc: Test RemoveKeyGestureSubscriber 2177 * @tc.type: FUNC 2178 * @tc.require: 2179 */ 2180 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_01, TestSize.Level1) 2181 { 2182 CALL_TEST_DEBUG; 2183 KeySubscriberHandler handler; 2184 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2185 EXPECT_NE(sess, nullptr); 2186 2187 auto keyOption1 = std::make_shared<KeyOption>(); 2188 keyOption1->SetFinalKey(2); 2189 keyOption1->SetFinalKeyDown(true); 2190 auto keyOption2 = std::make_shared<KeyOption>(); 2191 keyOption2->SetFinalKey(1); 2192 keyOption2->SetFinalKeyDown(false); 2193 2194 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 2195 std::shared_ptr<KeyOption> keyOption; 2196 auto subscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2197 auto subscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 2198 subscribers.push_back(subscriber1); 2199 subscribers.push_back(subscriber2); 2200 handler.keyGestures_.insert({keyOption2, subscribers}); 2201 2202 int32_t subscribeId = 3; 2203 for (auto &iter : handler.keyGestures_) { 2204 for (auto innerIter = iter.second.begin(); innerIter != iter.second.end(); ++innerIter) { 2205 auto subscriber = *innerIter; 2206 EXPECT_TRUE(subscriber->id_ != subscribeId); 2207 EXPECT_FALSE(subscriber->sess_ != sess); 2208 } 2209 int32_t ret = handler.RemoveKeyGestureSubscriber(sess, subscribeId); 2210 EXPECT_EQ(ret, RET_ERR); 2211 } 2212 } 2213 2214 /** 2215 * @tc.name: InputWindowsManagerTest_UnsubscribeKeyEvent_01 2216 * @tc.desc: Test UnsubscribeKeyEvent 2217 * @tc.type: FUNC 2218 * @tc.require: 2219 */ 2220 HWTEST_F(KeySubscriberHandlerTest, InputWindowsManagerTest_UnsubscribeKeyEvent_01, TestSize.Level1) 2221 { 2222 CALL_TEST_DEBUG; 2223 KeySubscriberHandler keySubscriberHandler; 2224 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2225 EXPECT_NE(sess, nullptr); 2226 int32_t subscribeId = 2; 2227 int32_t ret1 = keySubscriberHandler.RemoveSubscriber(sess, subscribeId, true); 2228 EXPECT_EQ(ret1, RET_ERR); 2229 int32_t ret2 = keySubscriberHandler.UnsubscribeKeyEvent(sess, subscribeId); 2230 EXPECT_EQ(ret2, RET_ERR); 2231 } 2232 2233 /** 2234 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_01 2235 * @tc.desc: Test NotifySubscriber 2236 * @tc.type: FUNC 2237 * @tc.require: 2238 */ 2239 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_01, TestSize.Level1) 2240 { 2241 CALL_TEST_DEBUG; 2242 KeySubscriberHandler handler; 2243 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2244 EXPECT_NE(sess, nullptr); 2245 std::shared_ptr<KeyOption> keyOption; 2246 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2247 EXPECT_NE(keyEvent, nullptr); 2248 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2249 EXPECT_NE(subscriber, nullptr); 2250 keyEvent->keyCode_ = KeyEvent::KEYCODE_POWER; 2251 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2252 } 2253 2254 /** 2255 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_02 2256 * @tc.desc: Test NotifySubscriber 2257 * @tc.type: FUNC 2258 * @tc.require: 2259 */ 2260 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_02, TestSize.Level1) 2261 { 2262 CALL_TEST_DEBUG; 2263 KeySubscriberHandler handler; 2264 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2265 EXPECT_NE(sess, nullptr); 2266 std::shared_ptr<KeyOption> keyOption; 2267 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2268 EXPECT_NE(keyEvent, nullptr); 2269 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2270 EXPECT_NE(subscriber, nullptr); 2271 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_UP; 2272 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2273 } 2274 2275 /** 2276 * @tc.name: KeySubscriberHandlerTest_OnSubscribeKeyEvent_004 2277 * @tc.desc: Test the funcation OnSubscribeKeyEvent 2278 * @tc.type: FUNC 2279 * @tc.require: 2280 */ 2281 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSubscribeKeyEvent_004, TestSize.Level1) 2282 { 2283 CALL_DEBUG_ENTER; 2284 KeySubscriberHandler handler; 2285 KeyEvent::KeyItem item; 2286 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2287 ASSERT_NE(keyEvent, nullptr); 2288 handler.enableCombineKey_ = false; 2289 keyEvent->SetKeyCode(KeyEvent::KEY_ACTION_UP); 2290 item.SetKeyCode(KeyEvent::KEYCODE_O); 2291 keyEvent->AddKeyItem(item); 2292 item.SetKeyCode(KeyEvent::KEYCODE_P); 2293 keyEvent->AddKeyItem(item); 2294 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 2295 handler.enableCombineKey_ = true; 2296 handler.hasEventExecuting_ = true; 2297 handler.keyEvent_ = KeyEvent::Create(); 2298 ASSERT_NE(handler.keyEvent_, nullptr); 2299 handler.keyEvent_->SetKeyCode(KeyEvent::KEY_ACTION_UP); 2300 handler.keyEvent_->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2301 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2302 item.SetKeyCode(KeyEvent::KEYCODE_O); 2303 handler.keyEvent_->AddKeyItem(item); 2304 item.SetKeyCode(KeyEvent::KEYCODE_P); 2305 handler.keyEvent_->AddKeyItem(item); 2306 ASSERT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 2307 handler.hasEventExecuting_ = false; 2308 handler.needSkipPowerKeyUp_ = true; 2309 keyEvent->SetKeyCode(KeyEvent::KEY_ACTION_CANCEL); 2310 ASSERT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 2311 } 2312 2313 /** 2314 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_003 2315 * @tc.desc: Test the funcation NotifySubscriber 2316 * @tc.type: FUNC 2317 * @tc.require: 2318 */ 2319 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_003, TestSize.Level1) 2320 { 2321 CALL_TEST_DEBUG; 2322 KeySubscriberHandler handler; 2323 SessionPtr sess; 2324 std::shared_ptr<KeyOption> keyOption; 2325 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2326 ASSERT_NE(keyEvent, nullptr); 2327 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2328 KeyEvent::KeyItem item; 2329 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 2330 keyEvent->AddKeyItem(item); 2331 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 2332 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2333 item.SetKeyCode(KeyEvent::KEYCODE_CAMERA); 2334 keyEvent->AddKeyItem(item); 2335 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 2336 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2337 } 2338 2339 /** 2340 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_004 2341 * @tc.desc: Test NotifySubscriber 2342 * @tc.type: FUNC 2343 * @tc.require: 2344 */ 2345 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_004, TestSize.Level1) 2346 { 2347 CALL_TEST_DEBUG; 2348 KeySubscriberHandler handler; 2349 SessionPtr sess; 2350 std::shared_ptr<KeyOption> keyOption; 2351 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2352 ASSERT_NE(keyEvent, nullptr); 2353 2354 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2355 ASSERT_NE(subscriber, nullptr); 2356 2357 keyEvent->keyCode_ = KeyEvent::KEYCODE_POWER; 2358 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2359 } 2360 2361 /** 2362 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_005 2363 * @tc.desc: Test NotifySubscriber 2364 * @tc.type: FUNC 2365 * @tc.require: 2366 */ 2367 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_005, TestSize.Level1) 2368 { 2369 CALL_TEST_DEBUG; 2370 KeySubscriberHandler handler; 2371 SessionPtr sess; 2372 std::shared_ptr<KeyOption> keyOption; 2373 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2374 ASSERT_NE(keyEvent, nullptr); 2375 2376 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2377 ASSERT_NE(subscriber, nullptr); 2378 keyEvent->keyCode_ = KeyEvent::KEYCODE_CAMERA; 2379 EXPECT_TRUE(EventLogHelper::IsBetaVersion()); 2380 EXPECT_FALSE(keyEvent->HasFlag(InputEvent::EVENT_FLAG_PRIVACY_MODE)); 2381 2382 NetPacket pkt(MmiMessageId::ON_SUBSCRIBE_KEY); 2383 EXPECT_FALSE(pkt.ChkRWError()); 2384 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 2385 } 2386 2387 /** 2388 * @tc.name: KeySubscriberHandlerTest_HandleKeyDown_003 2389 * @tc.desc: Test the funcation HandleKeyDown 2390 * @tc.type: FUNC 2391 * @tc.require: 2392 */ 2393 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyDown_003, TestSize.Level1) 2394 { 2395 CALL_DEBUG_ENTER; 2396 KeySubscriberHandler handler; 2397 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2398 ASSERT_NE(keyEvent, nullptr); 2399 auto keyOption = std::make_shared<KeyOption>(); 2400 keyOption->isFinalKeyDown_ = true; 2401 keyEvent->keyCode_ = 1; 2402 SessionPtr sess; 2403 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2404 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 2405 subscribers.push_back(subscriber); 2406 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 2407 keyOption->finalKey_ = 5; 2408 bool ret = handler.HandleKeyDown(keyEvent); 2409 ASSERT_FALSE(ret); 2410 keyOption->finalKey_ = 1; 2411 subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2412 subscribers.push_back(subscriber); 2413 handler.subscriberMap_.insert(std::make_pair(keyOption, subscribers)); 2414 KeyEvent::KeyItem item; 2415 item.SetKeyCode(KeyEvent::KEYCODE_CAMERA); 2416 keyEvent->AddKeyItem(item); 2417 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 2418 ret = handler.HandleKeyDown(keyEvent); 2419 ASSERT_FALSE(ret); 2420 } 2421 2422 /** 2423 * @tc.name: KeySubscriberHandlerTest_SubscriberNotifyNap_002 2424 * @tc.desc: Test the funcation SubscriberNotifyNap 2425 * @tc.type: FUNC 2426 * @tc.require: 2427 */ 2428 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscriberNotifyNap_002, TestSize.Level1) 2429 { 2430 CALL_TEST_DEBUG; 2431 KeySubscriberHandler handler; 2432 SessionPtr sess; 2433 std::shared_ptr<KeyOption> keyOption; 2434 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2435 NapProcess napProcess; 2436 napProcess.instance_->napClientPid_ = REMOVE_OBSERVER; 2437 ASSERT_NO_FATAL_FAILURE(handler.SubscriberNotifyNap(subscriber)); 2438 napProcess.instance_->napClientPid_ = UNOBSERVED; 2439 ASSERT_NO_FATAL_FAILURE(handler.SubscriberNotifyNap(subscriber)); 2440 napProcess.instance_->napClientPid_ = 10; 2441 ASSERT_NO_FATAL_FAILURE(handler.SubscriberNotifyNap(subscriber)); 2442 } 2443 2444 /** 2445 * @tc.name: KeySubscriberHandlerTest_SubscriberNotifyNap_003 2446 * @tc.desc: Test the funcation SubscriberNotifyNap 2447 * @tc.type: FUNC 2448 * @tc.require: 2449 */ 2450 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscriberNotifyNap_003, TestSize.Level1) 2451 { 2452 CALL_TEST_DEBUG; 2453 KeySubscriberHandler handler; 2454 SessionPtr sess; 2455 std::shared_ptr<KeyOption> keyOption; 2456 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2457 ASSERT_NE(subscriber, nullptr); 2458 2459 NapProcess napProcess; 2460 napProcess.instance_->napClientPid_ = ACTIVE_EVENT; 2461 OHOS::MMI::NapProcess::NapStatusData napData; 2462 napData.pid = 2; 2463 napData.uid = 3; 2464 napData.bundleName = "programName"; 2465 EXPECT_FALSE(napProcess.IsNeedNotify(napData)); 2466 ASSERT_NO_FATAL_FAILURE(handler.SubscriberNotifyNap(subscriber)); 2467 } 2468 2469 /** 2470 * @tc.name: KeySubscriberHandlerTest_SubscribeKeyEvent_003 2471 * @tc.desc: Test subscribe keyEvent 2472 * @tc.type: FUNC 2473 * @tc.require: 2474 */ 2475 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscribeKeyEvent_003, TestSize.Level1) 2476 { 2477 CALL_TEST_DEBUG; 2478 KeySubscriberHandler handler; 2479 int32_t subscribeId = 1; 2480 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2481 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2482 std::set<int32_t> preKeys = { 2017, 2018, 2019, 2072, 2046 }; 2483 keyOption->SetPreKeys(preKeys); 2484 EXPECT_EQ(handler.SubscribeKeyEvent(sess, subscribeId, keyOption), RET_ERR); 2485 } 2486 2487 /** 2488 * @tc.name: KeySubscriberHandlerTest_SubscribeKeyEvent_004 2489 * @tc.desc: Test subscribe keyEvent 2490 * @tc.type: FUNC 2491 * @tc.require: 2492 */ 2493 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscribeKeyEvent_004, TestSize.Level1) 2494 { 2495 CALL_TEST_DEBUG; 2496 KeySubscriberHandler handler; 2497 int32_t subscribeId = 1; 2498 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2499 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2500 keyOption->SetFinalKey(2072); 2501 keyOption->SetFinalKeyDown(true); 2502 keyOption->SetFinalKeyDownDuration(100); 2503 EXPECT_NE(handler.SubscribeKeyEvent(sess, subscribeId, keyOption), RET_OK); 2504 } 2505 2506 /** 2507 * @tc.name: KeySubscriberHandlerTest_RemoveKeyGestureSubscriber 2508 * @tc.desc: Test RemoveKeyGestureSubscriber 2509 * @tc.type: FUNC 2510 * @tc.require: 2511 */ 2512 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyGestureSubscriber, TestSize.Level1) 2513 { 2514 CALL_TEST_DEBUG; 2515 KeySubscriberHandler handler; 2516 int32_t subscribeId = 1; 2517 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2518 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2519 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2520 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2521 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> listSub; 2522 listSub.push_back(subscriber); 2523 subscribeId = 2; 2524 handler.keyGestures_.insert(std::make_pair(keyOption, listSub)); 2525 EXPECT_EQ(handler.RemoveKeyGestureSubscriber(sess, subscribeId), RET_ERR); 2526 } 2527 2528 /** 2529 * @tc.name: KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_001 2530 * @tc.desc: Test RemoveKeyGestureSubscriber 2531 * @tc.type: FUNC 2532 * @tc.require: 2533 */ 2534 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_001, TestSize.Level1) 2535 { 2536 CALL_TEST_DEBUG; 2537 KeySubscriberHandler handler; 2538 int32_t subscribeId = 1; 2539 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2540 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2541 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2542 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2543 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> listSub; 2544 listSub.push_back(subscriber); 2545 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2546 handler.keyGestures_.insert(std::make_pair(keyOption, listSub)); 2547 EXPECT_EQ(handler.RemoveKeyGestureSubscriber(session, subscribeId), RET_ERR); 2548 } 2549 2550 /** 2551 * @tc.name: KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_002 2552 * @tc.desc: Test RemoveKeyGestureSubscriber 2553 * @tc.type: FUNC 2554 * @tc.require: 2555 */ 2556 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveKeyGestureSubscriber_002, TestSize.Level1) 2557 { 2558 CALL_TEST_DEBUG; 2559 KeySubscriberHandler handler; 2560 int32_t subscribeId = 1; 2561 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2562 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2563 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2564 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2565 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> listSub; 2566 listSub.push_back(subscriber); 2567 handler.keyGestures_.insert(std::make_pair(keyOption, listSub)); 2568 EXPECT_EQ(handler.RemoveKeyGestureSubscriber(sess, subscribeId), RET_OK); 2569 } 2570 2571 /** 2572 * @tc.name: KeySubscriberHandlerTest_OnSessionDelete_002 2573 * @tc.desc: Test OnSessionDelete 2574 * @tc.type: FUNC 2575 * @tc.require: 2576 */ 2577 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSessionDelete_002, TestSize.Level1) 2578 { 2579 CALL_TEST_DEBUG; 2580 KeySubscriberHandler handler; 2581 int32_t subscribeId = 1; 2582 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2583 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2584 2585 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2586 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2587 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> listSub; 2588 listSub.push_back(subscriber); 2589 2590 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2591 std::shared_ptr<KeySubscriberHandler::Subscriber> keySubscriber = 2592 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, session, keyOption); 2593 listSub.push_back(keySubscriber); 2594 handler.keyGestures_.insert(std::make_pair(keyOption, listSub)); 2595 EXPECT_NO_FATAL_FAILURE(handler.OnSessionDelete(session)); 2596 } 2597 2598 /** 2599 * @tc.name: KeySubscriberHandlerTest_OnSessionDelete_003 2600 * @tc.desc: Test OnSessionDelete 2601 * @tc.type: FUNC 2602 * @tc.require: 2603 */ 2604 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_OnSessionDelete_003, TestSize.Level1) 2605 { 2606 CALL_TEST_DEBUG; 2607 KeySubscriberHandler handler; 2608 int32_t subscribeId = 1; 2609 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2610 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2611 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2612 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2613 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> listSub; 2614 handler.keyGestures_.insert(std::make_pair(keyOption, listSub)); 2615 EXPECT_NO_FATAL_FAILURE(handler.OnSessionDelete(sess)); 2616 } 2617 2618 /** 2619 * @tc.name: KeySubscriberHandlerTest_HandleKeyUpWithDelay_03 2620 * @tc.desc: Test HandleKeyUpWithDelay 2621 * @tc.type: FUNC 2622 * @tc.require: 2623 */ 2624 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUpWithDelay_03, TestSize.Level1) 2625 { 2626 CALL_TEST_DEBUG; 2627 KeySubscriberHandler handler; 2628 int32_t subscribeId = 1; 2629 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2630 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2631 keyOption->SetFinalKeyUpDelay(-1); 2632 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2633 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2634 std::shared_ptr<KeyEvent> keyEvent = nullptr; 2635 EXPECT_NO_FATAL_FAILURE(handler.HandleKeyUpWithDelay(keyEvent, subscriber)); 2636 } 2637 2638 /** 2639 * @tc.name: KeySubscriberHandlerTest_HandleKeyUpWithDelay_04 2640 * @tc.desc: Test HandleKeyUpWithDelay 2641 * @tc.type: FUNC 2642 * @tc.require: 2643 */ 2644 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyUpWithDelay_04, TestSize.Level1) 2645 { 2646 CALL_TEST_DEBUG; 2647 KeySubscriberHandler handler; 2648 int32_t subscribeId = 1; 2649 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2650 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2651 keyOption->SetFinalKeyUpDelay(100); 2652 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2653 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2654 std::shared_ptr<KeyEvent> keyEvent = nullptr; 2655 EXPECT_NO_FATAL_FAILURE(handler.HandleKeyUpWithDelay(keyEvent, subscriber)); 2656 } 2657 2658 /** 2659 * @tc.name: KeySubscriberHandlerTest_DumpSubscriber 2660 * @tc.desc: Test DumpSubscriber 2661 * @tc.type: FUNC 2662 * @tc.require: 2663 */ 2664 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_DumpSubscriber, TestSize.Level1) 2665 { 2666 CALL_TEST_DEBUG; 2667 KeySubscriberHandler handler; 2668 int32_t subscribeId = 1; 2669 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2670 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2671 keyOption->SetFinalKeyUpDelay(100); 2672 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2673 std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, keyOption); 2674 int32_t fd = 100; 2675 EXPECT_NO_FATAL_FAILURE(handler.DumpSubscriber(fd, subscriber)); 2676 2677 std::shared_ptr<KeyOption> option = std::make_shared<KeyOption>(); 2678 std::set<int32_t> preKeys = { 2020, 2021 }; 2679 option->SetPreKeys(preKeys); 2680 subscriber = std::make_shared<KeySubscriberHandler::Subscriber>(subscribeId, sess, option); 2681 EXPECT_NO_FATAL_FAILURE(handler.DumpSubscriber(fd, subscriber)); 2682 } 2683 2684 /** 2685 * @tc.name: KeySubscriberHandlerTest_InitDataShareListener 2686 * @tc.desc: Test InitDataShareListener 2687 * @tc.type: FUNC 2688 * @tc.require: 2689 */ 2690 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_InitDataShareListener, TestSize.Level1) 2691 { 2692 CALL_TEST_DEBUG; 2693 KeySubscriberHandler handler; 2694 EXPECT_NO_FATAL_FAILURE(handler.InitDataShareListener()); 2695 } 2696 2697 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 2698 /** 2699 * @tc.name: KeySubscriberHandlerTest_RejectCallProcess 2700 * @tc.desc: Test RejectCallProcess 2701 * @tc.type: FUNC 2702 * @tc.require: 2703 */ 2704 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RejectCallProcess, TestSize.Level1) 2705 { 2706 CALL_TEST_DEBUG; 2707 KeySubscriberHandler handler; 2708 EXPECT_NO_FATAL_FAILURE(handler.RejectCallProcess()); 2709 } 2710 2711 /** 2712 * @tc.name: KeySubscriberHandlerTest_HangUpCallProcess 2713 * @tc.desc: Test HangUpCallProcess 2714 * @tc.type: FUNC 2715 * @tc.require: 2716 */ 2717 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HangUpCallProcess, TestSize.Level1) 2718 { 2719 CALL_TEST_DEBUG; 2720 KeySubscriberHandler handler; 2721 EXPECT_NO_FATAL_FAILURE(handler.HangUpCallProcess()); 2722 } 2723 2724 /** 2725 * @tc.name: KeySubscriberHandlerTest_HandleCallEnded 2726 * @tc.desc: Test HandleCallEnded 2727 * @tc.type: FUNC 2728 * @tc.require: 2729 */ 2730 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleCallEnded, TestSize.Level1) 2731 { 2732 CALL_TEST_DEBUG; 2733 KeySubscriberHandler handler; 2734 auto keyEvent = KeyEvent::Create(); 2735 bool ret = false; 2736 handler.callBahaviorState_ = false; 2737 ret = handler.HandleCallEnded(keyEvent); 2738 ASSERT_FALSE(ret); 2739 handler.callBahaviorState_ = true; 2740 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_CANCEL); 2741 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 2742 ret = handler.HandleCallEnded(keyEvent); 2743 ASSERT_FALSE(ret); 2744 2745 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2746 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 2747 ret = handler.HandleCallEnded(keyEvent); 2748 ASSERT_FALSE(ret); 2749 2750 DISPLAY_MONITOR->SetScreenStatus(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON); 2751 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_DIALING; 2752 ret = handler.HandleCallEnded(keyEvent); 2753 ASSERT_FALSE(ret); 2754 2755 DEVICE_MONITOR->callState_ = CALL_STATUS_INCOMING; 2756 ret = handler.HandleCallEnded(keyEvent); 2757 ASSERT_FALSE(ret); 2758 2759 DEVICE_MONITOR->callState_ = 10; 2760 ret = handler.HandleCallEnded(keyEvent); 2761 ASSERT_FALSE(ret); 2762 } 2763 2764 /** 2765 * @tc.name: KeySubscriberHandlerTest_RemoveSubscriberTimer 2766 * @tc.desc: Test RemoveSubscriberTimer 2767 * @tc.type: FUNC 2768 * @tc.require: 2769 */ 2770 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveSubscriberTimer, TestSize.Level1) 2771 { 2772 CALL_TEST_DEBUG; 2773 KeySubscriberHandler handler; 2774 auto keyEvent = KeyEvent::Create(); 2775 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 2776 for (auto i = 0; i < 5; i++) { 2777 KeyEvent::KeyItem keyItem; 2778 keyItem.SetKeyCode(KeyEvent::KEYCODE_POWER); 2779 keyItem.SetPressed(true); 2780 keyEvent->keys_.push_back(keyItem); 2781 } 2782 EXPECT_NO_FATAL_FAILURE(handler.RemoveSubscriberTimer(keyEvent)); 2783 } 2784 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 2785 2786 /** 2787 * @tc.name: KeySubscriberHandlerTest_RemoveSubscriberKeyUpTimer 2788 * @tc.desc: Test RemoveSubscriberKeyUpTimer 2789 * @tc.type: FUNC 2790 * @tc.require: 2791 */ 2792 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveSubscriberKeyUpTimer, TestSize.Level1) 2793 { 2794 CALL_TEST_DEBUG; 2795 KeySubscriberHandler handler; 2796 auto keyEvent = KeyEvent::Create(); 2797 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 2798 EXPECT_NO_FATAL_FAILURE(handler.RemoveSubscriberKeyUpTimer(KeyEvent::KEYCODE_POWER)); 2799 } 2800 2801 /** 2802 * @tc.name: KeySubscriberHandlerTest_HandleKeyEvent_002 2803 * @tc.desc: Test HandleKeyEvent 2804 * @tc.type: FUNC 2805 * @tc.require:nhj 2806 */ 2807 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleKeyEvent_002, TestSize.Level1) 2808 { 2809 CALL_DEBUG_ENTER; 2810 KeySubscriberHandler handler; 2811 KeyEvent::KeyItem item; 2812 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 2813 ASSERT_NE(keyEvent, nullptr); 2814 handler.enableCombineKey_ = false; 2815 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 2816 item.SetKeyCode(KeyEvent::KEYCODE_A); 2817 keyEvent->AddKeyItem(item); 2818 item.SetKeyCode(KeyEvent::KEYCODE_B); 2819 keyEvent->AddKeyItem(item); 2820 EXPECT_FALSE(handler.OnSubscribeKeyEvent(keyEvent)); 2821 ASSERT_NO_FATAL_FAILURE(handler.HandleKeyEvent(keyEvent)); 2822 2823 handler.enableCombineKey_ = true; 2824 handler.hasEventExecuting_ = true; 2825 handler.keyEvent_ = KeyEvent::Create(); 2826 ASSERT_NE(handler.keyEvent_, nullptr); 2827 DISPLAY_MONITOR->screenStatus_ = EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF; 2828 handler.keyEvent_->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 2829 handler.keyEvent_->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2830 keyEvent->SetFourceMonitorFlag(true); 2831 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2832 item.SetKeyCode(KeyEvent::KEYCODE_A); 2833 handler.keyEvent_->AddKeyItem(item); 2834 item.SetKeyCode(KeyEvent::KEYCODE_B); 2835 handler.keyEvent_->AddKeyItem(item); 2836 EXPECT_TRUE(handler.OnSubscribeKeyEvent(keyEvent)); 2837 EXPECT_FALSE(keyEvent->HasFlag(InputEvent::EVENT_FLAG_PRIVACY_MODE)); 2838 ASSERT_NO_FATAL_FAILURE(handler.HandleKeyEvent(keyEvent)); 2839 } 2840 2841 /** 2842 * @tc.name: KeySubscriberHandlerTest_AddKeyGestureSubscriber_04 2843 * @tc.desc: Test AddKeyGestureSubscriber 2844 * @tc.type: FUNC 2845 * @tc.require: 2846 */ 2847 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddKeyGestureSubscriber_04, TestSize.Level1) 2848 { 2849 CALL_TEST_DEBUG; 2850 KeySubscriberHandler handler; 2851 SessionPtr sess; 2852 std::shared_ptr<KeyOption> keyOption; 2853 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(3, sess, keyOption); 2854 subscriber->timerId_ = 1; 2855 2856 auto keyOption1 = std::make_shared<KeyOption>(); 2857 keyOption1->SetFinalKey(1); 2858 keyOption1->SetFinalKeyDown(false); 2859 auto keyOption2 = std::make_shared<KeyOption>(); 2860 keyOption2->SetFinalKey(1); 2861 keyOption2->SetFinalKeyDown(true); 2862 2863 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>> subscribers; 2864 auto subscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2865 auto subscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 2866 subscribers.push_back(subscriber1); 2867 subscribers.push_back(subscriber2); 2868 handler.keyGestures_.insert({keyOption2, subscribers}); 2869 2870 for (auto &iter : handler.keyGestures_) { 2871 EXPECT_FALSE(handler.IsEqualKeyOption(keyOption1, iter.first)); 2872 } 2873 EXPECT_EQ(handler.AddKeyGestureSubscriber(subscriber, keyOption), RET_ERR); 2874 } 2875 2876 /** 2877 * @tc.name: KeySubscriberHandlerTest_AddKeyGestureSubscriber_05 2878 * @tc.desc: Test AddKeyGestureSubscriber 2879 * @tc.type: FUNC 2880 * @tc.require: 2881 */ 2882 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddKeyGestureSubscriber_05, TestSize.Level1) 2883 { 2884 CALL_TEST_DEBUG; 2885 KeySubscriberHandler handler; 2886 SessionPtr sess; 2887 std::shared_ptr<KeyOption> keyOption; 2888 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 2889 subscriber->timerId_ = -1; 2890 ASSERT_NO_FATAL_FAILURE(handler.AddKeyGestureSubscriber(subscriber, keyOption)); 2891 EXPECT_EQ(handler.AddKeyGestureSubscriber(subscriber, keyOption), RET_ERR); 2892 } 2893 2894 /** 2895 * @tc.name: KeySubscriberHandlerTest_SubscribeHotkey 2896 * @tc.desc: Test SubscribeHotkey 2897 * @tc.type: FUNC 2898 * @tc.require: 2899 */ 2900 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_SubscribeHotkey, TestSize.Level1) 2901 { 2902 CALL_DEBUG_ENTER; 2903 KeySubscriberHandler handler; 2904 int32_t subscribeId = 1; 2905 SessionPtr sess = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2906 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2907 std::set<int32_t> preKeys; 2908 preKeys.insert(1); 2909 keyOption->SetPreKeys(preKeys); 2910 uint32_t preKeySize = keyOption->GetPreKeys().size(); 2911 ASSERT_NE(preKeySize, MAX_PRE_KEY_COUNT); 2912 ASSERT_NE(handler.SubscribeHotkey(sess, subscribeId, keyOption), RET_OK); 2913 preKeys.insert(2); 2914 preKeys.insert(3); 2915 preKeys.insert(4); 2916 preKeys.insert(5); 2917 preKeys.insert(6); 2918 keyOption->SetPreKeys(preKeys); 2919 ASSERT_EQ(handler.SubscribeHotkey(sess, subscribeId, keyOption), RET_ERR); 2920 } 2921 2922 /** 2923 * @tc.name: KeySubscriberHandlerTest_UnsubscribeHotkey 2924 * @tc.desc: Test UnsubscribeHotkey 2925 * @tc.type: FUNC 2926 * @tc.require: 2927 */ 2928 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_UnsubscribeHotkey, TestSize.Level1) 2929 { 2930 CALL_DEBUG_ENTER; 2931 KeySubscriberHandler handler; 2932 int32_t subscribeId = 1; 2933 int32_t id = 1; 2934 std::list<std::shared_ptr<KeySubscriberHandler::Subscriber>> subscriberList; 2935 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 2936 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 2937 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 2938 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 2939 subscriberList.push_back(subscriber); 2940 handler.subscriberMap_.insert(std::make_pair(keyOption, subscriberList)); 2941 ASSERT_NE(handler.UnsubscribeHotkey(session, subscribeId), RET_ERR); 2942 } 2943 2944 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 2945 /** 2946 * @tc.name: KeySubscriberHandlerTest_HandleCallEnded 2947 * @tc.desc: Test HandleCallEnded 2948 * @tc.type: FUNC 2949 * @tc.require: 2950 */ 2951 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleCallEnded001, TestSize.Level1) 2952 { 2953 CALL_TEST_DEBUG; 2954 KeySubscriberHandler handler; 2955 auto keyEvent = KeyEvent::Create(); 2956 bool ret = false; 2957 handler.callBahaviorState_ = false; 2958 ret = handler.HandleCallEnded(keyEvent); 2959 ASSERT_FALSE(ret); 2960 handler.callBahaviorState_ = true; 2961 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 2962 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CUSTOM1); 2963 ret = handler.HandleCallEnded(keyEvent); 2964 ASSERT_FALSE(ret); 2965 2966 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 2967 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 2968 ret = handler.HandleCallEnded(keyEvent); 2969 ASSERT_FALSE(ret); 2970 2971 DISPLAY_MONITOR->SetScreenStatus(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF); 2972 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_DIALING; 2973 ret = handler.HandleCallEnded(keyEvent); 2974 ASSERT_FALSE(ret); 2975 2976 DEVICE_MONITOR->callState_ = CALL_STATUS_INCOMING; 2977 ret = handler.HandleCallEnded(keyEvent); 2978 ASSERT_FALSE(ret); 2979 2980 DEVICE_MONITOR->callState_ = 10; 2981 ret = handler.HandleCallEnded(keyEvent); 2982 ASSERT_FALSE(ret); 2983 } 2984 2985 /** 2986 * @tc.name: KeySubscriberHandlerTest_HandleCallEnded 2987 * @tc.desc: Test HandleCallEnded 2988 * @tc.type: FUNC 2989 * @tc.require: 2990 */ 2991 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleCallEnded002, TestSize.Level1) 2992 { 2993 CALL_TEST_DEBUG; 2994 KeySubscriberHandler handler; 2995 auto keyEvent = KeyEvent::Create(); 2996 bool ret = true; 2997 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 2998 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CUSTOM1); 2999 3000 DISPLAY_MONITOR->SetScreenStatus(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON); 3001 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_DIALING; 3002 ret = handler.HandleCallEnded(keyEvent); 3003 ASSERT_FALSE(ret); 3004 3005 DEVICE_MONITOR->callState_ = CALL_STATUS_WAITING; 3006 ret = handler.HandleCallEnded(keyEvent); 3007 ASSERT_FALSE(ret); 3008 3009 DEVICE_MONITOR->callState_ = CALL_STATUS_DISCONNECTED; 3010 ret = handler.HandleCallEnded(keyEvent); 3011 ASSERT_FALSE(ret); 3012 3013 DEVICE_MONITOR->callState_ = CALL_STATUS_DISCONNECTING; 3014 ret = handler.HandleCallEnded(keyEvent); 3015 ASSERT_FALSE(ret); 3016 } 3017 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 3018 3019 /** 3020 * @tc.name: KeySubscriberHandlerTest_RemoveSubscriberKeyUpTimer 3021 * @tc.desc: Test RemoveSubscriberKeyUpTimer 3022 * @tc.type: FUNC 3023 * @tc.require: 3024 */ 3025 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_RemoveSubscriberKeyUpTimer001, TestSize.Level1) 3026 { 3027 CALL_TEST_DEBUG; 3028 KeySubscriberHandler handler; 3029 auto keyEvent = KeyEvent::Create(); 3030 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 3031 3032 UDSServer udsServer; 3033 auto keyOption = std::make_shared<KeyOption>(); 3034 SessionPtr sess = udsServer.GetSessionByPid(1); 3035 std::list<std::shared_ptr<OHOS::MMI::KeySubscriberHandler::Subscriber>>subscriberMap_; 3036 auto newSubscriber1 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 3037 auto newSubscriber2 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(2, sess, keyOption); 3038 auto newSubscriber3 = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(3, sess, keyOption); 3039 subscriberMap_.push_back(newSubscriber1); 3040 subscriberMap_.push_back(newSubscriber2); 3041 subscriberMap_.push_back(newSubscriber3); 3042 EXPECT_NO_FATAL_FAILURE(handler.RemoveSubscriberKeyUpTimer(KeyEvent::KEYCODE_POWER)); 3043 for (auto& sub : subscriberMap_) { 3044 ASSERT_EQ(sub->timerId_, -1); 3045 ASSERT_NE(sub->keyOption_->GetFinalKey(), KeyEvent::KEYCODE_POWER); 3046 } 3047 } 3048 3049 /** 3050 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_007 3051 * @tc.desc: Test Is Enable CombineKey 3052 * @tc.type: FUNC 3053 * @tc.require: 3054 */ 3055 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_007, TestSize.Level1) 3056 { 3057 CALL_DEBUG_ENTER; 3058 KeySubscriberHandler handler; 3059 KeyEvent::KeyItem item; 3060 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3061 handler.enableCombineKey_ = false; 3062 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 3063 item.SetKeyCode(KeyEvent::KEYCODE_A); 3064 keyEvent->AddKeyItem(item); 3065 ASSERT_TRUE(handler.IsEnableCombineKey(keyEvent)); 3066 3067 keyEvent->SetKeyCode(KeyEvent::KEYCODE_R); 3068 ASSERT_FALSE(handler.IsEnableCombineKey(keyEvent)); 3069 } 3070 3071 /** 3072 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKeyRecord_001 3073 * @tc.desc: Test is enable combine key record 3074 * @tc.type: FUNC 3075 * @tc.require: 3076 */ 3077 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKeyRecord_001, TestSize.Level1) 3078 { 3079 CALL_TEST_DEBUG; 3080 KeySubscriberHandler handler; 3081 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3082 ASSERT_NE(keyEvent, nullptr); 3083 KeyEvent::KeyItem item; 3084 item.SetKeyCode(KeyEvent::KEYCODE_CTRL_LEFT); 3085 keyEvent->AddKeyItem(item); 3086 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CTRL_LEFT); 3087 ASSERT_TRUE(handler.IsEnableCombineKeyRecord(keyEvent)); 3088 3089 item.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3090 keyEvent->AddKeyItem(item); 3091 keyEvent->SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3092 ASSERT_TRUE(handler.IsEnableCombineKeyRecord(keyEvent)); 3093 3094 item.SetKeyCode(KeyEvent::KEYCODE_DPAD_RIGHT); 3095 keyEvent->AddKeyItem(item); 3096 keyEvent->SetKeyCode(KeyEvent::KEYCODE_DPAD_RIGHT); 3097 ASSERT_TRUE(handler.IsEnableCombineKeyRecord(keyEvent)); 3098 3099 item.SetKeyCode(KeyEvent::KEYCODE_CTRL_RIGHT); 3100 keyEvent->AddKeyItem(item); 3101 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CTRL_RIGHT); 3102 ASSERT_TRUE(handler.IsEnableCombineKeyRecord(keyEvent)); 3103 3104 item.SetKeyCode(KeyEvent::KEYCODE_A); 3105 keyEvent->AddKeyItem(item); 3106 keyEvent->SetKeyCode(KeyEvent::KEYCODE_A); 3107 ASSERT_TRUE(handler.IsEnableCombineKeyRecord(keyEvent)); 3108 } 3109 3110 /** 3111 * @tc.name: KeySubscriberHandlerTest_InterceptByVm_001 3112 * @tc.desc: Test InterceptByVm 3113 * @tc.type: FUNC 3114 * @tc.require: 3115 */ 3116 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_InterceptByVm_001, TestSize.Level1) 3117 { 3118 CALL_TEST_DEBUG; 3119 KeySubscriberHandler handler; 3120 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3121 ASSERT_NE(keyEvent, nullptr); 3122 KeyEvent::KeyItem item; 3123 item.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3124 keyEvent->AddKeyItem(item); 3125 keyEvent->SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3126 ASSERT_TRUE(handler.InterceptByVm(keyEvent)); 3127 3128 item.SetKeyCode(KeyEvent::KEYCODE_SHIFT_LEFT); 3129 keyEvent->AddKeyItem(item); 3130 keyEvent->SetKeyCode(KeyEvent::KEYCODE_SHIFT_LEFT); 3131 ASSERT_TRUE(handler.InterceptByVm(keyEvent)); 3132 3133 item.SetKeyCode(KeyEvent::KEYCODE_E); 3134 keyEvent->AddKeyItem(item); 3135 keyEvent->SetKeyCode(KeyEvent::KEYCODE_E); 3136 ASSERT_FALSE(handler.InterceptByVm(keyEvent)); 3137 } 3138 3139 /** 3140 * @tc.name: KeySubscriberHandlerTest_InterceptByVm_002 3141 * @tc.desc: Test InterceptByVm 3142 * @tc.type: FUNC 3143 * @tc.require: 3144 */ 3145 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_InterceptByVm_002, TestSize.Level1) 3146 { 3147 CALL_TEST_DEBUG; 3148 KeySubscriberHandler handler; 3149 const std::vector<int32_t> LOGO_LEFTSHIFT_E = { 3150 KeyEvent::KEYCODE_META_LEFT, KeyEvent::KEYCODE_SHIFT_LEFT, KeyEvent::KEYCODE_E}; 3151 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3152 ASSERT_NE(keyEvent, nullptr); 3153 KeyEvent::KeyItem item; 3154 item.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3155 keyEvent->AddKeyItem(item); 3156 keyEvent->SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 3157 item.SetKeyCode(KeyEvent::KEYCODE_SHIFT_LEFT); 3158 keyEvent->AddKeyItem(item); 3159 keyEvent->SetKeyCode(KeyEvent::KEYCODE_SHIFT_LEFT); 3160 item.SetKeyCode(KeyEvent::KEYCODE_E); 3161 keyEvent->AddKeyItem(item); 3162 keyEvent->SetKeyCode(KeyEvent::KEYCODE_E); 3163 ASSERT_FALSE(handler.InterceptByVm(keyEvent)); 3164 for (auto&& keyItem : keyEvent->GetKeyItems()) { 3165 for (auto &&k : LOGO_LEFTSHIFT_E) { 3166 if (keyItem.GetKeyCode() == k) { 3167 ASSERT_FALSE(handler.InterceptByVm(keyEvent)); 3168 } 3169 } 3170 } 3171 size_t waitMatchCnt{LOGO_LEFTSHIFT_E.size()}; 3172 ASSERT_NE(waitMatchCnt, 0); 3173 ASSERT_NO_FATAL_FAILURE(handler.InterceptByVm(keyEvent)); 3174 } 3175 3176 #ifdef OHOS_BUILD_ENABLE_CALL_MANAGER 3177 /** 3178 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_011 3179 * @tc.desc: Test ring mute 3180 * @tc.type: FUNC 3181 * @tc.require: 3182 */ 3183 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_011, TestSize.Level1) 3184 { 3185 CALL_TEST_DEBUG; 3186 KeySubscriberHandler keySubscriberHandler; 3187 3188 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3189 ASSERT_NE(keyEvent, nullptr); 3190 keyEvent->keyCode_ = KeyEvent::KEYCODE_VOLUME_UP; 3191 3192 DEVICE_MONITOR->callState_ = StateType::CALL_STATUS_INCOMING; 3193 std::shared_ptr<OHOS::Telephony::CallManagerClient> callManagerClientPtr = nullptr; 3194 ASSERT_FALSE(keySubscriberHandler.HandleRingMute(keyEvent)); 3195 } 3196 3197 /** 3198 * @tc.name: KeySubscriberHandlerTest_HandleRingMute_012 3199 * @tc.desc: Test ring mute 3200 * @tc.type: FUNC 3201 * @tc.require: 3202 */ 3203 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_HandleRingMute_012, TestSize.Level1) 3204 { 3205 CALL_TEST_DEBUG; 3206 KeySubscriberHandler keySubscriberHandler; 3207 3208 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3209 ASSERT_NE(keyEvent, nullptr); 3210 keyEvent->SetKeyCode(KeyEvent::KEYCODE_VOLUME_UP); 3211 OHOS::EventFwk::Want want; 3212 want.SetParam("state", StateType::CALL_STATUS_INCOMING); 3213 OHOS::EventFwk::CommonEventData data; 3214 data.SetWant(want); 3215 int callState = 1; 3216 DEVICE_MONITOR->SetCallState(data, callState); 3217 bool result = keySubscriberHandler.HandleRingMute(keyEvent); 3218 ASSERT_FALSE(result); 3219 ASSERT_FALSE(DEVICE_MONITOR->GetHasHandleRingMute()); 3220 ASSERT_FALSE(keySubscriberHandler.needSkipPowerKeyUp_); 3221 3222 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 3223 result = keySubscriberHandler.HandleRingMute(keyEvent); 3224 ASSERT_FALSE(DEVICE_MONITOR->GetHasHandleRingMute()); 3225 } 3226 #endif // OHOS_BUILD_ENABLE_CALL_MANAGER 3227 3228 3229 /** 3230 * @tc.name: KeySubscriberHandlerTest_ProcessKeyEvent_01 3231 * @tc.desc: Test ring mute 3232 * @tc.type: FUNC 3233 * @tc.require: 3234 */ 3235 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_ProcessKeyEvent_01, TestSize.Level1) 3236 { 3237 CALL_TEST_DEBUG; 3238 KeySubscriberHandler handler; 3239 SessionPtr sess; 3240 std::shared_ptr<KeyOption> keyOption; 3241 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3242 ASSERT_NE(keyEvent, nullptr); 3243 3244 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 3245 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 3246 keyEvent->AddFlag(InputEvent::EVENT_FLAG_TOUCHPAD_POINTER); 3247 EXPECT_TRUE(EventLogHelper::IsBetaVersion()); 3248 EXPECT_FALSE(keyEvent->HasFlag(InputEvent::EVENT_FLAG_PRIVACY_MODE)); 3249 ASSERT_NO_FATAL_FAILURE(handler.ProcessKeyEvent(keyEvent)); 3250 } 3251 3252 /** 3253 * @tc.name: KeySubscriberHandlerTest_ProcessKeyEvent_02 3254 * @tc.desc: Test ring mute 3255 * @tc.type: FUNC 3256 * @tc.require: 3257 */ 3258 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_ProcessKeyEvent_02, TestSize.Level1) 3259 { 3260 CALL_TEST_DEBUG; 3261 KeySubscriberHandler handler; 3262 SessionPtr sess; 3263 std::shared_ptr<KeyOption> keyOption; 3264 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3265 ASSERT_NE(keyEvent, nullptr); 3266 3267 handler.needSkipPowerKeyUp_ = true; 3268 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 3269 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 3270 std::vector<int32_t> pressedKeys; 3271 pressedKeys.push_back(KeyEvent::KEYCODE_B); 3272 pressedKeys.push_back(KeyEvent::KEYCODE_C); 3273 KeyEvent::KeyItem item; 3274 keyEvent->SetKeyCode(KeyEvent::KEYCODE_BRIGHTNESS_DOWN); 3275 item.SetKeyCode(KeyEvent::KEYCODE_A); 3276 keyEvent->AddKeyItem(item); 3277 item.SetKeyCode(KeyEvent::KEYCODE_B); 3278 keyEvent->AddKeyItem(item); 3279 keyEvent->AddPressedKeyItems(item); 3280 3281 bool result = handler.ProcessKeyEvent(keyEvent); 3282 ASSERT_FALSE(result); 3283 } 3284 3285 /** 3286 * @tc.name: KeySubscriberHandlerTest_NotifySubscriber_006 3287 * @tc.desc: Test the funcation NotifySubscriber 3288 * @tc.type: FUNC 3289 * @tc.require: 3290 */ 3291 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_NotifySubscriber_006, TestSize.Level1) 3292 { 3293 CALL_TEST_DEBUG; 3294 KeySubscriberHandler handler; 3295 SessionPtr sess; 3296 std::shared_ptr<KeyOption> keyOption; 3297 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3298 ASSERT_NE(keyEvent, nullptr); 3299 auto subscriber = std::make_shared<OHOS::MMI::KeySubscriberHandler::Subscriber>(1, sess, keyOption); 3300 KeyEvent::KeyItem item; 3301 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 3302 keyEvent->AddKeyItem(item); 3303 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 3304 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 3305 item.SetKeyCode(KeyEvent::KEYCODE_CAMERA); 3306 keyEvent->AddKeyItem(item); 3307 keyEvent->SetKeyCode(KeyEvent::KEYCODE_CAMERA); 3308 ASSERT_NO_FATAL_FAILURE(handler.NotifySubscriber(keyEvent, subscriber)); 3309 } 3310 3311 /** 3312 * @tc.name: KeySubscriberHandlerTest_AddTimer_002 3313 * @tc.desc: Test the funcation AddTimer 3314 * @tc.type: FUNC 3315 * @tc.require: 3316 */ 3317 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddTimer_002, TestSize.Level1) 3318 { 3319 CALL_TEST_DEBUG; 3320 KeySubscriberHandler handler; 3321 int32_t id = 1; 3322 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 3323 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 3324 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 3325 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 3326 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3327 ASSERT_NE(keyEvent, nullptr); 3328 subscriber->timerId_ = 1; 3329 bool ret = handler.AddTimer(subscriber, keyEvent); 3330 ASSERT_TRUE(ret); 3331 subscriber->keyOption_->SetFinalKeyDown(true); 3332 subscriber->keyOption_->SetFinalKeyDownDuration(0); 3333 ret = handler.AddTimer(subscriber, keyEvent); 3334 ASSERT_TRUE(ret); 3335 subscriber->keyOption_->SetFinalKeyDown(false); 3336 ret = handler.AddTimer(subscriber, keyEvent); 3337 ASSERT_TRUE(ret); 3338 } 3339 3340 /** 3341 * @tc.name: KeySubscriberHandlerTest_AddTimer_003 3342 * @tc.desc: Test the funcation AddTimer 3343 * @tc.type: FUNC 3344 * @tc.require: 3345 */ 3346 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddTimer_003, TestSize.Level1) 3347 { 3348 CALL_TEST_DEBUG; 3349 KeySubscriberHandler handler; 3350 int32_t id = 1; 3351 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 3352 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 3353 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 3354 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 3355 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3356 bool ret = handler.AddTimer(subscriber, nullptr); 3357 ASSERT_FALSE(ret); 3358 ret = handler.AddTimer(nullptr, keyEvent); 3359 ASSERT_FALSE(ret); 3360 } 3361 3362 /** 3363 * @tc.name: KeySubscriberHandlerTest_AddTimer_004 3364 * @tc.desc: Test the funcation AddTimer 3365 * @tc.type: FUNC 3366 * @tc.require: 3367 */ 3368 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddTimer_004, TestSize.Level1) 3369 { 3370 CALL_TEST_DEBUG; 3371 KeySubscriberHandler handler; 3372 int32_t id = 1; 3373 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 3374 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 3375 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 3376 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 3377 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 3378 ASSERT_NE(keyEvent, nullptr); 3379 ASSERT_TRUE(handler.CloneKeyEvent(keyEvent)); 3380 auto ret = handler.AddTimer(subscriber, keyEvent); 3381 ASSERT_TRUE(ret); 3382 } 3383 3384 /** 3385 * @tc.name: KeySubscriberHandlerTest_AddTimer_005 3386 * @tc.desc: Test the funcation AddTimer 3387 * @tc.type: FUNC 3388 * @tc.require: 3389 */ 3390 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_AddTimer_005, TestSize.Level1) 3391 { 3392 CALL_TEST_DEBUG; 3393 KeySubscriberHandler handler; 3394 int32_t id = 1; 3395 SessionPtr session = std::make_shared<UDSSession>(PROGRAM_NAME, MODULE_TYPE, UDS_FD, UDS_UID, UDS_PID); 3396 std::shared_ptr<KeyOption> keyOption = std::make_shared<KeyOption>(); 3397 std::shared_ptr<KeySubscriberHandler::Subscriber> subscriber = 3398 std::make_shared<KeySubscriberHandler::Subscriber>(id, session, keyOption); 3399 std::shared_ptr<KeyEvent> keyEvent = nullptr; 3400 subscriber->timerId_ = -1; 3401 bool ret = handler.AddTimer(subscriber, keyEvent); 3402 ASSERT_FALSE(ret); 3403 ASSERT_FALSE(handler.CloneKeyEvent(keyEvent)); 3404 } 3405 3406 /** 3407 * @tc.name: TabletSubscriberHandlerTest_SubscribeTabletProximity 3408 * @tc.desc: Test the funcation AboutSubscribeTabletProximity 3409 * @tc.type: FUNC 3410 * @tc.require: 3411 */ 3412 HWTEST_F(KeySubscriberHandlerTest, TabletSubscriberHandlerTest_SubscribeTabletProximity, TestSize.Level1) 3413 { 3414 CALL_TEST_DEBUG; 3415 auto tabletSubscriberHandler = TABLET_SCRIBER_HANDLER; 3416 SessionPtr sess; 3417 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->SubscribeTabletProximity(sess, 0)); 3418 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->SubscribeTabletProximity(sess, -1)); 3419 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->SubscribeTabletProximity(sess, 1)); 3420 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->SubscribeTabletProximity(sess, 0)); 3421 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->SubscribeTabletProximity(nullptr, 0)); 3422 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->UnsubscribetabletProximity(nullptr, 0)); 3423 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->UnsubscribetabletProximity(nullptr, -1)); 3424 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->UnsubscribetabletProximity(sess, 0)); 3425 } 3426 3427 /** 3428 * @tc.name: TabletSubscriberHandlerTest_OnSubscribeTabletProximity 3429 * @tc.desc: Test the funcation OnSubscribeTabletProximity 3430 * @tc.type: FUNC 3431 * @tc.require: 3432 */ 3433 HWTEST_F(KeySubscriberHandlerTest, TabletSubscriberHandlerTest_OnSubscribeTabletProximity, TestSize.Level1) 3434 { 3435 CALL_TEST_DEBUG; 3436 auto tabletSubscriberHandler = TABLET_SCRIBER_HANDLER; 3437 SessionPtr sess; 3438 tabletSubscriberHandler->SubscribeTabletProximity(sess, 0); 3439 auto pointerEvent = std::make_shared<PointerEvent>(0); 3440 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->OnSubscribeTabletProximity(pointerEvent)); 3441 auto pointerEvent2 = std::make_shared<PointerEvent>(PointerEvent::POINTER_ACTION_PROXIMITY_OUT); 3442 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->OnSubscribeTabletProximity(pointerEvent2)); 3443 auto pointerEvent3 = std::make_shared<PointerEvent>(PointerEvent::POINTER_ACTION_PROXIMITY_IN); 3444 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->OnSubscribeTabletProximity(pointerEvent3)); 3445 } 3446 3447 /** 3448 * @tc.name: TabletSubscriberHandlerTest_OnSessionDelete 3449 * @tc.desc: Test the funcation OnSessionDelete 3450 * @tc.type: FUNC 3451 * @tc.require: 3452 */ 3453 HWTEST_F(KeySubscriberHandlerTest, TabletSubscriberHandlerTest_OnSessionDelete, TestSize.Level1) 3454 { 3455 CALL_TEST_DEBUG; 3456 auto tabletSubscriberHandler = TABLET_SCRIBER_HANDLER; 3457 SessionPtr sess; 3458 SessionPtr sess2; 3459 tabletSubscriberHandler->SubscribeTabletProximity(sess, 0); 3460 tabletSubscriberHandler->SubscribeTabletProximity(sess2, 0); 3461 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->OnSessionDelete(sess)); 3462 ASSERT_NO_FATAL_FAILURE(tabletSubscriberHandler->OnSessionDelete(sess)); 3463 } 3464 } // namespace MMI 3465 } // namespace OHOS 3466