1 /* 2 * Copyright (c) 2023 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 <gtest/gtest.h> 17 #include <fstream> 18 19 #include "key_subscriber_handler.h" 20 #include "switch_subscriber_handler.h" 21 #include "mmi_log.h" 22 #include "uds_server.h" 23 24 namespace OHOS { 25 namespace MMI { 26 namespace { 27 using namespace testing::ext; 28 constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { LOG_CORE, MMI_LOG_DOMAIN, "KeyCommandHandlerTest" }; 29 } // namespace 30 31 class KeySubscriberHandlerTest : public testing::Test { 32 public: SetUpTestCase(void)33 static void SetUpTestCase(void) {} TearDownTestCase(void)34 static void TearDownTestCase(void) {} 35 }; 36 37 /** 38 * @tc.name: InputWindowsManagerTest_UnsubscribeKeyEvent_001 39 * @tc.desc: Test UnsubscribeKeyEvent 40 * @tc.type: FUNC 41 * @tc.require: 42 */ 43 HWTEST_F(KeySubscriberHandlerTest, InputWindowsManagerTest_UnsubscribeKeyEvent_001, TestSize.Level1) 44 { 45 KeySubscriberHandler keySubscriberHandler; 46 auto keyEvent = KeyEvent::Create(); 47 keySubscriberHandler.HandleKeyEvent(keyEvent); 48 auto pointerEvent = PointerEvent::Create(); 49 keySubscriberHandler.HandlePointerEvent(pointerEvent); 50 keySubscriberHandler.HandleTouchEvent(pointerEvent); 51 keySubscriberHandler.RemoveSubscriberKeyUpTimer(1); 52 std::vector<std::string> args = {}; 53 keySubscriberHandler.Dump(1, args); 54 55 UDSServer udsServer; 56 SessionPtr sess = udsServer.GetSessionByPid(1); 57 std::shared_ptr<KeyOption> keyOption = nullptr; 58 ASSERT_EQ(keySubscriberHandler.SubscribeKeyEvent(sess, -1, keyOption), -1); 59 SessionPtr sessPtr = nullptr; 60 ASSERT_NE(keySubscriberHandler.UnsubscribeKeyEvent(sessPtr, -1), 0); 61 ASSERT_NE(keySubscriberHandler.UnsubscribeKeyEvent(sess, 1), 0); 62 } 63 64 /** 65 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_001 66 * @tc.desc: Test IsEnableCombineKey 67 * @tc.type: FUNC 68 * @tc.require: 69 */ 70 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_001, TestSize.Level1) 71 { 72 KeySubscriberHandler keySubscriberHandler; 73 keySubscriberHandler.EnableCombineKey(false); 74 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 75 CHKPV(keyEvent); 76 KeyEvent::KeyItem item; 77 item.SetKeyCode(KeyEvent::KEYCODE_POWER); 78 keyEvent->AddKeyItem(item); 79 keyEvent->SetKeyCode(KeyEvent::KEYCODE_POWER); 80 keySubscriberHandler.HandleKeyEvent(keyEvent); 81 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 82 } 83 84 /** 85 * @tc.name: KeySubscriberHandlerTest_IsEnableCombineKey_002 86 * @tc.desc: Test IsEnableCombineKey 87 * @tc.type: FUNC 88 * @tc.require: 89 */ 90 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_IsEnableCombineKey_002, TestSize.Level1) 91 { 92 KeySubscriberHandler keySubscriberHandler; 93 keySubscriberHandler.EnableCombineKey(false); 94 std::shared_ptr<KeyEvent> keyEvent = KeyEvent::Create(); 95 CHKPV(keyEvent); 96 KeyEvent::KeyItem item1; 97 item1.SetKeyCode(KeyEvent::KEYCODE_META_LEFT); 98 keyEvent->AddKeyItem(item1); 99 KeyEvent::KeyItem item2; 100 item2.SetKeyCode(KeyEvent::KEYCODE_L); 101 keyEvent->AddKeyItem(item2); 102 keyEvent->SetKeyCode(KeyEvent::KEYCODE_L); 103 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 104 } 105 106 /** 107 * @tc.name: KeySubscriberHandlerTest_EnableCombineKey_001 108 * @tc.desc: Test enable combineKey 109 * @tc.type: FUNC 110 * @tc.require: 111 */ 112 HWTEST_F(KeySubscriberHandlerTest, KeySubscriberHandlerTest_EnableCombineKey_001, TestSize.Level1) 113 { 114 KeySubscriberHandler keySubscriberHandler; 115 ASSERT_EQ(keySubscriberHandler.EnableCombineKey(true), RET_OK); 116 } 117 } // namespace MMI 118 } // namespace OHOS 119