1/* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include <fstream> 17 18#include <gtest/gtest.h> 19 20#include "nap_process.h" 21 22namespace OHOS { 23namespace MMI { 24namespace { 25using namespace testing::ext; 26constexpr int32_t REMOVE_OBSERVER = -2; 27constexpr int32_t NAP_EVENT = 0; 28constexpr int32_t SUBSCRIBED = 1; 29constexpr int32_t ACTIVE_EVENT = 2; 30} // namespace 31 32class NapProcessTest : public testing::Test { 33public: 34 static void SetUpTestCase(void) {} 35 static void TearDownTestCase(void) {} 36}; 37 38/** 39 * @tc.name: NapProcessTest_Init_001 40 * @tc.desc: Test init 41 * @tc.type: FUNC 42 * @tc.require: 43 */ 44HWTEST_F(NapProcessTest, NapProcessTest_Init_001, TestSize.Level1) 45{ 46 UDSServer udsServer; 47 NapProcess napProcess; 48 napProcess.Init(udsServer); 49 ASSERT_EQ(&udsServer, napProcess.udsServer_); 50} 51 52/** 53 * @tc.name: NapProcessTest_NotifyBundleName_001 54 * @tc.desc: Test notify bundle name 55 * @tc.type: FUNC 56 * @tc.require: 57 */ 58HWTEST_F(NapProcessTest, NapProcessTest_NotifyBundleName_001, TestSize.Level1) 59{ 60 NapProcess napProcess; 61 NapProcess::NapStatusData data; 62 data.pid = -1; 63 data.uid = 1000; 64 data.bundleName = "com.example.app"; 65 int32_t syncState = 1; 66 int32_t result = napProcess.NotifyBundleName(data, syncState); 67 ASSERT_EQ(result, RET_ERR); 68 data.pid = 1234; 69 result = napProcess.NotifyBundleName(data, syncState); 70 ASSERT_EQ(result, RET_ERR); 71} 72 73/** 74 * @tc.name: NapProcessTest_IsNeedNotify_001 75 * @tc.desc: Test is need notify 76 * @tc.type: FUNC 77 * @tc.require: 78 */ 79HWTEST_F(NapProcessTest, NapProcessTest_IsNeedNotify_001, TestSize.Level1) 80{ 81 NapProcess napProcess; 82 NapProcess::NapStatusData data; 83 data.pid = 1; 84 data.uid = 1; 85 data.bundleName = "bundleName"; 86 napProcess.napMap_[data] = SUBSCRIBED; 87 ASSERT_TRUE(napProcess.IsNeedNotify(data)); 88 napProcess.napMap_[data] = NAP_EVENT; 89 ASSERT_TRUE(napProcess.IsNeedNotify(data)); 90 napProcess.napMap_[data] = REMOVE_OBSERVER; 91 ASSERT_FALSE(napProcess.IsNeedNotify(data)); 92 napProcess.napMap_[data] = ACTIVE_EVENT; 93 ASSERT_FALSE(napProcess.IsNeedNotify(data)); 94} 95 96/** 97 * @tc.name: NapProcessTest_SetNapStatus_001 98 * @tc.desc: Test set nap status 99 * @tc.type: FUNC 100 * @tc.require: 101 */ 102HWTEST_F(NapProcessTest, NapProcessTest_SetNapStatus_001, TestSize.Level1) 103{ 104 NapProcess napProcess; 105 int32_t pid = 1234; 106 int32_t uid = 4321; 107 std ::string bundleName = "testBundle"; 108 int32_t napStatus = ACTIVE_EVENT; 109 ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK); 110 napStatus = NAP_EVENT; 111 ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK); 112 napStatus = 3; 113 ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK); 114} 115 116/** 117 * @tc.name: NapProcessTest_AddMmiSubscribedEventData_001 118 * @tc.desc:Add mmi subscribed event data 119 * @tc.type: FUNC 120 * @tc.require: 121 */ 122HWTEST_F(NapProcessTest, NapProcessTest_AddMmiSubscribedEventData_001, TestSize.Level1) 123{ 124 NapProcess process; 125 NapProcess::NapStatusData data; 126 int32_t syncState = 2; 127 int32_t result = process.AddMmiSubscribedEventData(data, syncState); 128 ASSERT_EQ(result, RET_OK); 129 ASSERT_EQ(process.napMap_[data], syncState); 130 int32_t newsyncState = 2; 131 process.AddMmiSubscribedEventData(data, syncState); 132 result = process.AddMmiSubscribedEventData(data, newsyncState); 133 ASSERT_EQ(result, RET_OK); 134 ASSERT_EQ(process.napMap_[data], syncState); 135} 136 137/** 138 * @tc.name: NapProcessTest_RemoveMmiSubscribedEventData_001 139 * @tc.desc: Test remove mmi subscribed event data 140 * @tc.type: FUNC 141 * @tc.require: 142 */ 143HWTEST_F(NapProcessTest, NapProcessTest_RemoveMmiSubscribedEventData_001, TestSize.Level1) 144{ 145 NapProcess process; 146 NapProcess::NapStatusData napData; 147 int32_t syncState = 1; 148 int32_t ret = process.RemoveMmiSubscribedEventData(napData); 149 ASSERT_EQ(ret, RET_OK); 150 process.AddMmiSubscribedEventData(napData, syncState); 151 ret = process.RemoveMmiSubscribedEventData(napData); 152 ASSERT_EQ(ret, RET_OK); 153} 154 155/** 156 * @tc.name: NapProcessTest_GetNapClientPid_001 157 * @tc.desc: Test get nap client pid 158 * @tc.type: FUNC 159 * @tc.require: 160 */ 161HWTEST_F(NapProcessTest, NapProcessTest_GetNapClientPid_001, TestSize.Level1) 162{ 163 NapProcess napProcess; 164 int32_t expectedPid = 1234; 165 napProcess.napClientPid_ = expectedPid; 166 int32_t actualPid = napProcess.GetNapClientPid(); 167 ASSERT_EQ(expectedPid, actualPid); 168} 169 170/** 171 * @tc.name: NapProcessTest_NotifyNapOnline_001 172 * @tc.desc: Test notify nap online 173 * @tc.type: FUNC 174 * @tc.require: 175 */ 176HWTEST_F(NapProcessTest, NapProcessTest_NotifyNapOnline_001, TestSize.Level1) 177{ 178 NapProcess napProcess; 179 int32_t result = napProcess.NotifyNapOnline(); 180 ASSERT_NE(napProcess.GetNapClientPid(), result); 181} 182 183/** 184 * @tc.name: NapProcessTest_RemoveInputEventObserver_001 185 * @tc.desc: Test remove input event observer 186 * @tc.type: FUNC 187 * @tc.require: 188 */ 189HWTEST_F(NapProcessTest, NapProcessTest_RemoveInputEventObserver_001, TestSize.Level1) 190{ 191 NapProcess napProcess; 192 int32_t ret = napProcess.RemoveInputEventObserver(); 193 ASSERT_EQ(ret, RET_OK); 194 ASSERT_TRUE(napProcess.napMap_.empty()); 195 ASSERT_EQ(napProcess.napClientPid_, REMOVE_OBSERVER); 196} 197 198/** 199 * @tc.name: NapProcessTest_GetAllMmiSubscribedEvents_001 200 * @tc.desc: Test get all mmi subscribed events 201 * @tc.type: FUNC 202 * @tc.require: 203 */ 204HWTEST_F(NapProcessTest, NapProcessTest_GetAllMmiSubscribedEvents_001, TestSize.Level1) 205{ 206 NapProcess napProcess; 207 std::map<std::tuple<int32_t, int32_t, std::string>, int32_t> datas; 208 ASSERT_EQ(napProcess.GetAllMmiSubscribedEvents(datas), RET_OK); 209 ASSERT_TRUE(datas.empty()); 210} 211} // namespace MMI 212} // namespace OHOS