• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
69     napProcess.napClientPid_ = 0;
70     result = napProcess.NotifyBundleName(data, syncState);
71     ASSERT_EQ(result, RET_ERR);
72 
73     data.pid = 1234;
74     result = napProcess.NotifyBundleName(data, syncState);
75     ASSERT_EQ(result, RET_ERR);
76 }
77 
78 /**
79  * @tc.name: NapProcessTest_IsNeedNotify_001
80  * @tc.desc: Test is need notify
81  * @tc.type: FUNC
82  * @tc.require:
83  */
84 HWTEST_F(NapProcessTest, NapProcessTest_IsNeedNotify_001, TestSize.Level1)
85 {
86     NapProcess napProcess;
87     NapProcess::NapStatusData data;
88     data.pid = 1;
89     data.uid = 1;
90     data.bundleName = "bundleName";
91     napProcess.napMap_[data] = SUBSCRIBED;
92     ASSERT_TRUE(napProcess.IsNeedNotify(data));
93     napProcess.napMap_[data] = NAP_EVENT;
94     ASSERT_TRUE(napProcess.IsNeedNotify(data));
95     napProcess.napMap_[data] = REMOVE_OBSERVER;
96     ASSERT_FALSE(napProcess.IsNeedNotify(data));
97     napProcess.napMap_[data] = ACTIVE_EVENT;
98     ASSERT_FALSE(napProcess.IsNeedNotify(data));
99 }
100 
101 /**
102  * @tc.name: NapProcessTest_SetNapStatus_001
103  * @tc.desc: Test set nap status
104  * @tc.type: FUNC
105  * @tc.require:
106  */
107 HWTEST_F(NapProcessTest, NapProcessTest_SetNapStatus_001, TestSize.Level1)
108 {
109     NapProcess napProcess;
110     int32_t pid = 1234;
111     int32_t uid = 4321;
112     std ::string bundleName = "testBundle";
113     int32_t napStatus = ACTIVE_EVENT;
114     ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK);
115     napStatus = NAP_EVENT;
116     ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK);
117     napStatus = 3;
118     ASSERT_EQ(napProcess.SetNapStatus(pid, uid, bundleName, napStatus), RET_OK);
119 }
120 
121 /**
122  * @tc.name: NapProcessTest_AddMmiSubscribedEventData_001
123  * @tc.desc:Add mmi subscribed event data
124  * @tc.type: FUNC
125  * @tc.require:
126  */
127 HWTEST_F(NapProcessTest, NapProcessTest_AddMmiSubscribedEventData_001, TestSize.Level1)
128 {
129     NapProcess process;
130     NapProcess::NapStatusData data;
131     int32_t syncState = 2;
132     int32_t result = process.AddMmiSubscribedEventData(data, syncState);
133     ASSERT_EQ(result, RET_OK);
134     ASSERT_EQ(process.napMap_[data], syncState);
135     int32_t newsyncState = 2;
136     process.AddMmiSubscribedEventData(data, syncState);
137     result = process.AddMmiSubscribedEventData(data, newsyncState);
138     ASSERT_EQ(result, RET_OK);
139     ASSERT_EQ(process.napMap_[data], syncState);
140 }
141 
142 /**
143  * @tc.name: NapProcessTest_RemoveMmiSubscribedEventData_001
144  * @tc.desc: Test remove mmi subscribed event data
145  * @tc.type: FUNC
146  * @tc.require:
147  */
148 HWTEST_F(NapProcessTest, NapProcessTest_RemoveMmiSubscribedEventData_001, TestSize.Level1)
149 {
150     NapProcess process;
151     NapProcess::NapStatusData napData;
152     int32_t syncState = 1;
153     int32_t ret = process.RemoveMmiSubscribedEventData(napData);
154     ASSERT_EQ(ret, RET_OK);
155     process.AddMmiSubscribedEventData(napData, syncState);
156     ret = process.RemoveMmiSubscribedEventData(napData);
157     ASSERT_EQ(ret, RET_OK);
158 }
159 
160 /**
161  * @tc.name: NapProcessTest_GetNapClientPid_001
162  * @tc.desc: Test get nap client pid
163  * @tc.type: FUNC
164  * @tc.require:
165  */
166 HWTEST_F(NapProcessTest, NapProcessTest_GetNapClientPid_001, TestSize.Level1)
167 {
168     NapProcess napProcess;
169     int32_t expectedPid = 1234;
170     napProcess.napClientPid_ = expectedPid;
171     int32_t actualPid = napProcess.GetNapClientPid();
172     ASSERT_EQ(expectedPid, actualPid);
173 }
174 
175 /**
176  * @tc.name: NapProcessTest_NotifyNapOnline_001
177  * @tc.desc: Test notify nap online
178  * @tc.type: FUNC
179  * @tc.require:
180  */
181 HWTEST_F(NapProcessTest, NapProcessTest_NotifyNapOnline_001, TestSize.Level1)
182 {
183     NapProcess napProcess;
184     int32_t result = napProcess.NotifyNapOnline();
185     ASSERT_NE(napProcess.GetNapClientPid(), result);
186 }
187 
188 /**
189  * @tc.name: NapProcessTest_RemoveInputEventObserver_001
190  * @tc.desc: Test remove input event observer
191  * @tc.type: FUNC
192  * @tc.require:
193  */
194 HWTEST_F(NapProcessTest, NapProcessTest_RemoveInputEventObserver_001, TestSize.Level1)
195 {
196     NapProcess napProcess;
197     int32_t ret = napProcess.RemoveInputEventObserver();
198     ASSERT_EQ(ret, RET_OK);
199     ASSERT_TRUE(napProcess.napMap_.empty());
200     ASSERT_EQ(napProcess.napClientPid_, REMOVE_OBSERVER);
201 }
202 
203 /**
204  * @tc.name: NapProcessTest_GetAllMmiSubscribedEvents_001
205  * @tc.desc: Test get all mmi subscribed events
206  * @tc.type: FUNC
207  * @tc.require:
208  */
209 HWTEST_F(NapProcessTest, NapProcessTest_GetAllMmiSubscribedEvents_001, TestSize.Level1)
210 {
211     NapProcess napProcess;
212     std::map<std::tuple<int32_t, int32_t, std::string>, int32_t> datas;
213     ASSERT_EQ(napProcess.GetAllMmiSubscribedEvents(datas), RET_OK);
214     ASSERT_TRUE(datas.empty());
215 }
216 
217 /**
218  * @tc.name: NapProcessTest_GetAllMmiSubscribedEvents_002
219  * @tc.desc: Test get all mmi subscribed events
220  * @tc.type: FUNC
221  * @tc.require:
222  */
223 HWTEST_F(NapProcessTest, NapProcessTest_GetAllMmiSubscribedEvents_002, TestSize.Level1)
224 {
225     NapProcess napProcess;
226     NapProcess::NapStatusData data;
227     data.pid = 1;
228     data.uid = 1;
229     data.bundleName = "bundleName";
230     napProcess.napMap_[data] = SUBSCRIBED;
231     std::map<std::tuple<int32_t, int32_t, std::string>, int32_t> datas;
232     ASSERT_EQ(napProcess.GetAllMmiSubscribedEvents(datas), RET_OK);
233     ASSERT_FALSE(datas.empty());
234 }
235 } // namespace MMI
236 } // namespace OHOS