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 "locator_agent_test.h"
17 #include "accesstoken_kit.h"
18 #include "nativetoken_kit.h"
19 #include "token_setproc.h"
20 #include "locator.h"
21
22 using namespace testing::ext;
23 namespace OHOS {
24 namespace Location {
25 const int32_t LOCATION_PERM_NUM = 4;
SetUp()26 void LocatorAgentManagerTest::SetUp()
27 {
28 MockNativePermission();
29 }
30
TearDown()31 void LocatorAgentManagerTest::TearDown()
32 {
33 }
34
MockNativePermission()35 void LocatorAgentManagerTest::MockNativePermission()
36 {
37 const char *perms[] = {
38 ACCESS_LOCATION.c_str(), ACCESS_APPROXIMATELY_LOCATION.c_str(),
39 ACCESS_BACKGROUND_LOCATION.c_str(), MANAGE_SECURE_SETTINGS.c_str(),
40 };
41 NativeTokenInfoParams infoInstance = {
42 .dcapsNum = 0,
43 .permsNum = LOCATION_PERM_NUM,
44 .aclsNum = 0,
45 .dcaps = nullptr,
46 .perms = perms,
47 .acls = nullptr,
48 .processName = "LocatorAgentManagerTest",
49 .aplStr = "system_basic",
50 };
51 tokenId_ = GetAccessTokenId(&infoInstance);
52 SetSelfTokenID(tokenId_);
53 Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
54 }
55
56 HWTEST_F(LocatorAgentManagerTest, StartGnssLocatingTest001, TestSize.Level1)
57 {
58 GTEST_LOG_(INFO)
59 << "LocatorAgentManagerTest, StartGnssLocatingTest001, TestSize.Level1";
60 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] StartGnssLocatingTest001 begin");
61 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
62 static OHOS::Location::LocationCallbackIfaces locationCallback;
63 locatorAgentManager->StartGnssLocating(locationCallback);
64 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] StartGnssLocatingTest001 end");
65 }
66
67 HWTEST_F(LocatorAgentManagerTest, StopGnssLocatingTest001, TestSize.Level1)
68 {
69 GTEST_LOG_(INFO)
70 << "LocatorAgentManagerTest, StopGnssLocatingTest001, TestSize.Level1";
71 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] StopGnssLocatingTest001 begin");
72 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
73 locatorAgentManager->StopGnssLocating();
74 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] StopGnssLocatingTest001 end");
75 }
76
77 HWTEST_F(LocatorAgentManagerTest, RegisterGnssStatusCallbackTest001, TestSize.Level1)
78 {
79 GTEST_LOG_(INFO)
80 << "LocatorAgentManagerTest, RegisterGnssStatusCallbackTest001, TestSize.Level1";
81 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] RegisterGnssStatusCallbackTest001 begin");
82 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
83 static OHOS::Location::SvStatusCallbackIfaces svCallback;
84 locatorAgentManager->RegisterGnssStatusCallback(svCallback);
85 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] RegisterGnssStatusCallbackTest001 end");
86 }
87
88 HWTEST_F(LocatorAgentManagerTest, UnregisterGnssStatusCallbackTest001, TestSize.Level1)
89 {
90 GTEST_LOG_(INFO)
91 << "LocatorAgentManagerTest, UnregisterGnssStatusCallbackTest001, TestSize.Level1";
92 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] UnregisterGnssStatusCallbackTest001 begin");
93 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
94 locatorAgentManager->UnregisterGnssStatusCallback();
95 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] UnregisterGnssStatusCallbackTest001 end");
96 }
97
98 HWTEST_F(LocatorAgentManagerTest, RegisterNmeaMessageCallbackTest001, TestSize.Level1)
99 {
100 GTEST_LOG_(INFO)
101 << "LocatorAgentTest, RegisterNmeaMessageCallbackTest001, TestSize.Level1";
102 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] RegisterNmeaMessageCallbackTest001 begin");
103 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
104 static OHOS::Location::GnssNmeaCallbackIfaces nmeaCallback;
105 locatorAgentManager->RegisterNmeaMessageCallback(nmeaCallback);
106 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] RegisterNmeaMessageCallbackTest001 end");
107 }
108
109 HWTEST_F(LocatorAgentManagerTest, UnregisterNmeaMessageCallbackTest001, TestSize.Level1)
110 {
111 GTEST_LOG_(INFO)
112 << "LocatorAgentManagerTest, UnregisterNmeaMessageCallbackTest001, TestSize.Level1";
113 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] UnregisterNmeaMessageCallbackTest001 begin");
114 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
115 locatorAgentManager->UnregisterNmeaMessageCallback();
116 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] UnregisterNmeaMessageCallbackTest001 end");
117 }
118
119 HWTEST_F(LocatorAgentManagerTest, GetLocatorAgentTest001, TestSize.Level1)
120 {
121 GTEST_LOG_(INFO)
122 << "LocatorAgentManagerTest, GetLocatorAgentTest001, TestSize.Level1";
123 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] GetLocatorAgentTest001 begin");
124 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
125 locatorAgentManager->GetLocatorAgent();
126 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] GetLocatorAgentTest001 end");
127 }
128
129 HWTEST_F(LocatorAgentManagerTest, TryLoadLocatorSystemAbilityTest001, TestSize.Level1)
130 {
131 GTEST_LOG_(INFO)
132 << "LocatorAgentManagerTest, TryLoadLocatorSystemAbilityTest001, TestSize.Level1";
133 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] TryLoadLocatorSystemAbilityTest001 begin");
134 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
135 locatorAgentManager->TryLoadLocatorSystemAbility();
136 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] TryLoadLocatorSystemAbilityTest001 end");
137 }
138
139 HWTEST_F(LocatorAgentManagerTest, InitLocatorAgentTest001, TestSize.Level1)
140 {
141 GTEST_LOG_(INFO)
142 << "LocatorAgentManagerTest, InitLocatorAgentTest001, TestSize.Level1";
143 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] InitLocatorAgentTest001 begin");
144 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
145 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
146 locatorAgentManager->InitLocatorAgent(saObject);
147 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] InitLocatorAgentTest001 end");
148 }
149
150 HWTEST_F(LocatorAgentManagerTest, ResetLocatorAgentTest001, TestSize.Level1)
151 {
152 GTEST_LOG_(INFO)
153 << "LocatorAgentManagerTest, ResetLocatorAgentTest001, TestSize.Level1";
154 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] ResetLocatorAgentTest001 begin");
155 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
156 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
157 locatorAgentManager->ResetLocatorAgent(saObject);
158 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentManagerTest] ResetLocatorAgentTest001 end");
159 }
160
SetUp()161 void LocatorAgentTest::SetUp()
162 {
163 MockNativePermission();
164 }
165
TearDown()166 void LocatorAgentTest::TearDown()
167 {
168 }
169
MockNativePermission()170 void LocatorAgentTest::MockNativePermission()
171 {
172 const char *perms[] = {
173 ACCESS_LOCATION.c_str(), ACCESS_APPROXIMATELY_LOCATION.c_str(),
174 ACCESS_BACKGROUND_LOCATION.c_str(), MANAGE_SECURE_SETTINGS.c_str(),
175 };
176 NativeTokenInfoParams infoInstance = {
177 .dcapsNum = 0,
178 .permsNum = LOCATION_PERM_NUM,
179 .aclsNum = 0,
180 .dcaps = nullptr,
181 .perms = perms,
182 .acls = nullptr,
183 .processName = "LocatorAgentTest",
184 .aplStr = "system_basic",
185 };
186 tokenId_ = GetAccessTokenId(&infoInstance);
187 SetSelfTokenID(tokenId_);
188 Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
189 }
190
191 HWTEST_F(LocatorAgentTest, StartGnssLocatingTest001, TestSize.Level1)
192 {
193 GTEST_LOG_(INFO)
194 << "LocatorAgentTest, StartGnssLocatingTest001, TestSize.Level1";
195 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StartGnssLocatingTest001 begin");
196 auto locatorImpl = Locator::GetInstance();
197 EXPECT_NE(nullptr, locatorImpl);
198 locatorImpl->EnableAbility(true);
199 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
200 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
201 auto locatorAgent =
202 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
203 auto locationCallbackHost =
204 sptr<NativeLocationCallbackHost>(new (std::nothrow) NativeLocationCallbackHost());
205 auto locatorCallback = sptr<ILocatorCallback>(locationCallbackHost);
206 auto errCode = locatorAgent->StartGnssLocating(locatorCallback);
207 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
208 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StartGnssLocatingTest001 end");
209 }
210
211 HWTEST_F(LocatorAgentTest, StartGnssLocatingTest002, TestSize.Level1)
212 {
213 GTEST_LOG_(INFO)
214 << "LocatorAgentTest, StartGnssLocatingTest002, TestSize.Level1";
215 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StartGnssLocatingTest002 begin");
216 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
217 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
218 auto locatorAgent =
219 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
220 sptr<ILocatorCallback> locatorCallback;
221 auto errCode = locatorAgent->StartGnssLocating(locatorCallback);
222 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
223 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StartGnssLocatingTest002 end");
224 }
225
226 HWTEST_F(LocatorAgentTest, StopGnssLocatingTest001, TestSize.Level1)
227 {
228 GTEST_LOG_(INFO)
229 << "LocatorAgentTest, StopGnssLocatingTest001, TestSize.Level1";
230 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StopGnssLocatingTest001 begin");
231 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
232 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
233 auto locatorAgent =
234 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
235 auto locationCallbackHost =
236 sptr<NativeLocationCallbackHost>(new (std::nothrow) NativeLocationCallbackHost());
237 auto locatorCallback = sptr<ILocatorCallback>(locationCallbackHost);
238 auto errCode = locatorAgent->StopGnssLocating(locatorCallback);
239 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
240 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StopGnssLocatingTest001 end");
241 }
242
243 HWTEST_F(LocatorAgentTest, StopGnssLocatingTest002, TestSize.Level1)
244 {
245 GTEST_LOG_(INFO)
246 << "LocatorAgentTest, StopGnssLocatingTest002, TestSize.Level1";
247 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StopGnssLocatingTest002 begin");
248 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
249 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
250 auto locatorAgent =
251 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
252 sptr<ILocatorCallback> locatorCallback;
253 auto errCode = locatorAgent->StopGnssLocating(locatorCallback);
254 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
255 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] StopGnssLocatingTest002 end");
256 }
257
258 HWTEST_F(LocatorAgentTest, RegisterNmeaMessageCallbackTest001, TestSize.Level1)
259 {
260 GTEST_LOG_(INFO)
261 << "LocatorAgentTest, RegisterNmeaMessageCallbackTest001, TestSize.Level1";
262 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterNmeaMessageCallbackTest001 begin");
263 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
264 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
265 auto nmeaCallbackHost =
266 sptr<NativeNmeaCallbackHost>(new (std::nothrow) NativeNmeaCallbackHost());
267 auto nmeaCallback = sptr<INmeaMessageCallback>(nmeaCallbackHost);
268 auto locatorAgent =
269 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
270 auto errCode = locatorAgent->RegisterNmeaMessageCallback(nmeaCallback);
271 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
272 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterNmeaMessageCallbackTest001 end");
273 }
274
275 HWTEST_F(LocatorAgentTest, RegisterNmeaMessageCallbackTest002, TestSize.Level1)
276 {
277 GTEST_LOG_(INFO)
278 << "LocatorAgentTest, RegisterNmeaMessageCallbackTest002, TestSize.Level1";
279 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterNmeaMessageCallbackTest002 begin");
280 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
281 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
282 auto locatorAgent =
283 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
284 auto errCode = locatorAgent->RegisterNmeaMessageCallback(nullptr);
285 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
286 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterNmeaMessageCallbackTest002 end");
287 }
288
289 HWTEST_F(LocatorAgentTest, UnregisterNmeaMessageCallbackTest001, TestSize.Level1)
290 {
291 GTEST_LOG_(INFO)
292 << "LocatorAgentTest, UnregisterNmeaMessageCallbackTest001, TestSize.Level1";
293 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterNmeaMessageCallbackTest001 begin");
294 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
295 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
296 auto locatorAgent =
297 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
298 auto nmeaCallbackHost =
299 sptr<NativeNmeaCallbackHost>(new (std::nothrow) NativeNmeaCallbackHost());
300 auto nmeaCallback = sptr<INmeaMessageCallback>(nmeaCallbackHost);
301 auto errCode = locatorAgent->UnregisterNmeaMessageCallback(nmeaCallback);
302 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
303 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterNmeaMessageCallbackTest001 end");
304 }
305
306 HWTEST_F(LocatorAgentTest, UnregisterNmeaMessageCallbackTest002, TestSize.Level1)
307 {
308 GTEST_LOG_(INFO)
309 << "LocatorAgentTest, UnregisterNmeaMessageCallbackTest002, TestSize.Level1";
310 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterNmeaMessageCallbackTest002 begin");
311 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
312 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
313 auto locatorAgent =
314 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
315 auto errCode = locatorAgent->UnregisterNmeaMessageCallback(nullptr);
316 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
317 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterNmeaMessageCallbackTest002 end");
318 }
319
320 HWTEST_F(LocatorAgentTest, RegisterGnssStatusCallbackTest001, TestSize.Level1)
321 {
322 GTEST_LOG_(INFO)
323 << "LocatorAgentTest, RegisterGnssStatusCallbackTest001, TestSize.Level1";
324 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterGnssStatusCallbackTest001 begin");
325 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
326 auto gnssCallbackHost =
327 sptr<NativeSvCallbackHost>(new (std::nothrow) NativeSvCallbackHost());
328 auto gnssCallback = sptr<IGnssStatusCallback>(gnssCallbackHost);
329 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
330 auto locatorAgent =
331 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
332 auto errCode = locatorAgent->RegisterGnssStatusCallback(gnssCallback);
333 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
334 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterGnssStatusCallbackTest001 end");
335 }
336
337 HWTEST_F(LocatorAgentTest, RegisterGnssStatusCallbackTest002, TestSize.Level1)
338 {
339 GTEST_LOG_(INFO)
340 << "LocatorAgentTest, RegisterGnssStatusCallbackTest002, TestSize.Level1";
341 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterGnssStatusCallbackTest002 begin");
342 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
343 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
344 auto locatorAgent =
345 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
346 auto errCode = locatorAgent->RegisterGnssStatusCallback(nullptr);
347 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
348 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] RegisterGnssStatusCallbackTest002 end");
349 }
350
351
352 HWTEST_F(LocatorAgentTest, UnregisterGnssStatusCallbackTest001, TestSize.Level1)
353 {
354 GTEST_LOG_(INFO)
355 << "LocatorAgentTest, UnregisterGnssStatusCallbackTest001, TestSize.Level1";
356 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterGnssStatusCallbackTest001 begin");
357 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
358 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
359 auto locatorAgent =
360 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
361 auto gnssCallbackHost =
362 sptr<NativeSvCallbackHost>(new (std::nothrow) NativeSvCallbackHost());
363 auto gnssCallback = sptr<IGnssStatusCallback>(gnssCallbackHost);
364 auto errCode = locatorAgent->UnregisterGnssStatusCallback(gnssCallback);
365 EXPECT_EQ(ERRCODE_SUCCESS, errCode);
366 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterGnssStatusCallbackTest001 end");
367 }
368
369 HWTEST_F(LocatorAgentTest, UnregisterGnssStatusCallbackTest002, TestSize.Level1)
370 {
371 GTEST_LOG_(INFO)
372 << "LocatorAgentTest, UnregisterGnssStatusCallbackTest002, TestSize.Level1";
373 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterGnssStatusCallbackTest002 begin");
374 auto locatorAgentManager = std::make_shared<LocatorAgentManager>();
375 sptr<IRemoteObject> saObject = locatorAgentManager->CheckLocatorSystemAbilityLoaded();
376 auto locatorAgent =
377 sptr<LocatorAgent>(new (std::nothrow) LocatorAgent(saObject));
378 auto errCode = locatorAgent->UnregisterGnssStatusCallback(nullptr);
379 EXPECT_EQ(ERRCODE_INVALID_PARAM, errCode);
380 LBSLOGI(LOCATOR_STANDARD, "[LocatorAgentTest] UnregisterGnssStatusCallbackTest002 end");
381 }
382 } // namespace Location
383 } // namespace OHOS