1 /*
2 * Copyright (c) 2022 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 "request_manager_test.h"
17
18 #include "accesstoken_kit.h"
19 #include "app_mgr_constants.h"
20 #include "nativetoken_kit.h"
21 #include "token_setproc.h"
22
23 #include "i_locator_callback.h"
24 #define private public
25 #include "locator_ability.h"
26 #undef private
27 #include "locator_callback_host.h"
28 #include "request.h"
29 #include "request_config.h"
30 #include "permission_manager.h"
31 #include "locator_callback_proxy.h"
32
33 using namespace testing::ext;
34
35 namespace OHOS {
36 namespace Location {
37 const int32_t LOCATION_PERM_NUM = 5;
38 const int UNKNOWN_PRIORITY = 0x01FF;
39 const int UNKNOWN_SCENE = 0x02FF;
SetUp()40 void RequestManagerTest::SetUp()
41 {
42 MockNativePermission();
43 requestManager_ = RequestManager::GetInstance();
44 EXPECT_NE(nullptr, requestManager_);
45 request_ = std::make_shared<Request>();
46 EXPECT_NE(nullptr, request_);
47 request_->SetUid(SYSTEM_UID);
48 request_->SetPid(0);
49 request_->SetTokenId(tokenId_);
50 request_->SetFirstTokenId(0);
51 request_->SetPackageName("RequestManagerTest");
52 request_->SetRequesting(true);
53 auto requestConfig = std::make_unique<RequestConfig>();
54 EXPECT_NE(nullptr, requestConfig);
55 requestConfig->SetPriority(PRIORITY_FAST_FIRST_FIX);
56 requestConfig->SetFixNumber(0);
57 request_->SetRequestConfig(*requestConfig);
58 sptr<LocatorCallbackHost> locatorCallbackHost =
59 sptr<LocatorCallbackHost>(new (std::nothrow)LocatorCallbackHost());
60 sptr<ILocatorCallback> callback = sptr<ILocatorCallback>(locatorCallbackHost);
61 request_->SetLocatorCallBack(callback);
62 }
63
TearDown()64 void RequestManagerTest::TearDown()
65 {
66 requestManager_ = nullptr;
67 }
68
MockNativePermission()69 void RequestManagerTest::MockNativePermission()
70 {
71 const char *perms[] = {
72 ACCESS_LOCATION.c_str(), ACCESS_APPROXIMATELY_LOCATION.c_str(),
73 ACCESS_BACKGROUND_LOCATION.c_str(), MANAGE_SECURE_SETTINGS.c_str(),
74 ACCESS_CONTROL_LOCATION_SWITCH.c_str(),
75 };
76 NativeTokenInfoParams infoInstance = {
77 .dcapsNum = 0,
78 .permsNum = LOCATION_PERM_NUM,
79 .aclsNum = 0,
80 .dcaps = nullptr,
81 .perms = perms,
82 .acls = nullptr,
83 .processName = "RequestManagerTest",
84 .aplStr = "system_basic",
85 };
86 tokenId_ = GetAccessTokenId(&infoInstance);
87 SetSelfTokenID(tokenId_);
88 Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
89 }
90
FillRequestField(std::shared_ptr<Request> & request)91 void RequestManagerTest::FillRequestField(std::shared_ptr<Request>& request)
92 {
93 request->SetUid(SYSTEM_UID);
94 request->SetPid(0);
95 request->SetTokenId(0);
96 request->SetFirstTokenId(0);
97 request->SetPackageName("pkg.name");
98 std::unique_ptr<RequestConfig> requestConfig =
99 std::make_unique<RequestConfig>();
100 request->SetRequestConfig(*requestConfig);
101 request->SetRequesting(false);
102 std::unique_ptr<Location> location = std::make_unique<Location>();
103 request->SetLastLocation(location);
104 request->SetLocationPermState(true);
105 request->SetBackgroundPermState(true);
106 request->SetApproximatelyPermState(true);
107 }
108
VerifyRequestField(std::shared_ptr<Request> & request)109 void RequestManagerTest::VerifyRequestField(std::shared_ptr<Request>& request)
110 {
111 EXPECT_EQ(SYSTEM_UID, request->GetUid());
112 EXPECT_EQ(0, request->GetPid());
113 EXPECT_EQ(0, request->GetTokenId());
114 EXPECT_EQ(0, request->GetFirstTokenId());
115 EXPECT_EQ("pkg.name", request->GetPackageName());
116 EXPECT_NE(nullptr, request->GetRequestConfig());
117 request->GetLocatorCallBack();
118 EXPECT_EQ(false, request->GetIsRequesting());
119 EXPECT_NE(nullptr, request->GetLastLocation());
120 EXPECT_EQ(true, request->GetLocationPermState());
121 EXPECT_EQ(true, request->GetBackgroundPermState());
122 EXPECT_EQ(true, request->GetApproximatelyPermState());
123 }
124
125 HWTEST_F(RequestManagerTest, InitSystemListeners001, TestSize.Level0)
126 {
127 GTEST_LOG_(INFO)
128 << "RequestManagerTest, InitSystemListeners001, TestSize.Level0";
129 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] InitSystemListeners001 begin");
130 EXPECT_EQ(true, requestManager_->InitSystemListeners());
131 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] InitSystemListeners001 end");
132 }
133
134 HWTEST_F(RequestManagerTest, HandleStartAndStopLocating001, TestSize.Level0)
135 {
136 GTEST_LOG_(INFO)
137 << "RequestManagerTest, HandleStartAndStopLocating001, TestSize.Level0";
138 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStartAndStopLocating001 begin");
139 ASSERT_TRUE(requestManager_ != nullptr);
140 auto locatorAbility = LocatorAbility::GetInstance();
141 locatorAbility->receivers_ = nullptr;
142 requestManager_->HandleStartLocating(request_);
143 requestManager_->HandleStopLocating(nullptr); // can't stop locating
144
145 requestManager_->HandleStartLocating(request_); // can start locating
146 requestManager_->HandleStopLocating(callback_); // can stop locating
147
148 locatorAbility->receivers_ = nullptr;
149 requestManager_->HandleStartLocating(request_); // can't start locating
150 requestManager_->HandleStopLocating(callback_); // can stop locating, but not locating
151 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStartAndStopLocating001 end");
152 }
153
154 HWTEST_F(RequestManagerTest, HandleStartAndStopLocating002, TestSize.Level1)
155 {
156 GTEST_LOG_(INFO)
157 << "RequestManagerTest, HandleStartAndStopLocating002, TestSize.Level1";
158 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStartAndStopLocating002 begin");
159 ASSERT_TRUE(requestManager_ != nullptr);
160 std::shared_ptr<Request> request = std::make_shared<Request>();
161
162 request->SetUid(SYSTEM_UID);
163 request->SetPid(0);
164 request->SetTokenId(tokenId_);
165 request->SetFirstTokenId(0);
166 request->SetPackageName("RequestManagerTest");
167 auto requestConfig = std::make_unique<RequestConfig>();
168 requestConfig->SetPriority(PRIORITY_FAST_FIRST_FIX);
169 requestConfig->SetFixNumber(0);
170 request->SetRequestConfig(*requestConfig);
171 sptr<LocatorCallbackHost> locatorCallbackHost =
172 sptr<LocatorCallbackHost>(new (std::nothrow)LocatorCallbackHost());
173 auto callback = sptr<ILocatorCallback>(locatorCallbackHost);
174 request->SetLocatorCallBack(callback);
175 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStartAndStopLocating002 end");
176 }
177
178 HWTEST_F(RequestManagerTest, HandlePowerSuspendChanged001, TestSize.Level1)
179 {
180 GTEST_LOG_(INFO)
181 << "RequestManagerTest, HandlePowerSuspendChanged001, TestSize.Level1";
182 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged001 begin");
183 requestManager_->UpdateRequestRecord(request_, true);
184 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
185 int32_t state1 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_FOREGROUND);
186 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
187 request_->GetUid(), state1);
188 int32_t state2 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_BACKGROUND);
189 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
190 request_->GetUid(), state2);
191 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged001 end");
192 }
193
194 HWTEST_F(RequestManagerTest, HandlePowerSuspendChanged002, TestSize.Level1)
195 {
196 GTEST_LOG_(INFO)
197 << "RequestManagerTest, HandlePowerSuspendChanged002, TestSize.Level1";
198 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged002 begin");
199 ASSERT_TRUE(requestManager_ != nullptr);
200 requestManager_->UpdateRequestRecord(request_, false);
201 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
202
203 int32_t state1 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_FOREGROUND);
204 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
205 request_->GetUid(), state1);
206 int32_t state2 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_BACKGROUND);
207 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
208 request_->GetUid(), state2);
209 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged002 end");
210 }
211
212 HWTEST_F(RequestManagerTest, HandlePowerSuspendChanged003, TestSize.Level1)
213 {
214 GTEST_LOG_(INFO)
215 << "RequestManagerTest, HandlePowerSuspendChanged003, TestSize.Level1";
216 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged003 begin");
217 ASSERT_TRUE(requestManager_ != nullptr);
218 requestManager_->UpdateRequestRecord(request_, false);
219 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
220
221 int32_t state1 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_FOREGROUND);
222 requestManager_->HandlePowerSuspendChanged(request_->GetPid() + 1,
223 request_->GetUid(), state1);
224 int32_t state2 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_BACKGROUND);
225 requestManager_->HandlePowerSuspendChanged(request_->GetPid() + 1,
226 request_->GetUid(), state2);
227 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged003 end");
228 }
229
230 HWTEST_F(RequestManagerTest, HandlePowerSuspendChanged004, TestSize.Level1)
231 {
232 GTEST_LOG_(INFO)
233 << "RequestManagerTest, HandlePowerSuspendChanged004, TestSize.Level1";
234 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged004 begin");
235 ASSERT_TRUE(requestManager_ != nullptr);
236 requestManager_->UpdateRequestRecord(request_, false);
237 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
238
239 int32_t state1 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_FOREGROUND);
240 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
241 request_->GetUid() + 1, state1);
242 int32_t state2 = static_cast<int32_t>(AppExecFwk::ApplicationState::APP_STATE_BACKGROUND);
243 requestManager_->HandlePowerSuspendChanged(request_->GetPid(),
244 request_->GetUid() + 1, state2);
245 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandlePowerSuspendChanged004 end");
246 }
247
248 HWTEST_F(RequestManagerTest, UpdateRequestRecord001, TestSize.Level1)
249 {
250 GTEST_LOG_(INFO)
251 << "RequestManagerTest, UpdateRequestRecord001, TestSize.Level1";
252 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateRequestRecord001 begin");
253 requestManager_->UpdateRequestRecord(request_, true); // uid = 1000 should be added to runningUids
254 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
255 requestManager_->UpdateRequestRecord(request_, false); // uid = 1000 should be removed from runningUids
256 EXPECT_EQ(true, requestManager_->IsUidInProcessing(SYSTEM_UID));
257 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateRequestRecord001 end");
258 }
259
260 HWTEST_F(RequestManagerTest, UpdateUsingPermissionTest001, TestSize.Level1)
261 {
262 GTEST_LOG_(INFO)
263 << "RequestManagerTest, UpdateUsingPermissionTest001, TestSize.Level1";
264 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest001 begin");
265 ASSERT_TRUE(requestManager_ != nullptr);
266 requestManager_->UpdateUsingPermission(nullptr, true);
267 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest001 end");
268 }
269
270 HWTEST_F(RequestManagerTest, UpdateUsingPermissionTest002, TestSize.Level1)
271 {
272 GTEST_LOG_(INFO)
273 << "RequestManagerTest, UpdateUsingPermissionTest002, TestSize.Level1";
274 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest002 begin");
275 EXPECT_EQ(false, request_->GetLocationPermState());
276 EXPECT_EQ(false, request_->GetBackgroundPermState());
277 EXPECT_EQ(false, request_->GetApproximatelyPermState());
278 requestManager_->UpdateUsingPermission(request_, true);
279 EXPECT_EQ(false, request_->GetLocationPermState());
280 EXPECT_EQ(false, request_->GetBackgroundPermState());
281 EXPECT_EQ(true, request_->GetApproximatelyPermState());
282 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest002 end");
283 }
284
285 HWTEST_F(RequestManagerTest, UpdateUsingPermissionTest003, TestSize.Level1)
286 {
287 GTEST_LOG_(INFO)
288 << "RequestManagerTest, UpdateUsingPermissionTest003, TestSize.Level1";
289 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest003 begin");
290 requestManager_->UpdateRequestRecord(request_, true);
291 EXPECT_EQ(false, request_->GetLocationPermState());
292 EXPECT_EQ(false, request_->GetBackgroundPermState());
293 EXPECT_EQ(false, request_->GetApproximatelyPermState());
294 requestManager_->UpdateUsingPermission(request_, true);
295 // location permission is not recorded
296 EXPECT_EQ(false, request_->GetLocationPermState());
297 EXPECT_EQ(false, request_->GetBackgroundPermState());
298 // background location permission is not recorded
299 EXPECT_EQ(true, request_->GetApproximatelyPermState());
300
301 requestManager_->UpdateRequestRecord(request_, false);
302 // location permission is not recorded
303 EXPECT_EQ(false, request_->GetLocationPermState());
304 // background location permission is not recorded
305 EXPECT_EQ(false, request_->GetBackgroundPermState());
306 EXPECT_EQ(true, request_->GetApproximatelyPermState());
307 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingPermissionTest003 end");
308 }
309
310 HWTEST_F(RequestManagerTest, DeleteRequestRecord001, TestSize.Level1)
311 {
312 GTEST_LOG_(INFO)
313 << "RequestManagerTest, DeleteRequestRecord001, TestSize.Level1";
314 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] DeleteRequestRecord001 begin");
315 auto requests = std::make_shared<std::list<std::shared_ptr<Request>>>();
316 std::shared_ptr<Request> request = std::make_shared<Request>();
317 requests->push_back(request);
318 requestManager_->DeleteRequestRecord(requests);
319 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] DeleteRequestRecord001 end");
320 }
321
322 HWTEST_F(RequestManagerTest, RequestTest001, TestSize.Level1)
323 {
324 GTEST_LOG_(INFO)
325 << "RequestManagerTest, RequestTest001, TestSize.Level1";
326 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestTest001 begin");
327 std::shared_ptr<Request> request = std::make_shared<Request>();
328 FillRequestField(request);
329 VerifyRequestField(request);
330 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestTest001 end");
331 }
332
333 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest001, TestSize.Level1)
334 {
335 GTEST_LOG_(INFO)
336 << "RequestManagerTest, RequestGetProxyNameTest001, TestSize.Level1";
337 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest001 begin");
338 std::shared_ptr<Request> request = std::make_shared<Request>();
339 std::shared_ptr<std::list<std::string>> proxyList = nullptr;
340 request->GetProxyName(proxyList);
341 EXPECT_EQ(nullptr, proxyList);
342 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest001 end");
343 }
344
345 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest002, TestSize.Level1)
346 {
347 GTEST_LOG_(INFO)
348 << "RequestManagerTest, RequestGetProxyNameTest002, TestSize.Level1";
349 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest002 begin");
350 std::shared_ptr<Request> request = std::make_shared<Request>();
351 std::unique_ptr<RequestConfig> requestConfig1 =
352 std::make_unique<RequestConfig>();
353 requestConfig1->SetScenario(SCENE_NAVIGATION);
354 request->SetRequestConfig(*requestConfig1);
355 auto proxyList1 = std::make_shared<std::list<std::string>>();
356 request->GetProxyName(proxyList1);
357 EXPECT_NE(true, proxyList1->empty());
358 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest002 end");
359 }
360
361 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest003, TestSize.Level1)
362 {
363 GTEST_LOG_(INFO)
364 << "RequestManagerTest, RequestGetProxyNameTest003, TestSize.Level1";
365 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest003 begin");
366 std::shared_ptr<Request> request = std::make_shared<Request>();
367 std::unique_ptr<RequestConfig> requestConfig2 =
368 std::make_unique<RequestConfig>();
369 requestConfig2->SetScenario(SCENE_TRAJECTORY_TRACKING);
370 request->SetRequestConfig(*requestConfig2);
371 auto proxyList2 = std::make_shared<std::list<std::string>>();
372 request->GetProxyName(proxyList2);
373 EXPECT_NE(true, proxyList2->empty());
374 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest003 end");
375 }
376
377 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest004, TestSize.Level1)
378 {
379 GTEST_LOG_(INFO)
380 << "RequestManagerTest, RequestGetProxyNameTest004, TestSize.Level1";
381 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest004 begin");
382 std::shared_ptr<Request> request = std::make_shared<Request>();
383 std::unique_ptr<RequestConfig> requestConfig3 =
384 std::make_unique<RequestConfig>();
385 requestConfig3->SetScenario(SCENE_CAR_HAILING);
386 request->SetRequestConfig(*requestConfig3);
387 auto proxyList3 = std::make_shared<std::list<std::string>>();
388 request->GetProxyName(proxyList3);
389 EXPECT_NE(true, proxyList3->empty());
390 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest004 end");
391 }
392
393 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest005, TestSize.Level1)
394 {
395 GTEST_LOG_(INFO)
396 << "RequestManagerTest, RequestGetProxyNameTest005, TestSize.Level1";
397 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest005 begin");
398 std::shared_ptr<Request> request = std::make_shared<Request>();
399 std::unique_ptr<RequestConfig> requestConfig4 =
400 std::make_unique<RequestConfig>();
401 requestConfig4->SetScenario(SCENE_DAILY_LIFE_SERVICE);
402 request->SetRequestConfig(*requestConfig4);
403 auto proxyList4 = std::make_shared<std::list<std::string>>();
404 request->GetProxyName(proxyList4);
405 EXPECT_NE(true, proxyList4->empty());
406 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest005 end");
407 }
408
409 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest006, TestSize.Level1)
410 {
411 GTEST_LOG_(INFO)
412 << "RequestManagerTest, RequestGetProxyNameTest006, TestSize.Level1";
413 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest006 begin");
414 std::shared_ptr<Request> request = std::make_shared<Request>();
415 std::unique_ptr<RequestConfig> requestConfig5 =
416 std::make_unique<RequestConfig>();
417 requestConfig5->SetScenario(SCENE_NO_POWER);
418 request->SetRequestConfig(*requestConfig5);
419 auto proxyList5 = std::make_shared<std::list<std::string>>();
420 request->GetProxyName(proxyList5);
421 EXPECT_NE(true, proxyList5->empty());
422 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest006 end");
423 }
424
425 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest007, TestSize.Level1)
426 {
427 GTEST_LOG_(INFO)
428 << "RequestManagerTest, RequestGetProxyNameTest007, TestSize.Level1";
429 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest007 begin");
430 std::shared_ptr<Request> request = std::make_shared<Request>();
431 std::unique_ptr<RequestConfig> requestConfig6 =
432 std::make_unique<RequestConfig>();
433 requestConfig6->SetScenario(SCENE_UNSET);
434 requestConfig6->SetPriority(PRIORITY_ACCURACY);
435 request->SetRequestConfig(*requestConfig6);
436 auto proxyList6 = std::make_shared<std::list<std::string>>();
437 request->GetProxyName(proxyList6);
438 EXPECT_NE(true, proxyList6->empty());
439 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest007 end");
440 }
441
442 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest008, TestSize.Level1)
443 {
444 GTEST_LOG_(INFO)
445 << "RequestManagerTest, RequestGetProxyNameTest008, TestSize.Level1";
446 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest008 begin");
447 std::shared_ptr<Request> request = std::make_shared<Request>();
448 std::unique_ptr<RequestConfig> requestConfig7 =
449 std::make_unique<RequestConfig>();
450 requestConfig7->SetScenario(SCENE_UNSET);
451 requestConfig7->SetPriority(PRIORITY_LOW_POWER);
452 request->SetRequestConfig(*requestConfig7);
453 auto proxyList7 = std::make_shared<std::list<std::string>>();
454 request->GetProxyName(proxyList7);
455 EXPECT_NE(true, proxyList7->empty());
456 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest008 end");
457 }
458
459 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest009, TestSize.Level1)
460 {
461 GTEST_LOG_(INFO)
462 << "RequestManagerTest, RequestGetProxyNameTest009, TestSize.Level1";
463 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest009 begin");
464 std::shared_ptr<Request> request = std::make_shared<Request>();
465 std::unique_ptr<RequestConfig> requestConfig8 =
466 std::make_unique<RequestConfig>();
467 requestConfig8->SetScenario(SCENE_UNSET);
468 requestConfig8->SetPriority(PRIORITY_FAST_FIRST_FIX);
469 request->SetRequestConfig(*requestConfig8);
470 auto proxyList8 = std::make_shared<std::list<std::string>>();
471 request->GetProxyName(proxyList8);
472 EXPECT_NE(true, proxyList8->empty());
473 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest009 end");
474 }
475
476 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest010, TestSize.Level1)
477 {
478 GTEST_LOG_(INFO)
479 << "RequestManagerTest, RequestGetProxyNameTest010, TestSize.Level1";
480 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest010 begin");
481 std::shared_ptr<Request> request = std::make_shared<Request>();
482 std::unique_ptr<RequestConfig> requestConfig9 =
483 std::make_unique<RequestConfig>();
484 requestConfig9->SetScenario(SCENE_UNSET);
485 requestConfig9->SetPriority(UNKNOWN_PRIORITY);
486 request->SetRequestConfig(*requestConfig9);
487 auto proxyList9 = std::make_shared<std::list<std::string>>();
488 request->GetProxyName(proxyList9);
489 EXPECT_EQ(true, proxyList9->empty());
490 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest010 end");
491 }
492
493 HWTEST_F(RequestManagerTest, RequestGetProxyNameTest011, TestSize.Level1)
494 {
495 GTEST_LOG_(INFO)
496 << "RequestManagerTest, RequestGetProxyNameTest011, TestSize.Level1";
497 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest011 begin");
498 std::shared_ptr<Request> request = std::make_shared<Request>();
499 std::unique_ptr<RequestConfig> requestConfig10 =
500 std::make_unique<RequestConfig>();
501 requestConfig10->SetScenario(UNKNOWN_SCENE);
502 request->SetRequestConfig(*requestConfig10);
503 auto proxyList10 = std::make_shared<std::list<std::string>>();
504 request->GetProxyName(proxyList10);
505 EXPECT_EQ(true, proxyList10->empty());
506 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RequestGetProxyNameTest011 end");
507 }
508
509 HWTEST_F(RequestManagerTest, GetRemoteObject001, TestSize.Level1)
510 {
511 GTEST_LOG_(INFO)
512 << "RequestManagerTest, GetRemoteObject001, TestSize.Level1";
513 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] GetRemoteObject001 begin");
514 ASSERT_TRUE(requestManager_ != nullptr);
515 requestManager_->GetRemoteObject(GNSS_ABILITY);
516
517 requestManager_->GetRemoteObject("");
518 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] GetRemoteObject001 end");
519 }
520
521 HWTEST_F(RequestManagerTest, HandleChrEvent001, TestSize.Level1)
522 {
523 GTEST_LOG_(INFO)
524 << "RequestManagerTest, HandleChrEvent001, TestSize.Level1";
525 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleChrEvent001 begin");
526 ASSERT_TRUE(requestManager_ != nullptr);
527 std::list<std::shared_ptr<Request>> requests;
528 std::shared_ptr<Request> request = std::make_shared<Request>();
529 requests.push_back(request);
530 requestManager_->HandleChrEvent(requests);
531 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleChrEvent001 end");
532 }
533
534 HWTEST_F(RequestManagerTest, HandleChrEvent002, TestSize.Level1)
535 {
536 GTEST_LOG_(INFO)
537 << "RequestManagerTest, HandleChrEvent002, TestSize.Level1";
538 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleChrEvent002 begin");
539 ASSERT_TRUE(requestManager_ != nullptr);
540 std::list<std::shared_ptr<Request>> requests;
541 for (int i = 0; i < 25 ; i++) {
542 std::shared_ptr<Request> request = std::make_shared<Request>();
543 requests.push_back(request);
544 }
545 requestManager_->HandleChrEvent(requests);
546 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleChrEvent002 end");
547 }
548
549 HWTEST_F(RequestManagerTest, IsUidInProcessing001, TestSize.Level1)
550 {
551 GTEST_LOG_(INFO)
552 << "RequestManagerTest, IsUidInProcessing001, TestSize.Level1";
553 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] IsUidInProcessing001 begin");
554 ASSERT_TRUE(requestManager_ != nullptr);
555 requestManager_->IsUidInProcessing(0);
556 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] IsUidInProcessing001 end");
557 }
558
559 HWTEST_F(RequestManagerTest, ReportLocationError001, TestSize.Level1)
560 {
561 GTEST_LOG_(INFO)
562 << "RequestManagerTest, ReportLocationError001, TestSize.Level1";
563 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] ReportLocationError001 begin");
564 std::shared_ptr<Request> request = std::make_shared<Request>();
565 const int errorCode = LocationErr::LOCATING_FAILED_INTERNET_ACCESS_FAILURE;
566 request->SetUid(1000);
567 request->SetPid(0);
568 request->SetTokenId(tokenId_);
569 request->SetFirstTokenId(0);
570 request->SetPackageName("RequestManagerTest");
571 sptr<LocatorCallbackHost> locatorCallbackHost =
572 sptr<LocatorCallbackHost>(new (std::nothrow)LocatorCallbackHost());
573 auto callback = sptr<ILocatorCallback>(locatorCallbackHost);
574 request->SetLocatorCallBack(callback);
575 requestManager_->ReportLocationError(errorCode, request); // network loccation failed
576 request->SetLocatorCallBack(nullptr);
577 requestManager_->ReportLocationError(errorCode, request); // network loccation failed and null locator callback
578 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] ReportLocationError001 end");
579 }
580
581 HWTEST_F(RequestManagerTest, UpdateLocationErrorCallbackToRequest001, TestSize.Level1)
582 {
583 GTEST_LOG_(INFO)
584 << "RequestManagerTest, UpdateLocationErrorCallbackToRequest001, TestSize.Level1";
585 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateLocationErrorCallbackToRequest001 begin");
586 ASSERT_TRUE(requestManager_ != nullptr);
587 std::shared_ptr<Request> request = std::make_shared<Request>();
588 requestManager_->UpdateLocationError(request);
589 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateLocationErrorCallbackToRequest001 end");
590 }
591
592 HWTEST_F(RequestManagerTest, SyncStillMovementState001, TestSize.Level1)
593 {
594 GTEST_LOG_(INFO)
595 << "RequestManagerTest, SyncStillMovementState001, TestSize.Level1";
596 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] SyncStillMovementState001 begin");
597 ASSERT_TRUE(requestManager_ != nullptr);
598 requestManager_->SyncStillMovementState(true);
599 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] SyncStillMovementState001 end");
600 }
601
602 HWTEST_F(RequestManagerTest, UpdateUsingApproximatelyPermission001, TestSize.Level1)
603 {
604 GTEST_LOG_(INFO)
605 << "RequestManagerTest, UpdateUsingApproximatelyPermission001, TestSize.Level1";
606 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingApproximatelyPermission001 begin");
607
608 RequestManager* requestManager = new (std::nothrow) RequestManager();
609 // Arrange
610 auto request = std::make_shared<Request>();
611 request->SetPid(10023);
612
613 request->SetApproximatelyPermState(false);
614 bool result = requestManager->UpdateUsingApproximatelyPermission(request, true);
615 EXPECT_TRUE(result);
616
617 request->SetApproximatelyPermState(false);
618 result = requestManager->UpdateUsingApproximatelyPermission(request, true);
619
620 request->SetApproximatelyPermState(true);
621 result = requestManager->UpdateUsingApproximatelyPermission(request, false);
622 result = requestManager->UpdateUsingApproximatelyPermission(request, false);
623
624 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] UpdateUsingApproximatelyPermission001 end");
625 }
626
627 HWTEST_F(RequestManagerTest, RestorRequest001, TestSize.Level1)
628 {
629 GTEST_LOG_(INFO)
630 << "RequestManagerTest, RestorRequest001, TestSize.Level1";
631 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RestorRequest001 begin");
632 RequestManager* requestManager = new (std::nothrow) RequestManager();
633 auto locatorAbility = sptr<LocatorAbility>(new (std::nothrow) LocatorAbility());
634
635 AppIdentity identity;
636 sptr<ILocatorCallback> callbackStub = new (std::nothrow) LocatorCallbackStub();
637 std::unique_ptr<RequestConfig> requestConfig = std::make_unique<RequestConfig>();
638 std::shared_ptr<Request> request = std::make_shared<Request>(requestConfig, callbackStub, identity);
639
640 // Act
641 ErrCode result = locatorAbility->StartLocating(*requestConfig, callbackStub);
642
643 requestManager->RestorRequest(nullptr);
644 requestManager->RestorRequest(request);
645
646 result = locatorAbility->StopLocating(callbackStub);
647 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RestorRequest001 end");
648 }
649
650 HWTEST_F(RequestManagerTest, HandleStopLocating_001, TestSize.Level1)
651 {
652 GTEST_LOG_(INFO)
653 << "RequestManagerTest, HandleStopLocating_001, TestSize.Level1";
654 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStopLocating_001 begin");
655 RequestManager* requestManager = new (std::nothrow) RequestManager();
656 sptr<ILocatorCallback> callbackStub = new (std::nothrow) LocatorCallbackStub();
657 auto request = std::make_shared<Request>();
658 request->SetLocatorCallBack(callbackStub);
659
660 requestManager->HandleStartLocating(request);
661 requestManager->HandleStopLocating(callbackStub);
662
663 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] HandleStopLocating_001 end");
664 }
665
666 HWTEST_F(RequestManagerTest, ActiveLocatingStrategies_001, TestSize.Level1)
667 {
668 GTEST_LOG_(INFO)
669 << "RequestManagerTest, ActiveLocatingStrategies_001, TestSize.Level1";
670 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] ActiveLocatingStrategies_001 begin");
671 bool testRet = false;
672 RequestManager* requestManager = new (std::nothrow) RequestManager();
673 std::unique_ptr<RequestConfig> requestConfig = std::make_unique<RequestConfig>();
674 auto request = std::make_shared<Request>();
675 // null branch
676 testRet = requestManager->ActiveLocatingStrategies(nullptr);
677 // valid branch
678 requestConfig->SetScenario(SCENE_UNSET);
679 request->SetRequestConfig(*requestConfig);
680 testRet = requestManager->ActiveLocatingStrategies(request);
681 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] ActiveLocatingStrategies_001 end");
682 }
683
684 HWTEST_F(RequestManagerTest, IsRequestAvailable_001, TestSize.Level1)
685 {
686 GTEST_LOG_(INFO)
687 << "RequestManagerTest, IsRequestAvailable_001, TestSize.Level1";
688 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] IsRequestAvailable_001 begin");
689 bool testRet = false;
690 RequestManager* requestManager = new (std::nothrow) RequestManager();
691 auto request = std::make_shared<Request>();
692 // false branch
693 request->SetRequesting(false);
694 testRet = requestManager->IsRequestAvailable(request);
695
696 // true branch
697 request->SetRequesting(true);
698 request->GetRequestConfig()->SetFixNumber(1);
699 request->GetRequestConfig()->SetTimeStamp(0);
700 request->GetRequestConfig()->SetTimeOut(1000);
701 testRet = requestManager->IsRequestAvailable(request);
702
703 request->GetRequestConfig()->SetTimeStamp(CommonUtils::GetCurrentTime());
704 testRet = requestManager->IsRequestAvailable(request);
705
706 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] IsRequestAvailable_001 end");
707 }
708
709 HWTEST_F(RequestManagerTest, AddRequestToWorkRecord_001, TestSize.Level1)
710 {
711 GTEST_LOG_(INFO)
712 << "RequestManagerTest, AddRequestToWorkRecord_001, TestSize.Level1";
713 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] Template_001 begin");
714 RequestManager* requestManager = new (std::nothrow) RequestManager();
715 std::shared_ptr<WorkRecord> workRecord = std::make_shared<WorkRecord>();
716 auto locatorAbility = sptr<LocatorAbility>(new (std::nothrow) LocatorAbility());
717 auto request = std::make_shared<Request>();
718 request->GetRequestConfig()->SetFixNumber(0);
719 request->SetUid(1000);
720 request->SetPid(0);
721 request->SetTokenId(tokenId_);
722 request->SetFirstTokenId(0);
723 request->SetPackageName("RequestManagerTest");
724 std::unique_ptr<RequestConfig> requestConfig = std::make_unique<RequestConfig>();
725
726 // null branch
727 requestManager->AddRequestToWorkRecord(GNSS_ABILITY, request, workRecord);
728 ErrCode result = locatorAbility->EnableAbility(false);
729 requestManager->AddRequestToWorkRecord(GNSS_ABILITY, request, workRecord);
730 result = locatorAbility->EnableAbility(true);
731 requestManager->AddRequestToWorkRecord(GNSS_ABILITY, request, workRecord);
732 // no permission
733 requestManager->AddRequestToWorkRecord(GNSS_ABILITY, request, workRecord);
734 //with permission
735 //with permission no reqConfig
736 request->SetRequestConfig(*requestConfig);
737 requestManager->AddRequestToWorkRecord(GNSS_ABILITY, request, workRecord);
738
739 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] AddRequestToWorkRecord_001 end");
740 }
741
742 HWTEST_F(RequestManagerTest, RegisterLocationErrorCallback_001, TestSize.Level1)
743 {
744 GTEST_LOG_(INFO)
745 << "RequestManagerTest, RegisterLocationErrorCallback_001, TestSize.Level1";
746 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RegisterLocationErrorCallback_001 begin");
747
748 RequestManager* requestManager = new (std::nothrow) RequestManager();
749 sptr<LocatorCallbackHost> locatorCallbackHost =
750 sptr<LocatorCallbackHost>(new (std::nothrow)LocatorCallbackHost());
751 sptr<ILocatorCallback> callback = sptr<ILocatorCallback>(locatorCallbackHost);
752 AppIdentity identity;
753 std::shared_ptr<Request> request = std::make_shared<Request>();
754 const int errorCode = LocationErr::LOCATING_FAILED_INTERNET_ACCESS_FAILURE;
755 request->SetUid(1000);
756 request->SetPid(0);
757 request->SetTokenId(tokenId_);
758 request->SetFirstTokenId(0);
759 request->SetPackageName("RequestManagerTest");
760 request->SetLocatorCallBack(callback);
761 // addable
762 requestManager->RegisterLocationErrorCallback(callback, identity);
763 requestManager->UpdateLocationError(request);
764 requestManager->ReportLocationError(errorCode, request);
765 requestManager->UnRegisterLocationErrorCallback(callback);
766
767 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] RegisterLocationErrorCallback_001 end");
768 }
769
770 HWTEST_F(RequestManagerTest, Template_001, TestSize.Level1)
771 {
772 GTEST_LOG_(INFO)
773 << "RequestManagerTest, Template_001, TestSize.Level1";
774 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] Template_001 begin");
775
776 RequestManager* requestManager = new (std::nothrow) RequestManager();
777 auto request = std::make_shared<Request>();
778
779
780 LBSLOGI(REQUEST_MANAGER, "[RequestManagerTest] Template_001 end");
781 }
782 } // namespace Location
783 } // namespace OHOS