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 22 namespace OHOS { 23 namespace MMI { 24 namespace { 25 using namespace testing::ext; 26 constexpr int32_t REMOVE_OBSERVER = -2; 27 constexpr int32_t NAP_EVENT = 0; 28 constexpr int32_t SUBSCRIBED = 1; 29 constexpr int32_t ACTIVE_EVENT = 2; 30 } // namespace 31 32 class NapProcessTest : public testing::Test { 33 public: SetUpTestCase(void)34 static void SetUpTestCase(void) {} TearDownTestCase(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 */ 44 HWTEST_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 */ 58 HWTEST_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 */ 79 HWTEST_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 */ 102 HWTEST_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 */ 122 HWTEST_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 */ 143 HWTEST_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 */ 161 HWTEST_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 */ 176 HWTEST_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 */ 189 HWTEST_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 */ 204 HWTEST_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