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