1 /*
2 * Copyright (c) 2021-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 #define private public
17
18 #include <fstream>
19 #include <gtest/gtest.h>
20
21 #include "ability_manager_helper.h"
22 #include "app_log_wrapper.h"
23 #include "appexecfwk_errors.h"
24 #include "bundle_data_storage_interface.h"
25 #include "bundle_data_mgr.h"
26 #include "bundle_mgr_service.h"
27 #include "int_wrapper.h"
28 #include "json_constants.h"
29 #include "json_serializer.h"
30 #include "mime_type_mgr.h"
31 #include "parcel.h"
32 #include "shortcut_data_storage_rdb.h"
33 #include "want_params_wrapper.h"
34
35 using namespace testing::ext;
36 using namespace OHOS::AppExecFwk;
37 using OHOS::Parcel;
38 using OHOS::AAFwk::Want;
39
40 namespace OHOS {
41 namespace {
42 const std::string BUNDLE_NAME = "com.example.l3jsdemo";
43 const std::string APP_NAME = "com.example.l3jsdemo";
44 const std::string ABILITY_NAME = "com.example.l3jsdemo.MainAbility";
45 const std::string PACKAGE_NAME = "com.example.l3jsdemo";
46 const std::string EMPTY_STRING = "";
47 const std::string MODULE_NAME = "entry";
48 const std::string DEVICE_ID = "PHONE-001";
49 const std::string LABEL = "hello";
50 const std::string DESCRIPTION = "mainEntry";
51 const std::string ICON_PATH = "/data/data/icon.png";
52 const std::string KIND = "test";
53 const AbilityType ABILITY_TYPE = AbilityType::PAGE;
54 const DisplayOrientation ORIENTATION = DisplayOrientation::PORTRAIT;
55 const LaunchMode LAUNCH_MODE = LaunchMode::SINGLETON;
56 const std::string CODE_PATH = "/data/app/el1/bundle/public/com.example.l3jsdemo";
57 const std::string RESOURCE_PATH = "/data/app/el1/bundle/public/com.example.l3jsdemo";
58 const std::string LIB_PATH = "/data/app/el1/bundle/public/com.example.l3jsdemo";
59 const bool VISIBLE = true;
60 const int32_t USERID = 100;
61 const std::string ACTION = "action.system.home";
62 const std::string ENTITY = "entity.system.home";
63 const std::string ISOLATION_ONLY = "isolationOnly";
64 constexpr const char* SHARE_ACTION_VALUE = "ohos.want.action.sendData";
65 constexpr const char* WANT_PARAM_PICKER_SUMMARY = "ability.picker.summary";
66 constexpr const char* WANT_PARAM_SUMMARY = "summary";
67 constexpr const char* SUMMARY_TOTAL_COUNT = "totalCount";
68 } // namespace
69
70 class BmsDataMgrTest : public testing::Test {
71 public:
72 BmsDataMgrTest();
73 ~BmsDataMgrTest();
74 static void SetUpTestCase();
75 static void TearDownTestCase();
76 void SetUp();
77 void TearDown();
78 const std::shared_ptr<BundleDataMgr> GetDataMgr() const;
79 AbilityInfo GetDefaultAbilityInfo() const;
80 ShortcutInfo InitShortcutInfo();
81
82 private:
83 std::shared_ptr<BundleDataMgr> dataMgr_ = std::make_shared<BundleDataMgr>();
84 static std::shared_ptr<BundleMgrService> bundleMgrService_;
85 std::vector<Skill> CreateSkillsForMatchShareTest();
86 AAFwk::Want CreateWantForMatchShareTest(std::map<std::string, int32_t> &utds);
87 bool MatchShare(std::map<std::string, int32_t> &utds, std::vector<Skill> &skills);
88 };
89
90 std::shared_ptr<BundleMgrService> BmsDataMgrTest::bundleMgrService_ =
91 DelayedSingleton<BundleMgrService>::GetInstance();
92
BmsDataMgrTest()93 BmsDataMgrTest::BmsDataMgrTest()
94 {}
95
~BmsDataMgrTest()96 BmsDataMgrTest::~BmsDataMgrTest()
97 {}
98
SetUpTestCase()99 void BmsDataMgrTest::SetUpTestCase()
100 {}
101
TearDownTestCase()102 void BmsDataMgrTest::TearDownTestCase()
103 {
104 bundleMgrService_->OnStop();
105 }
106
107
SetUp()108 void BmsDataMgrTest::SetUp()
109 {}
110
TearDown()111 void BmsDataMgrTest::TearDown()
112 {
113 dataMgr_->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
114 }
115
GetDefaultAbilityInfo() const116 AbilityInfo BmsDataMgrTest::GetDefaultAbilityInfo() const
117 {
118 AbilityInfo abilityInfo;
119 abilityInfo.package = PACKAGE_NAME;
120 abilityInfo.name = ABILITY_NAME;
121 abilityInfo.bundleName = BUNDLE_NAME;
122 abilityInfo.applicationName = APP_NAME;
123 abilityInfo.deviceId = DEVICE_ID;
124 abilityInfo.label = LABEL;
125 abilityInfo.description = DESCRIPTION;
126 abilityInfo.iconPath = ICON_PATH;
127 abilityInfo.visible = VISIBLE;
128 abilityInfo.kind = KIND;
129 abilityInfo.type = ABILITY_TYPE;
130 abilityInfo.orientation = ORIENTATION;
131 abilityInfo.launchMode = LAUNCH_MODE;
132 abilityInfo.codePath = CODE_PATH;
133 abilityInfo.resourcePath = RESOURCE_PATH;
134 abilityInfo.libPath = LIB_PATH;
135 return abilityInfo;
136 }
137
GetDataMgr() const138 const std::shared_ptr<BundleDataMgr> BmsDataMgrTest::GetDataMgr() const
139 {
140 return dataMgr_;
141 }
142
InitShortcutInfo()143 ShortcutInfo BmsDataMgrTest::InitShortcutInfo()
144 {
145 ShortcutInfo shortcutInfos;
146 shortcutInfos.id = "id_test1";
147 shortcutInfos.bundleName = "com.ohos.hello";
148 shortcutInfos.hostAbility = "hostAbility";
149 shortcutInfos.icon = "$media:16777224";
150 shortcutInfos.label = "shortcutLabel";
151 shortcutInfos.disableMessage = "shortcutDisableMessage";
152 shortcutInfos.isStatic = true;
153 shortcutInfos.isHomeShortcut = true;
154 shortcutInfos.isEnables = true;
155 return shortcutInfos;
156 }
157
CreateSkillsForMatchShareTest()158 std::vector<Skill> BmsDataMgrTest::CreateSkillsForMatchShareTest()
159 {
160 std::vector<Skill> skills;
161
162 Skill skill;
163 skill.actions.push_back(SHARE_ACTION_VALUE);
164
165 SkillUri uriPng;
166 uriPng.scheme = "file";
167 uriPng.utd = "general.png";
168 uriPng.maxFileSupported = 3;
169 skill.uris.push_back(uriPng);
170
171 SkillUri uriImage;
172 uriImage.scheme = "file";
173 uriImage.utd = "general.image";
174 uriImage.maxFileSupported = 6;
175 skill.uris.push_back(uriImage);
176
177 SkillUri uriMedia;
178 uriMedia.scheme = "file";
179 uriMedia.utd = "general.media";
180 uriMedia.maxFileSupported = 9;
181 skill.uris.push_back(uriMedia);
182
183 skills.push_back(skill);
184
185 return skills;
186 }
187
CreateWantForMatchShareTest(std::map<std::string,int32_t> & utds)188 AAFwk::Want BmsDataMgrTest::CreateWantForMatchShareTest(std::map<std::string, int32_t> &utds)
189 {
190 AAFwk::WantParams summaryWp;
191 int32_t totalCount = 0;
192 for (const auto &pair : utds) {
193 totalCount += pair.second;
194 summaryWp.SetParam(pair.first, Integer::Box(pair.second));
195 }
196
197 AAFwk::WantParams pickerWp;
198 pickerWp.SetParam(WANT_PARAM_SUMMARY, AAFwk::WantParamWrapper::Box(summaryWp));
199 pickerWp.SetParam(SUMMARY_TOTAL_COUNT, Integer::Box(totalCount));
200
201 AAFwk::WantParams wp;
202 wp.SetParam(WANT_PARAM_PICKER_SUMMARY, AAFwk::WantParamWrapper::Box(pickerWp));
203
204 AAFwk::Want want;
205 want.SetAction(SHARE_ACTION_VALUE);
206 want.SetParams(wp);
207
208 return want;
209 }
210
MatchShare(std::map<std::string,int32_t> & utds,std::vector<Skill> & skills)211 bool BmsDataMgrTest::MatchShare(std::map<std::string, int32_t> &utds, std::vector<Skill> &skills)
212 {
213 auto dataMgr = GetDataMgr();
214 AAFwk::Want want = CreateWantForMatchShareTest(utds);
215 return dataMgr->MatchShare(want, skills);
216 }
217
218 /**
219 * @tc.number: UpdateInstallState_0100
220 * @tc.name: UpdateInstallState
221 * @tc.desc: 1. correct status transfer INSTALL_START->INSTALL_FAIL
222 * 2. verify function return value
223 */
224 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0100, Function | SmallTest | Level0)
225 {
226 auto dataMgr = GetDataMgr();
227 EXPECT_NE(dataMgr, nullptr);
228 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
229 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
230 EXPECT_TRUE(ret1);
231 EXPECT_TRUE(ret2);
232 }
233
234 /**
235 * @tc.number: UpdateInstallState_0200
236 * @tc.name: UpdateInstallState
237 * @tc.desc: 1. correct status transfer INSTALL_START->INSTALL_SUCCESS->UPDATING_START->UPDATING_FAIL
238 * 2. verify function return value
239 */
240 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0200, Function | SmallTest | Level0)
241 {
242 auto dataMgr = GetDataMgr();
243 EXPECT_NE(dataMgr, nullptr);
244 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
245 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
246 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
247 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_FAIL);
248 EXPECT_TRUE(ret1);
249 EXPECT_TRUE(ret2);
250 EXPECT_TRUE(ret3);
251 EXPECT_TRUE(ret4);
252 }
253
254 /**
255 * @tc.number: UpdateInstallState_0300
256 * @tc.name: UpdateInstallState
257 * @tc.desc: 1. correct status transfer INSTALL_START->INSTALL_SUCCESS->UPDATING_START->UPDATING_SUCCESS
258 * 2. verify function return value
259 */
260 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0300, Function | SmallTest | Level0)
261 {
262 auto dataMgr = GetDataMgr();
263 EXPECT_NE(dataMgr, nullptr);
264 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
265 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
266 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
267 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
268 EXPECT_TRUE(ret1);
269 EXPECT_TRUE(ret2);
270 EXPECT_TRUE(ret3);
271 EXPECT_TRUE(ret4);
272 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
273 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
274 }
275
276 /**
277 * @tc.number: UpdateInstallState_0400
278 * @tc.name: UpdateInstallState
279 * @tc.desc: 1. correct status transfer INSTALL_START->INSTALL_SUCCESS->UNINSTALL_START->UNINSTALL_SUCCESS
280 * 2. verify function return value
281 */
282 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0400, Function | SmallTest | Level0)
283 {
284 auto dataMgr = GetDataMgr();
285 EXPECT_NE(dataMgr, nullptr);
286 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
287 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
288 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
289 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
290 EXPECT_TRUE(ret1);
291 EXPECT_TRUE(ret2);
292 EXPECT_TRUE(ret3);
293 EXPECT_TRUE(ret4);
294 }
295
296 /**
297 * @tc.number: UpdateInstallState_0500
298 * @tc.name: UpdateInstallState
299 * @tc.desc: 1. correct status transfer INSTALL_START->INSTALL_SUCCESS->UNINSTALL_START->UNINSTALL_FAIL
300 * 2. verify function return value
301 */
302 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0500, Function | SmallTest | Level0)
303 {
304 auto dataMgr = GetDataMgr();
305 EXPECT_NE(dataMgr, nullptr);
306 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
307 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
308 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
309 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_FAIL);
310 EXPECT_TRUE(ret1);
311 EXPECT_TRUE(ret2);
312 EXPECT_TRUE(ret3);
313 EXPECT_TRUE(ret4);
314 }
315
316 /**
317 * @tc.number: UpdateInstallState_0600
318 * @tc.name: UpdateInstallState
319 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_START
320 * 2. verify function return value
321 */
322 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0600, Function | SmallTest | Level0)
323 {
324 auto dataMgr = GetDataMgr();
325 EXPECT_NE(dataMgr, nullptr);
326 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
327 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
328 EXPECT_TRUE(ret1);
329 EXPECT_FALSE(ret2);
330 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
331 }
332
333 /**
334 * @tc.number: UpdateInstallState_0700
335 * @tc.name: UpdateInstallState
336 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UNINSTALL_START
337 * 2. verify function return value
338 */
339 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0700, Function | SmallTest | Level0)
340 {
341 auto dataMgr = GetDataMgr();
342 EXPECT_NE(dataMgr, nullptr);
343 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
344 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
345 EXPECT_TRUE(ret1);
346 EXPECT_TRUE(ret2);
347 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
348 }
349
350 /**
351 * @tc.number: UpdateInstallState_0800
352 * @tc.name: UpdateInstallState
353 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UNINSTALL_SUCCESS
354 * 2. verify function return value
355 */
356 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0800, Function | SmallTest | Level0)
357 {
358 auto dataMgr = GetDataMgr();
359 EXPECT_NE(dataMgr, nullptr);
360 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
361 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
362 EXPECT_TRUE(ret1);
363 EXPECT_FALSE(ret2);
364 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
365 }
366
367 /**
368 * @tc.number: UpdateInstallState_0900
369 * @tc.name: UpdateInstallState
370 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UNINSTALL_FAIL
371 * 2. verify function return value
372 */
373 HWTEST_F(BmsDataMgrTest, UpdateInstallState_0900, Function | SmallTest | Level0)
374 {
375 auto dataMgr = GetDataMgr();
376 EXPECT_NE(dataMgr, nullptr);
377 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
378 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_FAIL);
379 EXPECT_TRUE(ret1);
380 EXPECT_FALSE(ret2);
381 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
382 }
383
384 /**
385 * @tc.number: UpdateInstallState_1000
386 * @tc.name: UpdateInstallState
387 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UPDATING_STAR
388 * 2. verify function return value
389 */
390 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1000, Function | SmallTest | Level0)
391 {
392 auto dataMgr = GetDataMgr();
393 EXPECT_NE(dataMgr, nullptr);
394 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
395 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
396 EXPECT_TRUE(ret1);
397 EXPECT_TRUE(ret2);
398 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
399 }
400
401 /**
402 * @tc.number: UpdateInstallState_1100
403 * @tc.name: UpdateInstallState
404 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UPDATING_SUCCESS
405 * 2. verify function return value
406 */
407 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1100, Function | SmallTest | Level0)
408 {
409 auto dataMgr = GetDataMgr();
410 EXPECT_NE(dataMgr, nullptr);
411 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
412 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
413 EXPECT_TRUE(ret1);
414 EXPECT_FALSE(ret2);
415 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
416 }
417
418 /**
419 * @tc.number: UpdateInstallState_1200
420 * @tc.name: UpdateInstallState
421 * @tc.desc: 1. NOT correct status transfer INSTALL_START->UPDATING_FAIL
422 * 2. verify function return value
423 */
424 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1200, Function | SmallTest | Level0)
425 {
426 auto dataMgr = GetDataMgr();
427 EXPECT_NE(dataMgr, nullptr);
428 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
429 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_FAIL);
430 EXPECT_TRUE(ret1);
431 EXPECT_TRUE(ret2);
432 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
433 }
434
435 /**
436 * @tc.number: UpdateInstallState_1300
437 * @tc.name: UpdateInstallState
438 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->INSTALL_SUCCESS
439 * 2. verify function return value
440 */
441 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1300, Function | SmallTest | Level0)
442 {
443 auto dataMgr = GetDataMgr();
444 EXPECT_NE(dataMgr, nullptr);
445 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
446 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
447 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
448 EXPECT_TRUE(ret1);
449 EXPECT_TRUE(ret2);
450 EXPECT_FALSE(ret3);
451 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
452 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
453 }
454
455 /**
456 * @tc.number: UpdateInstallState_1400
457 * @tc.name: UpdateInstallState
458 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->INSTALL_START
459 * 2. verify function return value
460 */
461 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1400, Function | SmallTest | Level0)
462 {
463 auto dataMgr = GetDataMgr();
464 EXPECT_NE(dataMgr, nullptr);
465 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
466 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
467 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
468 EXPECT_TRUE(ret1);
469 EXPECT_TRUE(ret2);
470 EXPECT_FALSE(ret3);
471 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
472 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
473 }
474
475 /**
476 * @tc.number: UpdateInstallState_1500
477 * @tc.name: UpdateInstallState
478 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->INSTALL_FAIL
479 * 2. verify function return value
480 */
481 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1500, Function | SmallTest | Level0)
482 {
483 auto dataMgr = GetDataMgr();
484 EXPECT_NE(dataMgr, nullptr);
485 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
486 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
487 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_FAIL);
488 EXPECT_TRUE(ret1);
489 EXPECT_TRUE(ret2);
490 EXPECT_FALSE(ret3);
491 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
492 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
493 }
494
495 /**
496 * @tc.number: UpdateInstallState_1600
497 * @tc.name: UpdateInstallState
498 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->UNINSTALL_SUCCESS
499 * 2. verify function return value
500 */
501 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1600, Function | SmallTest | Level0)
502 {
503 auto dataMgr = GetDataMgr();
504 EXPECT_NE(dataMgr, nullptr);
505 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
506 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
507 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
508 EXPECT_TRUE(ret1);
509 EXPECT_TRUE(ret2);
510 EXPECT_FALSE(ret3);
511 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
512 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
513 }
514
515 /**
516 * @tc.number: UpdateInstallState_1700
517 * @tc.name: UpdateInstallState
518 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->UNINSTALL_FAIL
519 * 2. verify function return value
520 */
521 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1700, Function | SmallTest | Level0)
522 {
523 auto dataMgr = GetDataMgr();
524 EXPECT_NE(dataMgr, nullptr);
525 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
526 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
527 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_FAIL);
528 EXPECT_TRUE(ret1);
529 EXPECT_TRUE(ret2);
530 EXPECT_FALSE(ret3);
531 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
532 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
533 }
534
535 /**
536 * @tc.number: UpdateInstallState_1800
537 * @tc.name: UpdateInstallState
538 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->UPDATING_FAIL
539 * 2. verify function return value
540 */
541 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1800, Function | SmallTest | Level0)
542 {
543 auto dataMgr = GetDataMgr();
544 EXPECT_NE(dataMgr, nullptr);
545 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
546 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
547 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_FAIL);
548 EXPECT_TRUE(ret1);
549 EXPECT_TRUE(ret2);
550 EXPECT_FALSE(ret3);
551 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
552 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
553 }
554
555 /**
556 * @tc.number: UpdateInstallState_1900
557 * @tc.name: UpdateInstallState
558 * @tc.desc: 1. NOT correct status transfer INSTALL_START->INSTALL_SUCCESS->UPDATING_SUCCESS
559 * 2. verify function return value
560 */
561 HWTEST_F(BmsDataMgrTest, UpdateInstallState_1900, Function | SmallTest | Level0)
562 {
563 auto dataMgr = GetDataMgr();
564 EXPECT_NE(dataMgr, nullptr);
565 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
566 bool ret2 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
567 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
568 EXPECT_TRUE(ret1);
569 EXPECT_TRUE(ret2);
570 EXPECT_FALSE(ret3);
571 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
572 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
573 }
574
575 /**
576 * @tc.number: UpdateInstallState_2000
577 * @tc.name: UpdateInstallState
578 * @tc.desc: 1. empty bundle name
579 * 2. verify function return value
580 */
581 HWTEST_F(BmsDataMgrTest, UpdateInstallState_2000, Function | SmallTest | Level0)
582 {
583 auto dataMgr = GetDataMgr();
584 EXPECT_NE(dataMgr, nullptr);
585 bool ret1 = dataMgr->UpdateBundleInstallState("", InstallState::INSTALL_START);
586 EXPECT_FALSE(ret1);
587 }
588
589 /**
590 * @tc.number: AddBundleInfo_0100
591 * @tc.name: AddBundleInfo
592 * @tc.desc: 1. add info to the data manager
593 * 2. query data then verify
594 */
595 HWTEST_F(BmsDataMgrTest, AddBundleInfo_0100, Function | SmallTest | Level0)
596 {
597 InnerBundleInfo info;
598 BundleInfo bundleInfo;
599 bundleInfo.name = BUNDLE_NAME;
600 bundleInfo.applicationInfo.name = APP_NAME;
601 ApplicationInfo applicationInfo;
602 applicationInfo.name = BUNDLE_NAME;
603 applicationInfo.deviceId = DEVICE_ID;
604 applicationInfo.bundleName = BUNDLE_NAME;
605 info.SetBaseBundleInfo(bundleInfo);
606 info.SetBaseApplicationInfo(applicationInfo);
607 auto dataMgr = GetDataMgr();
608 EXPECT_NE(dataMgr, nullptr);
609 InnerBundleInfo info1;
610 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
611 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
612 bool ret3 = dataMgr->GetInnerBundleInfo(BUNDLE_NAME, info1);
613 EXPECT_TRUE(ret1);
614 EXPECT_TRUE(ret2);
615 EXPECT_TRUE(ret3);
616
617 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
618 }
619
620 /**
621 * @tc.number: AddBundleInfo_0200
622 * @tc.name: AddBundleInfo
623 * @tc.desc: 1. add info to the data manager
624 * 2. query data then verify
625 */
626 HWTEST_F(BmsDataMgrTest, AddBundleInfo_0200, Function | SmallTest | Level0)
627 {
628 InnerBundleUserInfo innerBundleUserInfo;
629 innerBundleUserInfo.bundleName = BUNDLE_NAME;
630 innerBundleUserInfo.bundleUserInfo.enabled = true;
631 innerBundleUserInfo.bundleUserInfo.userId = USERID;
632
633 InnerBundleInfo info1;
634 BundleInfo bundleInfo1;
635 bundleInfo1.name = BUNDLE_NAME;
636 bundleInfo1.applicationInfo.name = APP_NAME;
637 bundleInfo1.applicationInfo.bundleName = BUNDLE_NAME;
638 ApplicationInfo applicationInfo1;
639 applicationInfo1.name = BUNDLE_NAME;
640 applicationInfo1.bundleName = BUNDLE_NAME;
641 applicationInfo1.deviceId = DEVICE_ID;
642 info1.SetBaseBundleInfo(bundleInfo1);
643 info1.SetBaseApplicationInfo(applicationInfo1);
644 info1.AddInnerBundleUserInfo(innerBundleUserInfo);
645
646 InnerBundleInfo info2;
647 BundleInfo bundleInfo2;
648 bundleInfo2.name = BUNDLE_NAME;
649 bundleInfo2.applicationInfo.name = APP_NAME;
650 bundleInfo2.applicationInfo.bundleName = BUNDLE_NAME;
651 ApplicationInfo applicationInfo2;
652 applicationInfo2.name = BUNDLE_NAME;
653 applicationInfo2.bundleName = BUNDLE_NAME;
654 applicationInfo2.deviceId = DEVICE_ID;
655 info2.SetBaseBundleInfo(bundleInfo2);
656 info2.SetBaseApplicationInfo(applicationInfo2);
657 info2.AddInnerBundleUserInfo(innerBundleUserInfo);
658
659 auto dataMgr = GetDataMgr();
660 EXPECT_NE(dataMgr, nullptr);
661 dataMgr->AddUserId(USERID);
662
663 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
664 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info1);
665 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
666 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
667 bool ret5 = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, info2, info1);
668 bool ret6 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
669 EXPECT_TRUE(ret1);
670 EXPECT_TRUE(ret2);
671 EXPECT_TRUE(ret3);
672 EXPECT_TRUE(ret4);
673 EXPECT_TRUE(ret5);
674 EXPECT_TRUE(ret6);
675
676 ApplicationInfo appInfo;
677 bool ret7 = dataMgr->GetApplicationInfo(BUNDLE_NAME, ApplicationFlag::GET_BASIC_APPLICATION_INFO, USERID, appInfo);
678 EXPECT_TRUE(ret7);
679
680 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
681 }
682
683 /**
684 * @tc.number: AddBundleInfo_0300
685 * @tc.name: AddBundleInfo
686 * @tc.desc: 1. scan dir not exist
687 * 2. verify scan result file number is 0
688 */
689 HWTEST_F(BmsDataMgrTest, AddBundleInfo_0300, Function | SmallTest | Level0)
690 {
691 auto dataMgr = GetDataMgr();
692 EXPECT_NE(dataMgr, nullptr);
693 InnerBundleInfo info;
694 InnerBundleInfo info1;
695 bool ret = dataMgr->AddInnerBundleInfo("", info);
696 bool ret1 = dataMgr->GetInnerBundleInfo("", info1);
697 EXPECT_FALSE(ret);
698 EXPECT_FALSE(ret1);
699 }
700
701 /**
702 * @tc.number: AddBundleInfo_0400
703 * @tc.name: AddBundleInfo
704 * @tc.desc: 1. add info to the data manager, then uninstall, then reinstall
705 * 2. query data then verify
706 */
707 HWTEST_F(BmsDataMgrTest, AddBundleInfo_0400, Function | SmallTest | Level0)
708 {
709 InnerBundleInfo info;
710 BundleInfo bundleInfo;
711 bundleInfo.name = BUNDLE_NAME;
712 bundleInfo.applicationInfo.name = APP_NAME;
713 ApplicationInfo applicationInfo;
714 applicationInfo.name = BUNDLE_NAME;
715 applicationInfo.deviceId = DEVICE_ID;
716 applicationInfo.bundleName = BUNDLE_NAME;
717 info.SetBaseBundleInfo(bundleInfo);
718 info.SetBaseApplicationInfo(applicationInfo);
719 auto dataMgr = GetDataMgr();
720 EXPECT_NE(dataMgr, nullptr);
721 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
722 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
723 EXPECT_TRUE(ret1);
724 EXPECT_TRUE(ret2);
725
726 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
727 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
728 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
729 bool ret4 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
730 EXPECT_TRUE(ret3);
731 EXPECT_TRUE(ret4);
732 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
733 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
734 }
735
736 /**
737 * @tc.number: AddBundleInfo_0500
738 * @tc.name: AddBundleInfo
739 * @tc.desc: 1. add module info to the data manager
740 * 2. query data then verify
741 */
742 HWTEST_F(BmsDataMgrTest, AddBundleInfo_0500, Function | SmallTest | Level0)
743 {
744 InnerBundleInfo info1;
745 BundleInfo bundleInfo1;
746 bundleInfo1.name = BUNDLE_NAME;
747 bundleInfo1.applicationInfo.name = APP_NAME;
748 bundleInfo1.applicationInfo.bundleName = BUNDLE_NAME;
749 ApplicationInfo applicationInfo1;
750 applicationInfo1.name = BUNDLE_NAME;
751 applicationInfo1.deviceId = DEVICE_ID;
752 applicationInfo1.bundleName = BUNDLE_NAME;
753 info1.SetBaseBundleInfo(bundleInfo1);
754 info1.SetBaseApplicationInfo(applicationInfo1);
755
756 InnerBundleInfo info2;
757 BundleInfo bundleInfo2;
758 bundleInfo2.name = BUNDLE_NAME;
759 bundleInfo2.applicationInfo.name = APP_NAME;
760 bundleInfo2.applicationInfo.bundleName = BUNDLE_NAME;
761 ApplicationInfo applicationInfo2;
762 applicationInfo2.name = BUNDLE_NAME;
763 applicationInfo2.deviceId = DEVICE_ID;
764 applicationInfo2.bundleName = BUNDLE_NAME;
765 info2.SetBaseBundleInfo(bundleInfo2);
766 info2.SetBaseApplicationInfo(applicationInfo2);
767
768 InnerBundleInfo info3;
769 InnerBundleInfo info4;
770 auto dataMgr = GetDataMgr();
771 EXPECT_NE(dataMgr, nullptr);
772 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
773 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info1);
774 bool ret3 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
775 bool ret4 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
776 bool ret5 = dataMgr->AddNewModuleInfo(BUNDLE_NAME, info2, info1);
777 bool ret6 = dataMgr->GetInnerBundleInfo(BUNDLE_NAME, info3);
778 bool ret7 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_SUCCESS);
779 bool ret8 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
780 bool ret9 = dataMgr->RemoveModuleInfo(BUNDLE_NAME, PACKAGE_NAME, info1);
781 bool ret10 = dataMgr->GetInnerBundleInfo(BUNDLE_NAME, info4);
782 EXPECT_TRUE(ret1);
783 EXPECT_TRUE(ret2);
784 EXPECT_TRUE(ret3);
785 EXPECT_TRUE(ret4);
786 EXPECT_TRUE(ret5);
787 EXPECT_TRUE(ret6);
788 EXPECT_TRUE(ret7);
789 EXPECT_TRUE(ret8);
790 EXPECT_TRUE(ret9);
791 EXPECT_TRUE(ret10);
792
793 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
794 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_SUCCESS);
795 }
796
797 /**
798 * @tc.number: GenerateUidAndGid_0100
799 * @tc.name: GenerateUidAndGid
800 * @tc.desc: 1. app type is system app
801 * 2. generate uid and gid then verify
802 */
803 HWTEST_F(BmsDataMgrTest, GenerateUidAndGid_0100, Function | SmallTest | Level0)
804 {
805 InnerBundleInfo info;
806 BundleInfo bundleInfo;
807 bundleInfo.name = BUNDLE_NAME;
808 bundleInfo.applicationInfo.name = APP_NAME;
809 ApplicationInfo applicationInfo;
810 applicationInfo.name = BUNDLE_NAME;
811 applicationInfo.deviceId = DEVICE_ID;
812 applicationInfo.bundleName = BUNDLE_NAME;
813 info.SetBaseBundleInfo(bundleInfo);
814 info.SetBaseApplicationInfo(applicationInfo);
815 info.SetAppType(Constants::AppType::SYSTEM_APP);
816 InnerBundleUserInfo innerBundleUserInfo;
817 innerBundleUserInfo.bundleUserInfo.userId = 0;
818 innerBundleUserInfo.bundleName = BUNDLE_NAME;
819 auto dataMgr = GetDataMgr();
820 EXPECT_NE(dataMgr, nullptr);
821 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
822 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
823 bool ret3 = dataMgr->GenerateUidAndGid(innerBundleUserInfo);
824 EXPECT_TRUE(ret1);
825 EXPECT_TRUE(ret2);
826 EXPECT_TRUE(ret3);
827
828 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
829 }
830
831 /**
832 * @tc.number: GenerateUidAndGid_0200
833 * @tc.name: GenerateUidAndGid
834 * @tc.desc: 1. app type is third party app
835 * 2. generate uid and gid then verify
836 */
837 HWTEST_F(BmsDataMgrTest, GenerateUidAndGid_0200, Function | SmallTest | Level0)
838 {
839 InnerBundleInfo info;
840 BundleInfo bundleInfo;
841 bundleInfo.name = BUNDLE_NAME;
842 bundleInfo.applicationInfo.name = APP_NAME;
843 ApplicationInfo applicationInfo;
844 applicationInfo.name = BUNDLE_NAME;
845 applicationInfo.deviceId = DEVICE_ID;
846 applicationInfo.bundleName = BUNDLE_NAME;
847 InnerBundleUserInfo innerBundleUserInfo;
848 innerBundleUserInfo.bundleUserInfo.userId = 0;
849 innerBundleUserInfo.bundleName = BUNDLE_NAME;
850 info.SetBaseBundleInfo(bundleInfo);
851 info.SetBaseApplicationInfo(applicationInfo);
852 info.SetAppType(Constants::AppType::THIRD_SYSTEM_APP);
853 auto dataMgr = GetDataMgr();
854 EXPECT_NE(dataMgr, nullptr);
855 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
856 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
857 bool ret3 = dataMgr->GenerateUidAndGid(innerBundleUserInfo);
858 EXPECT_TRUE(ret1);
859 EXPECT_TRUE(ret2);
860 EXPECT_TRUE(ret3);
861
862 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
863 }
864
865 /**
866 * @tc.number: GenerateUidAndGid_0300
867 * @tc.name: GenerateUidAndGid
868 * @tc.desc: 1. app type is third party app
869 * 2. generate uid and gid then verify
870 */
871 HWTEST_F(BmsDataMgrTest, GenerateUidAndGid_0300, Function | SmallTest | Level0)
872 {
873 InnerBundleInfo info;
874 BundleInfo bundleInfo;
875 bundleInfo.name = BUNDLE_NAME;
876 bundleInfo.applicationInfo.name = APP_NAME;
877 ApplicationInfo applicationInfo;
878 applicationInfo.name = BUNDLE_NAME;
879 applicationInfo.deviceId = DEVICE_ID;
880 applicationInfo.bundleName = BUNDLE_NAME;
881 InnerBundleUserInfo innerBundleUserInfo;
882 innerBundleUserInfo.bundleUserInfo.userId = 0;
883 innerBundleUserInfo.bundleName = BUNDLE_NAME;
884 info.SetBaseBundleInfo(bundleInfo);
885 info.SetBaseApplicationInfo(applicationInfo);
886 info.SetAppType(Constants::AppType::THIRD_PARTY_APP);
887 auto dataMgr = GetDataMgr();
888 EXPECT_NE(dataMgr, nullptr);
889 dataMgr->AddUserId(USERID);
890
891 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
892 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
893 bool ret3 = dataMgr->GenerateUidAndGid(innerBundleUserInfo);
894 EXPECT_TRUE(ret1);
895 EXPECT_TRUE(ret2);
896 EXPECT_TRUE(ret3);
897 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
898 }
899
900 /**
901 * @tc.number: GenerateUidAndGid_0400
902 * @tc.name: GenerateUidAndGid
903 * @tc.desc: 1. app type is third party app
904 * 2. test GenerateUidAndGid failed by empty params
905 */
906 HWTEST_F(BmsDataMgrTest, GenerateUidAndGid_0400, Function | SmallTest | Level0)
907 {
908 InnerBundleUserInfo innerBundleUserInfo;
909 innerBundleUserInfo.bundleName = "";
910
911 auto dataMgr = GetDataMgr();
912 EXPECT_NE(dataMgr, nullptr);
913 dataMgr->AddUserId(USERID);
914
915 bool ret = dataMgr->GenerateUidAndGid(innerBundleUserInfo);
916 EXPECT_FALSE(ret);
917
918 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
919 }
920
921 /**
922 * @tc.number: QueryAbilityInfo_0100
923 * @tc.name: QueryAbilityInfo
924 * @tc.desc: 1. add info to the data manager
925 * 2. query data then verify
926 */
927 HWTEST_F(BmsDataMgrTest, QueryAbilityInfo_0100, Function | SmallTest | Level0)
928 {
929 InnerBundleUserInfo innerBundleUserInfo;
930 innerBundleUserInfo.bundleName = BUNDLE_NAME;
931 innerBundleUserInfo.bundleUserInfo.enabled = true;
932 innerBundleUserInfo.bundleUserInfo.userId = USERID;
933
934 InnerBundleInfo info1;
935 BundleInfo bundleInfo1;
936 bundleInfo1.name = BUNDLE_NAME;
937 bundleInfo1.applicationInfo.name = APP_NAME;
938 bundleInfo1.applicationInfo.bundleName = BUNDLE_NAME;
939 ApplicationInfo applicationInfo1;
940 applicationInfo1.name = BUNDLE_NAME;
941 applicationInfo1.bundleName = BUNDLE_NAME;
942
943 AbilityInfo abilityInfo = GetDefaultAbilityInfo();
944 bundleInfo1.abilityInfos.push_back(abilityInfo);
945 info1.SetBaseBundleInfo(bundleInfo1);
946 info1.SetBaseApplicationInfo(applicationInfo1);
947 info1.InsertAbilitiesInfo(BUNDLE_NAME + PACKAGE_NAME + ABILITY_NAME, abilityInfo);
948 info1.AddInnerBundleUserInfo(innerBundleUserInfo);
949 info1.SetAbilityEnabled(Constants::EMPTY_STRING, ABILITY_NAME, true, USERID);
950 auto dataMgr = GetDataMgr();
951 EXPECT_NE(dataMgr, nullptr);
952 dataMgr->AddUserId(USERID);
953
954 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
955 EXPECT_TRUE(ret1);
956 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info1);
957 EXPECT_TRUE(ret2);
958
959 Want want;
960 ElementName name;
961 name.SetAbilityName(ABILITY_NAME);
962 name.SetBundleName(BUNDLE_NAME);
963 want.SetElement(name);
964
965 AbilityInfo abilityInfo2;
966 bool ret3 = dataMgr->QueryAbilityInfo(want, 0, USERID, abilityInfo2);
967 EXPECT_TRUE(ret3);
968
969 EXPECT_EQ(abilityInfo2.package, abilityInfo.package);
970 EXPECT_EQ(abilityInfo2.name, abilityInfo.name);
971 EXPECT_EQ(abilityInfo2.bundleName, abilityInfo.bundleName);
972 EXPECT_EQ(abilityInfo2.applicationName, abilityInfo.applicationName);
973 EXPECT_EQ(abilityInfo2.deviceId, abilityInfo.deviceId);
974 EXPECT_EQ(abilityInfo2.label, abilityInfo.label);
975 EXPECT_EQ(abilityInfo2.description, abilityInfo.description);
976 EXPECT_EQ(abilityInfo2.iconPath, abilityInfo.iconPath);
977 EXPECT_EQ(abilityInfo2.visible, abilityInfo.visible);
978 EXPECT_EQ(abilityInfo2.kind, abilityInfo.kind);
979 EXPECT_EQ(abilityInfo2.type, abilityInfo.type);
980 EXPECT_EQ(abilityInfo2.orientation, abilityInfo.orientation);
981 EXPECT_EQ(abilityInfo2.launchMode, abilityInfo.launchMode);
982 EXPECT_EQ(abilityInfo2.codePath, abilityInfo.codePath);
983 EXPECT_EQ(abilityInfo2.resourcePath, abilityInfo.resourcePath);
984 EXPECT_EQ(abilityInfo2.libPath, abilityInfo.libPath);
985
986 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
987 }
988
989 /**
990 * @tc.number: QueryAbilityInfo_0200
991 * @tc.name: QueryAbilityInfo
992 * @tc.desc: 1. add info to the data manager
993 * 2. query data then verify
994 */
995 HWTEST_F(BmsDataMgrTest, QueryAbilityInfo_0200, Function | SmallTest | Level0)
996 {
997 Want want;
998 ElementName name;
999 name.SetAbilityName(ABILITY_NAME);
1000 want.SetElement(name);
1001 auto dataMgr = GetDataMgr();
1002 EXPECT_NE(dataMgr, nullptr);
1003 AbilityInfo abilityInfo;
1004 bool ret = dataMgr->QueryAbilityInfo(want, 0, 0, abilityInfo);
1005 EXPECT_FALSE(ret);
1006 }
1007
1008 /**
1009 * @tc.number: QueryAbilityInfo_0300
1010 * @tc.name: QueryAbilityInfo
1011 * @tc.desc: 1. add info to the data manager
1012 * 2. query data then verify
1013 */
1014 HWTEST_F(BmsDataMgrTest, QueryAbilityInfo_0300, Function | SmallTest | Level0)
1015 {
1016 Want want;
1017 ElementName element1;
1018 EXPECT_EQ("///", element1.GetURI());
1019
1020 element1.SetDeviceID(DEVICE_ID);
1021 EXPECT_EQ(DEVICE_ID, element1.GetDeviceID());
1022
1023 element1.SetBundleName(BUNDLE_NAME);
1024 EXPECT_EQ(BUNDLE_NAME, element1.GetBundleName());
1025
1026 element1.SetAbilityName(ABILITY_NAME);
1027 EXPECT_EQ(ABILITY_NAME, element1.GetAbilityName());
1028 EXPECT_EQ(DEVICE_ID + "/" + BUNDLE_NAME + "//" + ABILITY_NAME, element1.GetURI());
1029
1030 ElementName element2(DEVICE_ID, BUNDLE_NAME, ABILITY_NAME);
1031 EXPECT_EQ(DEVICE_ID + "/" + BUNDLE_NAME + "//" + ABILITY_NAME, element2.GetURI());
1032
1033 bool equal = (element2 == element1);
1034 EXPECT_TRUE(equal);
1035
1036 Parcel parcel;
1037 parcel.WriteParcelable(&element1);
1038 std::unique_ptr<ElementName> newElement;
1039 newElement.reset(parcel.ReadParcelable<ElementName>());
1040 EXPECT_EQ(newElement->GetDeviceID(), element1.GetDeviceID());
1041 EXPECT_EQ(newElement->GetBundleName(), element1.GetBundleName());
1042 EXPECT_EQ(newElement->GetAbilityName(), element1.GetAbilityName());
1043
1044 want.SetElement(element1);
1045 auto dataMgr = GetDataMgr();
1046 EXPECT_NE(dataMgr, nullptr);
1047 AbilityInfo abilityInfo;
1048 bool ret = dataMgr->QueryAbilityInfo(want, 0, 0, abilityInfo);
1049 EXPECT_FALSE(ret);
1050 }
1051
1052 /**
1053 * @tc.number: GetApplicationInfo_0100
1054 * @tc.name: GetApplicationInfo
1055 * @tc.desc: 1. add info to the data manager
1056 * 2. query data then verify
1057 */
1058 HWTEST_F(BmsDataMgrTest, GetApplicationInfo_0100, Function | SmallTest | Level0)
1059 {
1060 InnerBundleUserInfo innerBundleUserInfo;
1061 innerBundleUserInfo.bundleName = BUNDLE_NAME;
1062 innerBundleUserInfo.bundleUserInfo.enabled = true;
1063 innerBundleUserInfo.bundleUserInfo.userId = USERID;
1064
1065 InnerBundleInfo info1;
1066 BundleInfo bundleInfo1;
1067 bundleInfo1.name = BUNDLE_NAME;
1068 bundleInfo1.applicationInfo.name = APP_NAME;
1069 bundleInfo1.applicationInfo.bundleName = BUNDLE_NAME;
1070 ApplicationInfo applicationInfo1;
1071 applicationInfo1.name = BUNDLE_NAME;
1072 applicationInfo1.bundleName = BUNDLE_NAME;
1073 info1.SetBaseBundleInfo(bundleInfo1);
1074 info1.SetBaseApplicationInfo(applicationInfo1);
1075 info1.AddInnerBundleUserInfo(innerBundleUserInfo);
1076
1077 auto dataMgr = GetDataMgr();
1078 EXPECT_NE(dataMgr, nullptr);
1079 dataMgr->AddUserId(USERID);
1080
1081 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1082 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info1);
1083
1084 ApplicationInfo appInfo;
1085 bool ret3 = dataMgr->GetApplicationInfo(APP_NAME, ApplicationFlag::GET_BASIC_APPLICATION_INFO, USERID, appInfo);
1086 std::string name = appInfo.name;
1087 EXPECT_TRUE(ret1);
1088 EXPECT_TRUE(ret2);
1089 EXPECT_TRUE(ret3);
1090 EXPECT_EQ(name, APP_NAME);
1091 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1092 }
1093
1094 /**
1095 * @tc.number: GetApplicationInfo_0200
1096 * @tc.name: GetApplicationInfo
1097 * @tc.desc: 1. add info to the data manager
1098 * 2. query data then verify
1099 */
1100 HWTEST_F(BmsDataMgrTest, GetApplicationInfo_0200, Function | SmallTest | Level0)
1101 {
1102 ApplicationInfo appInfo;
1103 appInfo.name = APP_NAME;
1104 appInfo.bundleName = BUNDLE_NAME;
1105 appInfo.deviceId = DEVICE_ID;
1106
1107 auto dataMgr = GetDataMgr();
1108 EXPECT_NE(dataMgr, nullptr);
1109 dataMgr->AddUserId(USERID);
1110
1111 ApplicationInfo appInfo3;
1112 bool ret = dataMgr->GetApplicationInfo(BUNDLE_NAME, ApplicationFlag::GET_BASIC_APPLICATION_INFO, USERID, appInfo3);
1113 EXPECT_FALSE(ret);
1114
1115 EXPECT_NE(appInfo.name, appInfo3.name);
1116 EXPECT_NE(appInfo.bundleName, appInfo3.bundleName);
1117 EXPECT_NE(appInfo.deviceId, appInfo3.deviceId);
1118 }
1119
1120 /**
1121 * @tc.number: BundleStateStorage_0100
1122 * @tc.name: Test DeleteBundleState, a param is error
1123 * @tc.desc: 1.Test the DeleteBundleState of BundleStateStorage
1124 */
1125 HWTEST_F(BmsDataMgrTest, BundleStateStorage_0100, Function | SmallTest | Level0)
1126 {
1127 BundleStateStorage bundleStateStorage;
1128 bool ret = bundleStateStorage.DeleteBundleState("", USERID);
1129 EXPECT_EQ(ret, false);
1130 ret = bundleStateStorage.DeleteBundleState(BUNDLE_NAME, -1);
1131 EXPECT_EQ(ret, false);
1132 }
1133
1134 /**
1135 * @tc.number: BundleStateStorage_0200
1136 * @tc.name: Test GetBundleStateStorage, a param is error
1137 * @tc.desc: 1.Test the GetBundleStateStorage of BundleStateStorage
1138 */
1139 HWTEST_F(BmsDataMgrTest, BundleStateStorage_0200, Function | SmallTest | Level0)
1140 {
1141 BundleStateStorage bundleStateStorage;
1142 BundleUserInfo bundleUserInfo;
1143 bundleStateStorage.GetBundleStateStorage(BUNDLE_NAME, USERID, bundleUserInfo);
1144 bool ret = bundleStateStorage.GetBundleStateStorage(
1145 "", USERID, bundleUserInfo);
1146 EXPECT_EQ(ret, false);
1147 ret = bundleStateStorage.GetBundleStateStorage(
1148 BUNDLE_NAME, -1, bundleUserInfo);
1149 EXPECT_EQ(ret, false);
1150 }
1151
1152 /**
1153 * @tc.number: AbilityManager_0100
1154 * @tc.name: Test GetBundleStateStorage, a param is error
1155 * @tc.desc: 1.Test the GetBundleStateStorage of BundleStateStorage
1156 */
1157 HWTEST_F(BmsDataMgrTest, AbilityManager_0100, Function | SmallTest | Level0)
1158 {
1159 #ifdef BUNDLE_FRAMEWORK_FREE_INSTALL
1160 int bundleUid = -1;
1161 int ret = AbilityManagerHelper::IsRunning("", bundleUid);
1162 EXPECT_EQ(ret, -1);
1163 bool res = AbilityManagerHelper::UninstallApplicationProcesses("", 0);
1164 EXPECT_EQ(res, true);
1165 #endif
1166 }
1167
1168 /**
1169 * @tc.number: AbilityManager_0200
1170 * @tc.name: test IsRunning
1171 * @tc.desc: 1.test IsRunning of AbilityManagerHelper
1172 */
1173 HWTEST_F(BmsDataMgrTest, AbilityManager_0200, Function | SmallTest | Level0)
1174 {
1175 AbilityManagerHelper helper;
1176 int failed = -1;
1177 int ret = helper.IsRunning("");
1178 EXPECT_EQ(ret, failed);
1179 ret = helper.IsRunning("com.ohos.tes1");
1180 EXPECT_EQ(ret, failed);
1181 }
1182
1183 #ifdef BUNDLE_FRAMEWORK_FREE_INSTALL
1184 /**
1185 * @tc.number: GetFreeInstallModules_0100
1186 * @tc.name: test GetFreeInstallModules
1187 * @tc.desc: 1.test GetFreeInstallModules of BundleDataMgr
1188 */
1189 HWTEST_F(BmsDataMgrTest, GetFreeInstallModules_0100, Function | SmallTest | Level0)
1190 {
1191 auto dataMgr = GetDataMgr();
1192 EXPECT_NE(dataMgr, nullptr);
1193 dataMgr->bundleInfos_.clear();
1194 std::map<std::string, std::vector<std::string>> freeInstallModules;
1195 bool ret = dataMgr->GetFreeInstallModules(freeInstallModules);
1196 EXPECT_EQ(ret, false);
1197 InnerBundleInfo info1;
1198 dataMgr->bundleInfos_.try_emplace("com.ohos.tes1", info1);
1199 ret = dataMgr->GetFreeInstallModules(freeInstallModules);
1200 EXPECT_EQ(ret, false);
1201 freeInstallModules.clear();
1202 InnerBundleInfo info2;
1203 std::map<std::string, InnerModuleInfo> innerModuleInfos;
1204 InnerModuleInfo innerModuleInfo;
1205 innerModuleInfo.installationFree = true;
1206 innerModuleInfo.moduleName = "entry";
1207 innerModuleInfos.try_emplace("module", innerModuleInfo);
1208 info2.innerModuleInfos_ = innerModuleInfos;
1209 dataMgr->bundleInfos_.try_emplace("com.ohos.tes2", info2);
1210 ret = dataMgr->GetFreeInstallModules(freeInstallModules);
1211 EXPECT_EQ(ret, true);
1212 }
1213 #endif
1214
1215 /**
1216 * @tc.number: InnerBundleInfo_0100
1217 * @tc.name: Test GetBundleStateStorage, a param is error
1218 * @tc.desc: 1.Test the GetBundleStateStorage of BundleStateStorage
1219 */
1220 HWTEST_F(BmsDataMgrTest, InnerBundleInfo_0100, Function | SmallTest | Level0)
1221 {
1222 InnerBundleInfo innerBundleInfo;
1223 InnerBundleInfo newInfo;
1224 bool res = innerBundleInfo.AddModuleInfo(newInfo);
1225 EXPECT_EQ(res, false);
1226 }
1227
1228 /**
1229 * @tc.number: UpdateInnerBundleInfo_0001
1230 * @tc.name: UpdateInnerBundleInfo
1231 * @tc.desc: UpdateInnerBundleInfo, bundleName is empty
1232 */
1233 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0001, Function | SmallTest | Level0)
1234 {
1235 auto dataMgr = GetDataMgr();
1236 EXPECT_NE(dataMgr, nullptr);
1237 if (dataMgr != nullptr) {
1238 InnerBundleInfo info;
1239 bool ret = dataMgr->UpdateInnerBundleInfo(info);
1240 EXPECT_FALSE(ret);
1241 }
1242 }
1243
1244 /**
1245 * @tc.number: UpdateInnerBundleInfo_0002
1246 * @tc.name: UpdateInnerBundleInfo
1247 * @tc.desc: UpdateInnerBundleInfo, bundleInfos_ is empty
1248 */
1249 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0002, Function | SmallTest | Level0)
1250 {
1251 auto dataMgr = GetDataMgr();
1252 EXPECT_NE(dataMgr, nullptr);
1253 if (dataMgr != nullptr) {
1254 ApplicationInfo applicationInfo;
1255 applicationInfo.bundleName = BUNDLE_NAME;
1256 InnerBundleInfo info;
1257 info.SetBaseApplicationInfo(applicationInfo);
1258 bool ret = dataMgr->UpdateInnerBundleInfo(info);
1259 EXPECT_FALSE(ret);
1260 }
1261 }
1262
1263 /**
1264 * @tc.number: UpdateInnerBundleInfo_0003
1265 * @tc.name: UpdateInnerBundleInfo
1266 * @tc.desc: 1. add info to the data manager
1267 * 2. UpdateInnerBundleInfo, bundleInfos_ is not empty
1268 */
1269 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0003, Function | SmallTest | Level0)
1270 {
1271 auto dataMgr = GetDataMgr();
1272 EXPECT_NE(dataMgr, nullptr);
1273 if (dataMgr != nullptr) {
1274 BundleInfo bundleInfo;
1275 bundleInfo.name = BUNDLE_NAME;
1276 bundleInfo.applicationInfo.name = APP_NAME;
1277 ApplicationInfo applicationInfo;
1278 applicationInfo.name = BUNDLE_NAME;
1279 applicationInfo.deviceId = DEVICE_ID;
1280 applicationInfo.bundleName = BUNDLE_NAME;
1281 InnerBundleInfo info;
1282 info.SetBaseBundleInfo(bundleInfo);
1283 info.SetBaseApplicationInfo(applicationInfo);
1284 bool ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1285 EXPECT_TRUE(ret);
1286 ret = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1287 EXPECT_TRUE(ret);
1288 ret = dataMgr->UpdateInnerBundleInfo(info);
1289 EXPECT_TRUE(ret);
1290 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1291 EXPECT_TRUE(ret);
1292 }
1293 }
1294
1295 /**
1296 * @tc.number: UpdateInnerBundleInfo_0004
1297 * @tc.name: UpdateInnerBundleInfo
1298 * @tc.desc: 1. add info to the data manager
1299 * 2. UpdateInnerBundleInfo
1300 */
1301 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0004, Function | SmallTest | Level0)
1302 {
1303 auto dataMgr = GetDataMgr();
1304 EXPECT_NE(dataMgr, nullptr);
1305 if (dataMgr != nullptr) {
1306 BundleInfo bundleInfo;
1307 bundleInfo.name = BUNDLE_NAME;
1308 bundleInfo.applicationInfo.name = APP_NAME;
1309 ApplicationInfo applicationInfo;
1310 applicationInfo.name = BUNDLE_NAME;
1311 applicationInfo.deviceId = DEVICE_ID;
1312 applicationInfo.bundleName = BUNDLE_NAME;
1313 applicationInfo.needAppDetail = false;
1314 InnerBundleInfo info;
1315 info.SetBaseBundleInfo(bundleInfo);
1316 info.SetBaseApplicationInfo(applicationInfo);
1317 bool ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1318 EXPECT_TRUE(ret);
1319 ret = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1320 EXPECT_TRUE(ret);
1321 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
1322 EXPECT_TRUE(ret);
1323 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
1324 EXPECT_TRUE(ret);
1325 ret = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, info, info);
1326 EXPECT_TRUE(ret);
1327 InnerBundleInfo newInfo = info;
1328 applicationInfo.needAppDetail = true;
1329 newInfo.SetBaseApplicationInfo(applicationInfo);
1330 ret = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, newInfo, info);
1331 EXPECT_TRUE(ret);
1332 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1333 EXPECT_TRUE(ret);
1334 }
1335 }
1336
1337 /**
1338 * @tc.number: UpdateInnerBundleInfo_0005
1339 * @tc.name: UpdateInnerBundleInfo
1340 * @tc.desc: 1. add info to the data manager
1341 * 2. UpdateInnerBundleInfo
1342 */
1343 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0005, Function | SmallTest | Level0)
1344 {
1345 auto dataMgr = GetDataMgr();
1346 EXPECT_NE(dataMgr, nullptr);
1347 if (dataMgr != nullptr) {
1348 BundleInfo bundleInfo;
1349 bundleInfo.name = BUNDLE_NAME;
1350 bundleInfo.applicationInfo.name = APP_NAME;
1351 ApplicationInfo applicationInfo;
1352 applicationInfo.name = BUNDLE_NAME;
1353 applicationInfo.deviceId = DEVICE_ID;
1354 applicationInfo.bundleName = BUNDLE_NAME;
1355 applicationInfo.needAppDetail = true;
1356 InnerBundleInfo info;
1357 info.SetBaseBundleInfo(bundleInfo);
1358 info.SetBaseApplicationInfo(applicationInfo);
1359 bool ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1360 EXPECT_TRUE(ret);
1361 ret = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1362 EXPECT_TRUE(ret);
1363 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
1364 EXPECT_TRUE(ret);
1365 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
1366 EXPECT_TRUE(ret);
1367 ret = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, info, info);
1368 EXPECT_TRUE(ret);
1369 InnerBundleInfo newInfo = info;
1370 applicationInfo.needAppDetail = false;
1371 newInfo.SetBaseApplicationInfo(applicationInfo);
1372 ret = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, newInfo, info);
1373 EXPECT_TRUE(ret);
1374 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1375 EXPECT_TRUE(ret);
1376 }
1377 }
1378
1379 /**
1380 * @tc.number: UpdateInnerBundleInfo_0006
1381 * @tc.name: UpdateInnerBundleInfo
1382 * @tc.desc: 1. add info to the data manager
1383 * 2. UpdateInnerBundleInfo
1384 */
1385 HWTEST_F(BmsDataMgrTest, UpdateInnerBundleInfo_0006, Function | SmallTest | Level0)
1386 {
1387 auto dataMgr = GetDataMgr();
1388 EXPECT_NE(dataMgr, nullptr);
1389 if (dataMgr != nullptr) {
1390 BundleInfo bundleInfo;
1391 bundleInfo.name = BUNDLE_NAME;
1392 bundleInfo.applicationInfo.name = APP_NAME;
1393 ApplicationInfo applicationInfo;
1394 applicationInfo.name = BUNDLE_NAME;
1395 applicationInfo.deviceId = DEVICE_ID;
1396 applicationInfo.bundleName = BUNDLE_NAME;
1397 InnerBundleInfo info;
1398 info.SetBaseBundleInfo(bundleInfo);
1399 info.SetBaseApplicationInfo(applicationInfo);
1400 bool ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1401 EXPECT_TRUE(ret);
1402 ret = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1403 EXPECT_TRUE(ret);
1404 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_START);
1405 EXPECT_TRUE(ret);
1406 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UPDATING_SUCCESS);
1407 EXPECT_TRUE(ret);
1408 InnerBundleInfo newInfo = info;
1409 newInfo.baseApplicationInfo_->multiAppMode.multiAppModeType = MultiAppModeType::MULTI_INSTANCE;
1410 newInfo.baseApplicationInfo_->multiAppMode.maxCount = 100;
1411 newInfo.baseApplicationInfo_->multiProjects = true;
1412 ret = dataMgr->UpdateInnerBundleInfo(BUNDLE_NAME, newInfo, info);
1413 EXPECT_TRUE(ret);
1414 EXPECT_EQ(info.baseApplicationInfo_->multiAppMode.multiAppModeType,
1415 newInfo.baseApplicationInfo_->multiAppMode.multiAppModeType);
1416 EXPECT_EQ(info.baseApplicationInfo_->multiAppMode.maxCount,
1417 newInfo.baseApplicationInfo_->multiAppMode.maxCount);
1418 EXPECT_EQ(info.baseApplicationInfo_->multiProjects, newInfo.baseApplicationInfo_->multiProjects);
1419 ret = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1420 EXPECT_TRUE(ret);
1421 }
1422 }
1423
1424 /**
1425 * @tc.number: AddInnerBundleInfo_0001
1426 * @tc.name: AddInnerBundleInfo
1427 * @tc.desc: AddInnerBundleInfo, needAppDetail is true
1428 */
1429 HWTEST_F(BmsDataMgrTest, AddInnerBundleInfo_0001, Function | SmallTest | Level0)
1430 {
1431 InnerBundleInfo info;
1432 BundleInfo bundleInfo;
1433 bundleInfo.name = BUNDLE_NAME;
1434 bundleInfo.applicationInfo.name = APP_NAME;
1435 ApplicationInfo applicationInfo;
1436 applicationInfo.name = BUNDLE_NAME;
1437 applicationInfo.bundleName = BUNDLE_NAME;
1438 applicationInfo.needAppDetail = true;
1439 info.SetBaseBundleInfo(bundleInfo);
1440 info.SetBaseApplicationInfo(applicationInfo);
1441 auto dataMgr = GetDataMgr();
1442 EXPECT_NE(dataMgr, nullptr);
1443 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1444 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1445 EXPECT_TRUE(ret1);
1446 EXPECT_TRUE(ret2);
1447
1448 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1449 }
1450
1451 /**
1452 * @tc.number: AddInnerBundleInfo_0002
1453 * @tc.name: AddInnerBundleInfo
1454 * @tc.desc: AddInnerBundleInfo, needAppDetail is false
1455 */
1456 HWTEST_F(BmsDataMgrTest, AddInnerBundleInfo_0002, Function | SmallTest | Level0)
1457 {
1458 InnerBundleInfo info;
1459 BundleInfo bundleInfo;
1460 bundleInfo.name = BUNDLE_NAME;
1461 bundleInfo.applicationInfo.name = APP_NAME;
1462 ApplicationInfo applicationInfo;
1463 applicationInfo.name = BUNDLE_NAME;
1464 applicationInfo.bundleName = BUNDLE_NAME;
1465 applicationInfo.needAppDetail = false;
1466 info.SetBaseBundleInfo(bundleInfo);
1467 info.SetBaseApplicationInfo(applicationInfo);
1468 auto dataMgr = GetDataMgr();
1469 EXPECT_NE(dataMgr, nullptr);
1470 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1471 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1472 EXPECT_TRUE(ret1);
1473 EXPECT_TRUE(ret2);
1474
1475 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1476 }
1477
1478 /**
1479 * @tc.number: AddInnerBundleInfo_0003
1480 * @tc.name: AddInnerBundleInfo
1481 * @tc.desc: AddInnerBundleInfo, needAppDetail is false
1482 */
1483 HWTEST_F(BmsDataMgrTest, AddInnerBundleInfo_0003, Function | SmallTest | Level0)
1484 {
1485 InnerBundleInfo info;
1486 BundleInfo bundleInfo;
1487 bundleInfo.name = BUNDLE_NAME;
1488 bundleInfo.applicationInfo.name = APP_NAME;
1489 ApplicationInfo applicationInfo;
1490 applicationInfo.name = BUNDLE_NAME;
1491 applicationInfo.bundleName = BUNDLE_NAME;
1492 applicationInfo.needAppDetail = false;
1493 info.SetBaseBundleInfo(bundleInfo);
1494 info.SetBaseApplicationInfo(applicationInfo);
1495 auto dataMgr = GetDataMgr();
1496 EXPECT_NE(dataMgr, nullptr);
1497 bool ret1 = dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::INSTALL_START);
1498 bool ret2 = dataMgr->AddInnerBundleInfo(BUNDLE_NAME, info);
1499 EXPECT_TRUE(ret1);
1500 EXPECT_TRUE(ret2);
1501
1502 dataMgr->UpdateBundleInstallState(BUNDLE_NAME, InstallState::UNINSTALL_START);
1503 }
1504
1505 /**
1506 * @tc.number: GetMatchLauncherAbilityInfos_0001
1507 * @tc.name: GetMatchLauncherAbilityInfos
1508 * @tc.desc: GetMatchLauncherAbilityInfos, needAppDetail is false
1509 */
1510 HWTEST_F(BmsDataMgrTest, GetMatchLauncherAbilityInfos_0001, Function | SmallTest | Level0)
1511 {
1512 InnerBundleInfo innerBundleInfo;
1513 BundleInfo bundleInfo;
1514 bundleInfo.name = BUNDLE_NAME;
1515 ApplicationInfo applicationInfo;
1516 applicationInfo.name = BUNDLE_NAME;
1517 applicationInfo.needAppDetail = false;
1518 innerBundleInfo.SetBaseBundleInfo(bundleInfo);
1519 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1520
1521 BundleUserInfo userInfo;
1522 userInfo.userId = 100;
1523 InnerBundleUserInfo innerBundleUserInfo;
1524 innerBundleUserInfo.bundleUserInfo = userInfo;
1525 innerBundleInfo.AddInnerBundleUserInfo(innerBundleUserInfo);
1526
1527 Skill skill;
1528 skill.actions = {ACTION};
1529 skill.entities = {ENTITY};
1530 std::vector<Skill> skills;
1531 skills.emplace_back(skill);
1532 innerBundleInfo.InsertSkillInfo(BUNDLE_NAME, skills);
1533 AbilityInfo abilityInfo;
1534 abilityInfo.name = BUNDLE_NAME;
1535 abilityInfo.type = AbilityType::PAGE;
1536 innerBundleInfo.InsertAbilitiesInfo(BUNDLE_NAME, abilityInfo);
1537 InnerModuleInfo moduleInfo;
1538 moduleInfo.entryAbilityKey = BUNDLE_NAME;
1539 moduleInfo.isEntry = true;
1540 innerBundleInfo.innerModuleInfos_.try_emplace(BUNDLE_NAME, moduleInfo);
1541
1542 auto dataMgr = GetDataMgr();
1543 EXPECT_NE(dataMgr, nullptr);
1544 OHOS::AAFwk::Want want;
1545 want.SetAction(OHOS::AAFwk::Want::ACTION_HOME);
1546 want.AddEntity(OHOS::AAFwk::Want::ENTITY_HOME);
1547 std::vector<AbilityInfo> abilityInfos;
1548 int64_t installTime = 0;
1549 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1550 EXPECT_FALSE(abilityInfos.empty());
1551
1552 applicationInfo.needAppDetail = true;
1553 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1554 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1555 EXPECT_FALSE(abilityInfos.empty());
1556 }
1557
1558 /**
1559 * @tc.number: GetMatchLauncherAbilityInfos_0002
1560 * @tc.name: GetMatchLauncherAbilityInfos
1561 * @tc.desc: GetMatchLauncherAbilityInfos, needAppDetail is true
1562 */
1563 HWTEST_F(BmsDataMgrTest, GetMatchLauncherAbilityInfos_0002, Function | SmallTest | Level0)
1564 {
1565 InnerBundleInfo innerBundleInfo;
1566 BundleInfo bundleInfo;
1567 bundleInfo.name = BUNDLE_NAME;
1568 ApplicationInfo applicationInfo;
1569 applicationInfo.name = BUNDLE_NAME;
1570 applicationInfo.needAppDetail = false;
1571 innerBundleInfo.SetBaseBundleInfo(bundleInfo);
1572 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1573
1574 BundleUserInfo userInfo;
1575 userInfo.userId = 100;
1576 InnerBundleUserInfo innerBundleUserInfo;
1577 innerBundleUserInfo.bundleUserInfo = userInfo;
1578 innerBundleInfo.AddInnerBundleUserInfo(innerBundleUserInfo);
1579
1580 auto dataMgr = GetDataMgr();
1581 EXPECT_NE(dataMgr, nullptr);
1582 OHOS::AAFwk::Want want;
1583 want.SetAction(OHOS::AAFwk::Want::ACTION_HOME);
1584 want.AddEntity(OHOS::AAFwk::Want::ENTITY_HOME);
1585 std::vector<AbilityInfo> abilityInfos;
1586 int64_t installTime = 0;
1587 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1588 EXPECT_TRUE(abilityInfos.empty());
1589
1590 applicationInfo.needAppDetail = true;
1591 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1592 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1593 EXPECT_TRUE(abilityInfos.empty());
1594
1595 AbilityInfo abilityInfo;
1596 abilityInfo.name = ServiceConstants::APP_DETAIL_ABILITY;
1597 innerBundleInfo.InsertAbilitiesInfo(BUNDLE_NAME, abilityInfo);
1598 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1599 EXPECT_FALSE(abilityInfos.empty());
1600
1601 abilityInfos.clear();
1602 innerBundleInfo.SetIsNewVersion(true);
1603 dataMgr->GetMatchLauncherAbilityInfos(want, innerBundleInfo, abilityInfos, installTime, Constants::ANY_USERID);
1604 EXPECT_FALSE(abilityInfos.empty());
1605 }
1606
1607 /**
1608 * @tc.number: AddAppDetailAbilityInfo_0001
1609 * @tc.name: AddAppDetailAbilityInfo
1610 * @tc.desc: AddAppDetailAbilityInfo, needAppDetail is true
1611 */
1612 HWTEST_F(BmsDataMgrTest, AddAppDetailAbilityInfo_0001, Function | SmallTest | Level0)
1613 {
1614 ApplicationInfo applicationInfo;
1615 applicationInfo.name = BUNDLE_NAME;
1616 applicationInfo.bundleName = BUNDLE_NAME;
1617 applicationInfo.iconId = 1;
1618 InnerBundleInfo innerBundleInfo;
1619 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1620
1621 auto dataMgr = GetDataMgr();
1622 EXPECT_NE(dataMgr, nullptr);
1623 dataMgr->AddAppDetailAbilityInfo(innerBundleInfo);
1624 auto ability = innerBundleInfo.FindAbilityInfo(Constants::EMPTY_STRING,
1625 ServiceConstants::APP_DETAIL_ABILITY, USERID);
1626 if (ability) {
1627 EXPECT_EQ(ability->name, ServiceConstants::APP_DETAIL_ABILITY);
1628 }
1629
1630 InnerModuleInfo innerModuleInfo;
1631 innerModuleInfo.name = BUNDLE_NAME;
1632 innerModuleInfo.moduleName = BUNDLE_NAME;
1633 innerBundleInfo.InsertInnerModuleInfo(BUNDLE_NAME, innerModuleInfo);
1634 applicationInfo.iconId = 0;
1635 innerBundleInfo.SetBaseApplicationInfo(applicationInfo);
1636 innerBundleInfo.SetCurrentModulePackage(BUNDLE_NAME);
1637 innerBundleInfo.SetIsNewVersion(true);
1638 dataMgr->AddAppDetailAbilityInfo(innerBundleInfo);
1639
1640 ability = innerBundleInfo.FindAbilityInfo(BUNDLE_NAME, ServiceConstants::APP_DETAIL_ABILITY, USERID);
1641 if (ability) {
1642 EXPECT_EQ(ability->name, ServiceConstants::APP_DETAIL_ABILITY);
1643 }
1644 }
1645
1646 /**
1647 * @tc.number: ModifyLauncherAbilityInfo_0001
1648 * @tc.name: ModifyLauncherAbilityInfo
1649 * @tc.desc: 1. ModifyLauncherAbilityInfo, labelId is equal 0
1650 * 2. stage mode
1651 */
1652 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0001, Function | SmallTest | Level0)
1653 {
1654 auto dataMgr = GetDataMgr();
1655 EXPECT_NE(dataMgr, nullptr);
1656 if (dataMgr) {
1657 AbilityInfo abilityInfo;
1658 abilityInfo.applicationInfo.label = "$string:label";
1659 abilityInfo.applicationInfo.labelId = 1111;
1660 abilityInfo.label = "";
1661 abilityInfo.labelId = 0;
1662 dataMgr->ModifyLauncherAbilityInfo(true, abilityInfo);
1663 EXPECT_EQ(abilityInfo.label, abilityInfo.applicationInfo.label);
1664 EXPECT_EQ(abilityInfo.labelId, abilityInfo.applicationInfo.labelId);
1665 }
1666 }
1667
1668 /**
1669 * @tc.number: ModifyLauncherAbilityInfo_0002
1670 * @tc.name: ModifyLauncherAbilityInfo
1671 * @tc.desc: 1. ModifyLauncherAbilityInfo, labelId is not equal 0
1672 * 2. stage mode
1673 */
1674 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0002, Function | SmallTest | Level0)
1675 {
1676 auto dataMgr = GetDataMgr();
1677 EXPECT_NE(dataMgr, nullptr);
1678 if (dataMgr) {
1679 AbilityInfo abilityInfo;
1680 abilityInfo.applicationInfo.label = "$string:label";
1681 abilityInfo.applicationInfo.labelId = 1111;
1682 abilityInfo.label = "#string:aaa";
1683 abilityInfo.labelId = 2222;
1684 dataMgr->ModifyLauncherAbilityInfo(true, abilityInfo);
1685 EXPECT_NE(abilityInfo.label, abilityInfo.applicationInfo.label);
1686 EXPECT_NE(abilityInfo.labelId, abilityInfo.applicationInfo.labelId);
1687 }
1688 }
1689
1690 /**
1691 * @tc.number: ModifyLauncherAbilityInfo_0003
1692 * @tc.name: ModifyLauncherAbilityInfo
1693 * @tc.desc: 1. ModifyLauncherAbilityInfo, labelId is equal 0
1694 * 2. FA mode
1695 */
1696 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0003, Function | SmallTest | Level0)
1697 {
1698 auto dataMgr = GetDataMgr();
1699 EXPECT_NE(dataMgr, nullptr);
1700 if (dataMgr) {
1701 AbilityInfo abilityInfo;
1702 abilityInfo.bundleName = "test";
1703 abilityInfo.applicationInfo.label = "$string:label";
1704 abilityInfo.applicationInfo.labelId = 1111;
1705 abilityInfo.label = "";
1706 abilityInfo.labelId = 0;
1707 dataMgr->ModifyLauncherAbilityInfo(false, abilityInfo);
1708 EXPECT_EQ(abilityInfo.applicationInfo.label, abilityInfo.bundleName);
1709 EXPECT_EQ(abilityInfo.label, abilityInfo.bundleName);
1710 }
1711 }
1712
1713 /**
1714 * @tc.number: ModifyLauncherAbilityInfo_0004
1715 * @tc.name: ModifyLauncherAbilityInfo
1716 * @tc.desc: 1. ModifyLauncherAbilityInfo, labelId is not equal 0
1717 * 2. FA mode
1718 */
1719 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0004, Function | SmallTest | Level0)
1720 {
1721 auto dataMgr = GetDataMgr();
1722 EXPECT_NE(dataMgr, nullptr);
1723 if (dataMgr) {
1724 AbilityInfo abilityInfo;
1725 abilityInfo.applicationInfo.label = "$string:label";
1726 abilityInfo.applicationInfo.labelId = 1111;
1727 abilityInfo.label = "#string:aaa";
1728 abilityInfo.labelId = 2222;
1729 dataMgr->ModifyLauncherAbilityInfo(false, abilityInfo);
1730 EXPECT_NE(abilityInfo.label, abilityInfo.applicationInfo.label);
1731 EXPECT_NE(abilityInfo.labelId, abilityInfo.applicationInfo.labelId);
1732 }
1733 }
1734
1735 /**
1736 * @tc.number: ModifyLauncherAbilityInfo_0005
1737 * @tc.name: ModifyLauncherAbilityInfo
1738 * @tc.desc: 1. ModifyLauncherAbilityInfo, iconId is equal 0
1739 * 2. stage mode
1740 */
1741 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0005, Function | SmallTest | Level0)
1742 {
1743 auto dataMgr = GetDataMgr();
1744 EXPECT_NE(dataMgr, nullptr);
1745 if (dataMgr) {
1746 AbilityInfo abilityInfo;
1747 abilityInfo.iconId = 0;
1748 abilityInfo.applicationInfo.iconId = 1111;
1749
1750 dataMgr->ModifyLauncherAbilityInfo(true, abilityInfo);
1751 EXPECT_EQ(abilityInfo.iconId, abilityInfo.applicationInfo.iconId);
1752 }
1753 }
1754
1755 /**
1756 * @tc.number: ModifyLauncherAbilityInfo_0006
1757 * @tc.name: ModifyLauncherAbilityInfo
1758 * @tc.desc: 1. ModifyLauncherAbilityInfo, iconId is not equal 0
1759 * 2. stage mode
1760 */
1761 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0006, Function | SmallTest | Level0)
1762 {
1763 auto dataMgr = GetDataMgr();
1764 EXPECT_NE(dataMgr, nullptr);
1765 if (dataMgr) {
1766 AbilityInfo abilityInfo;
1767 abilityInfo.iconId = 2222;
1768 dataMgr->ModifyLauncherAbilityInfo(true, abilityInfo);
1769 EXPECT_EQ(abilityInfo.iconId, abilityInfo.iconId);
1770 }
1771 }
1772
1773 /**
1774 * @tc.number: ModifyLauncherAbilityInfo_0007
1775 * @tc.name: ModifyLauncherAbilityInfo
1776 * @tc.desc: 1. ModifyLauncherAbilityInfo, iconId is equal 0
1777 * 2. FA mode
1778 */
1779 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0007, Function | SmallTest | Level0)
1780 {
1781 auto dataMgr = GetDataMgr();
1782 EXPECT_NE(dataMgr, nullptr);
1783 if (dataMgr) {
1784 AbilityInfo abilityInfo;
1785 abilityInfo.iconId = 0;
1786
1787 ApplicationInfo applicationInfo;
1788 applicationInfo.iconId = 222;
1789 abilityInfo.applicationInfo = applicationInfo;
1790
1791 dataMgr->ModifyLauncherAbilityInfo(false, abilityInfo);
1792 EXPECT_EQ(abilityInfo.iconId, applicationInfo.iconId);
1793 }
1794 }
1795
1796 /**
1797 * @tc.number: ModifyLauncherAbilityInfo_0008
1798 * @tc.name: ModifyLauncherAbilityInfo
1799 * @tc.desc: 1. ModifyLauncherAbilityInfo, iconId is not equal 0
1800 * 2. FA mode
1801 */
1802 HWTEST_F(BmsDataMgrTest, ModifyLauncherAbilityInfo_0008, Function | SmallTest | Level0)
1803 {
1804 auto dataMgr = GetDataMgr();
1805 EXPECT_NE(dataMgr, nullptr);
1806 if (dataMgr) {
1807 AbilityInfo abilityInfo;
1808 abilityInfo.iconId = 2222;
1809 dataMgr->ModifyLauncherAbilityInfo(false, abilityInfo);
1810 EXPECT_EQ(abilityInfo.iconId, abilityInfo.iconId);
1811 }
1812 }
1813
1814 /**
1815 * @tc.number: GetProxyDataInfos_0001
1816 * @tc.name: GetProxyDataInfos
1817 * @tc.desc: GetProxyDataInfos, return is true
1818 */
1819 HWTEST_F(BmsDataMgrTest, GetProxyDataInfos_0001, Function | SmallTest | Level0)
1820 {
1821 InnerBundleInfo innerBundleInfo;
1822
1823 InnerModuleInfo innerModuleInfo;
1824 innerModuleInfo.moduleName = MODULE_NAME;
1825 innerBundleInfo.InsertInnerModuleInfo(BUNDLE_NAME, innerModuleInfo);
1826 std::vector<ProxyData> proxyDatas;
1827
1828 auto res = innerBundleInfo.GetProxyDataInfos(EMPTY_STRING, proxyDatas);
1829 EXPECT_EQ(res, ERR_OK);
1830 }
1831
1832 /**
1833 * @tc.number: GetProxyDataInfos_0002
1834 * @tc.name: GetProxyDataInfos
1835 * @tc.desc: GetProxyDataInfos, return is ERR_OK
1836 */
1837 HWTEST_F(BmsDataMgrTest, GetProxyDataInfos_0002, Function | SmallTest | Level0)
1838 {
1839 InnerBundleInfo innerBundleInfo;
1840 std::vector<ProxyData> proxyDatas;
1841 auto res = innerBundleInfo.GetProxyDataInfos(EMPTY_STRING, proxyDatas);
1842 EXPECT_EQ(res, ERR_OK);
1843 }
1844
1845 /**
1846 * @tc.number: GetProxyDataInfos_0003
1847 * @tc.name: GetProxyDataInfos
1848 * @tc.desc: GetProxyDataInfos, return is ERR_BUNDLE_MANAGER_MODULE_NOT_EXIST
1849 */
1850 HWTEST_F(BmsDataMgrTest, GetProxyDataInfos_0003, Function | SmallTest | Level0)
1851 {
1852 InnerBundleInfo innerBundleInfo;
1853
1854 InnerModuleInfo innerModuleInfo;
1855 innerModuleInfo.moduleName = MODULE_NAME;
1856 innerBundleInfo.InsertInnerModuleInfo(BUNDLE_NAME, innerModuleInfo);
1857 std::vector<ProxyData> proxyDatas;
1858
1859 auto res = innerBundleInfo.GetProxyDataInfos(BUNDLE_NAME, proxyDatas);
1860 EXPECT_EQ(res, ERR_BUNDLE_MANAGER_MODULE_NOT_EXIST);
1861 }
1862
1863 /**
1864 * @tc.number: GetIsolationMode_0001
1865 * @tc.name: GetIsolationMode
1866 * @tc.desc: GetIsolationMode
1867 */
1868 HWTEST_F(BmsDataMgrTest, GetIsolationMode_0001, Function | SmallTest | Level0)
1869 {
1870 InnerBundleInfo innerBundleInfo;
1871 IsolationMode res = innerBundleInfo.GetIsolationMode("");
1872 EXPECT_EQ(res, IsolationMode::NONISOLATION_FIRST);
1873 }
1874
1875 /**
1876 * @tc.number: GetIsolationMode_0002
1877 * @tc.name: GetIsolationMode
1878 * @tc.desc: GetIsolationMode
1879 */
1880 HWTEST_F(BmsDataMgrTest, GetIsolationMode_0002, Function | SmallTest | Level0)
1881 {
1882 InnerBundleInfo innerBundleInfo;
1883 IsolationMode res = innerBundleInfo.GetIsolationMode(ISOLATION_ONLY);
1884 EXPECT_EQ(res, IsolationMode::ISOLATION_ONLY);
1885 }
1886
1887 /**
1888 * @tc.number: MatchPrivateType_0001
1889 * @tc.name: MatchPrivateType
1890 * @tc.desc: 1. MatchPrivateType
1891 */
1892 HWTEST_F(BmsDataMgrTest, MatchPrivateType_0001, Function | SmallTest | Level0)
1893 {
1894 auto dataMgr = GetDataMgr();
1895 EXPECT_NE(dataMgr, nullptr);
1896 Want want;
1897 want.SetUri("/test/test.book");
1898 std::vector<std::string> supportExtNames;
1899 supportExtNames.emplace_back("book");
1900 std::vector<std::string> supportMimeTypes;
1901 std::vector<std::string> mimeTypes;
1902 MimeTypeMgr::GetMimeTypeByUri(want.GetUriString(), mimeTypes);
1903 bool ret = dataMgr->MatchPrivateType(want, supportExtNames, supportMimeTypes, mimeTypes);
1904 EXPECT_TRUE(ret);
1905 }
1906
1907 /**
1908 * @tc.number: MatchPrivateType_0002
1909 * @tc.name: MatchPrivateType
1910 * @tc.desc: 1. MatchPrivateType
1911 */
1912 HWTEST_F(BmsDataMgrTest, MatchPrivateType_0002, Function | SmallTest | Level0)
1913 {
1914 auto dataMgr = GetDataMgr();
1915 EXPECT_NE(dataMgr, nullptr);
1916 Want want;
1917 want.SetUri("/test/test.book");
1918 std::vector<std::string> supportExtNames;
1919 std::vector<std::string> supportMimeTypes;
1920 std::vector<std::string> mimeTypes;
1921 MimeTypeMgr::GetMimeTypeByUri(want.GetUriString(), mimeTypes);
1922 bool ret = dataMgr->MatchPrivateType(want, supportExtNames, supportMimeTypes, mimeTypes);
1923 EXPECT_FALSE(ret);
1924 }
1925
1926 /**
1927 * @tc.number: MatchPrivateType_0003
1928 * @tc.name: MatchPrivateType
1929 * @tc.desc: 1. MatchPrivateType
1930 */
1931 HWTEST_F(BmsDataMgrTest, MatchPrivateType_0003, Function | SmallTest | Level0)
1932 {
1933 auto dataMgr = GetDataMgr();
1934 EXPECT_NE(dataMgr, nullptr);
1935 Want want;
1936 want.SetUri("/test/test");
1937 std::vector<std::string> supportExtNames;
1938 std::vector<std::string> supportMimeTypes;
1939 std::vector<std::string> mimeTypes;
1940 MimeTypeMgr::GetMimeTypeByUri(want.GetUriString(), mimeTypes);
1941 bool ret = dataMgr->MatchPrivateType(want, supportExtNames, supportMimeTypes, mimeTypes);
1942 EXPECT_FALSE(ret);
1943 }
1944
1945 /**
1946 * @tc.number: MatchPrivateType_0004
1947 * @tc.name: MatchPrivateType
1948 * @tc.desc: 1. MatchPrivateType
1949 */
1950 HWTEST_F(BmsDataMgrTest, MatchPrivateType_0004, Function | SmallTest | Level0)
1951 {
1952 auto dataMgr = GetDataMgr();
1953 EXPECT_NE(dataMgr, nullptr);
1954 Want want;
1955 want.SetUri("/test/test.jpg");
1956 std::vector<std::string> supportExtNames;
1957 std::vector<std::string> supportMimeTypes;
1958 supportMimeTypes.emplace_back("image/jpeg");
1959 std::vector<std::string> mimeTypes;
1960 MimeTypeMgr::GetMimeTypeByUri(want.GetUriString(), mimeTypes);
1961 bool ret = dataMgr->MatchPrivateType(want, supportExtNames, supportMimeTypes, mimeTypes);
1962 EXPECT_TRUE(ret);
1963 }
1964
1965 /**
1966 * @tc.number: MatchShare_0100
1967 * @tc.name: test MatchShare
1968 * @tc.desc: 1.test match share based on want and skill
1969 */
1970 HWTEST_F(BmsDataMgrTest, MatchShare_0100, Function | SmallTest | Level1)
1971 {
1972 auto dataMgr = GetDataMgr();
1973 ASSERT_NE(dataMgr, nullptr);
1974 AAFwk::Want want;
1975 want.SetAction(OHOS::AAFwk::Want::ACTION_HOME);
1976 want.AddEntity(OHOS::AAFwk::Want::ENTITY_HOME);
1977 want.SetElementName("", BUNDLE_NAME, "", MODULE_NAME);
1978 std::vector<Skill> skills;
1979 bool result = dataMgr->MatchShare(want, skills);
1980 EXPECT_EQ(result, false);
1981 want.SetAction(SHARE_ACTION_VALUE);
1982 result = dataMgr->MatchShare(want, skills);
1983 EXPECT_EQ(result, false);
1984 struct Skill skill;
1985 skills.emplace_back(skill);
1986 result = dataMgr->MatchShare(want, skills);
1987 EXPECT_EQ(result, false);
1988 }
1989
1990 /**
1991 * @tc.number: MatchShare_0200
1992 * @tc.name: test MatchShare
1993 * @tc.desc: 1.test match share based on want and skill
1994 */
1995 HWTEST_F(BmsDataMgrTest, MatchShare_0200, Function | SmallTest | Level1)
1996 {
1997 std::vector<Skill> skills = CreateSkillsForMatchShareTest();
1998
1999 std::map<std::string, int32_t> utds1 = {{"general.png", 2}};
2000 EXPECT_EQ(MatchShare(utds1, skills), true);
2001
2002 std::map<std::string, int32_t> utds2 = {{"general.png", 3}};
2003 EXPECT_EQ(MatchShare(utds2, skills), true);
2004
2005 std::map<std::string, int32_t> utds3 = {{"general.png", 4}};
2006 EXPECT_EQ(MatchShare(utds3, skills), false);
2007
2008 std::map<std::string, int32_t> utds4 = {{"general.jpeg", 5}};
2009 EXPECT_EQ(MatchShare(utds4, skills), true);
2010
2011 std::map<std::string, int32_t> utds5 = {{"general.jpeg", 6}};
2012 EXPECT_EQ(MatchShare(utds5, skills), true);
2013
2014 std::map<std::string, int32_t> utds6 = {{"general.jpeg", 7}};
2015 EXPECT_EQ(MatchShare(utds6, skills), false);
2016
2017 std::map<std::string, int32_t> utds7 = {{"general.png", 3}, {"general.image", 2}};
2018 EXPECT_EQ(MatchShare(utds7, skills), true);
2019
2020 std::map<std::string, int32_t> utds8 = {{"general.png", 3}, {"general.image", 3}};
2021 EXPECT_EQ(MatchShare(utds8, skills), true);
2022
2023 std::map<std::string, int32_t> utds9 = {{"general.png", 3}, {"general.image", 4}};
2024 EXPECT_EQ(MatchShare(utds9, skills), false);
2025
2026 std::map<std::string, int32_t> utds10 = {{"general.png", 2}, {"general.image", 4}};
2027 EXPECT_EQ(MatchShare(utds10, skills), true);
2028
2029 std::map<std::string, int32_t> utds11 = {{"general.png", 1}, {"general.image", 6}};
2030 EXPECT_EQ(MatchShare(utds11, skills), false);
2031
2032 std::map<std::string, int32_t> utds12 = {{"general.image", 6}};
2033 EXPECT_EQ(MatchShare(utds12, skills), true);
2034
2035 std::map<std::string, int32_t> utds13 = {{"general.media", 8}};
2036 EXPECT_EQ(MatchShare(utds13, skills), true);
2037
2038 std::map<std::string, int32_t> utds14 = {{"general.media", 9}};
2039 EXPECT_EQ(MatchShare(utds14, skills), true);
2040
2041 std::map<std::string, int32_t> utds15 = {{"general.media", 10}};
2042 EXPECT_EQ(MatchShare(utds15, skills), false);
2043
2044 std::map<std::string, int32_t> utds16 = {{"general.png", 1}, {"general.media", 9}};
2045 EXPECT_EQ(MatchShare(utds16, skills), false);
2046
2047 std::map<std::string, int32_t> utds17 = {{"general.png", 1}, {"general.media", 8}};
2048 EXPECT_EQ(MatchShare(utds17, skills), true);
2049
2050 std::map<std::string, int32_t> utds18 = {{"general.image", 1}, {"general.media", 8}};
2051 EXPECT_EQ(MatchShare(utds18, skills), true);
2052
2053 std::map<std::string, int32_t> utds19 = {{"general.png", 2}, {"general.image", 1}, {"general.media", 7}};
2054 EXPECT_EQ(MatchShare(utds19, skills), false);
2055
2056 std::map<std::string, int32_t> utds20 = {{"general.png", 3}, {"general.image", 3}, {"general.media", 3}};
2057 EXPECT_EQ(MatchShare(utds20, skills), true);
2058
2059 std::map<std::string, int32_t> utds21 = {{"general.png", 1}, {"general.image", 4}, {"general.media", 4}};
2060 EXPECT_EQ(MatchShare(utds21, skills), true);
2061
2062 std::map<std::string, int32_t> utds22 = {{"general.jpeg", 9}};
2063 EXPECT_EQ(MatchShare(utds22, skills), false);
2064
2065 std::map<std::string, int32_t> utds23 = {{"general.text", 3}};
2066 EXPECT_EQ(MatchShare(utds23, skills), false);
2067 }
2068
2069 /**
2070 * @tc.number: MatchUtd_0100
2071 * @tc.name: test MatchUtd
2072 * @tc.desc: 1.test match utd
2073 */
2074 HWTEST_F(BmsDataMgrTest, MatchUtd_0100, Function | SmallTest | Level1)
2075 {
2076 auto dataMgr = GetDataMgr();
2077 ASSERT_NE(dataMgr, nullptr);
2078 struct Skill skill;
2079 std::string utd = "";
2080 int32_t count = 0;
2081 bool result = dataMgr->MatchUtd(skill, utd, count);
2082 EXPECT_EQ(result, false);
2083
2084 SkillUri skillUri;
2085 skillUri.type = "image/*";
2086 skill.uris.emplace_back(skillUri);
2087 result = dataMgr->MatchUtd(skill, utd, count);
2088 EXPECT_EQ(result, false);
2089 }
2090
2091 /**
2092 * @tc.number: MatchUtd_0200
2093 * @tc.name: test MatchUtd
2094 * @tc.desc: 1.test match utd without count
2095 */
2096 HWTEST_F(BmsDataMgrTest, MatchUtd_0200, Function | SmallTest | Level1)
2097 {
2098 auto dataMgr = GetDataMgr();
2099 ASSERT_NE(dataMgr, nullptr);
2100 std::string skillUtd = "";
2101 std::string wantUtd = "";
2102 bool result = dataMgr->MatchUtd(skillUtd, wantUtd);
2103 EXPECT_EQ(result, false);
2104 }
2105
2106 /**
2107 * @tc.number: MatchTypeWithUtd_0100
2108 * @tc.name: test MatchTypeWithUtd
2109 * @tc.desc: 1.test match type with utd
2110 */
2111 HWTEST_F(BmsDataMgrTest, MatchTypeWithUtd_0100, Function | SmallTest | Level1)
2112 {
2113 auto dataMgr = GetDataMgr();
2114 ASSERT_NE(dataMgr, nullptr);
2115 struct Skill skill;
2116 std::string mimeType = "";
2117 std::string wantUtd = "";
2118 bool ret = dataMgr->MatchTypeWithUtd(wantUtd, mimeType);
2119 EXPECT_EQ(ret, false);
2120 }
2121
2122 /**
2123 * @tc.number: FindSkillsContainShareAction_0200
2124 * @tc.name: test FindSkillsContainShareAction
2125 * @tc.desc: 1.test find skills that include sharing action
2126 */
2127 HWTEST_F(BmsDataMgrTest, FindSkillsContainShareAction_0200, Function | SmallTest | Level1)
2128 {
2129 auto dataMgr = GetDataMgr();
2130 ASSERT_NE(dataMgr, nullptr);
2131 std::vector<Skill> skills;
2132 auto result = dataMgr->FindSkillsContainShareAction(skills);
2133 EXPECT_EQ(result.empty(), true);
2134
2135 struct Skill skill;
2136 skill.actions.emplace_back(SHARE_ACTION_VALUE);
2137 skills.emplace_back(skill);
2138 result = dataMgr->FindSkillsContainShareAction(skills);
2139 EXPECT_EQ(result.empty(), false);
2140 }
2141
2142 /**
2143 * @tc.number: LoadDataFromPersistentStorage_0100
2144 * @tc.name: test CompatibleOldBundleStateInKvDb
2145 * @tc.desc: 1.compatible old bundle status in Kvdb
2146 */
2147 HWTEST_F(BmsDataMgrTest, LoadDataFromPersistentStorage_0100, Function | SmallTest | Level1)
2148 {
2149 auto dataMgr = GetDataMgr();
2150 ASSERT_NE(dataMgr, nullptr);
2151 auto ret = dataMgr->LoadDataFromPersistentStorage();
2152 dataMgr->CompatibleOldBundleStateInKvDb();
2153 std::map<std::string, InnerBundleInfo> infos;
2154 InnerBundleInfo innerBundleInfo;
2155 infos.emplace("", innerBundleInfo);
2156 dataMgr->bundleInfos_.swap(infos);
2157 dataMgr->CompatibleOldBundleStateInKvDb();
2158 EXPECT_EQ(ret, true);
2159 }
2160
2161 /**
2162 * @tc.number: GetMatchLauncherAbilityInfosForCloneInfos_0100
2163 * @tc.name: test GetMatchLauncherAbilityInfosForCloneInfos
2164 * @tc.desc: 1.obtain matching launcher ability information for clone information
2165 */
2166 HWTEST_F(BmsDataMgrTest, GetMatchLauncherAbilityInfosForCloneInfos_0100, Function | SmallTest | Level1)
2167 {
2168 auto dataMgr = GetDataMgr();
2169 ASSERT_NE(dataMgr, nullptr);
2170 InnerBundleInfo innerBundleInfo;
2171 AbilityInfo abilityInfo;
2172 abilityInfo.iconId = 0;
2173 ApplicationInfo applicationInfo;
2174 applicationInfo.iconId = 200;
2175 abilityInfo.applicationInfo = applicationInfo;
2176 InnerBundleUserInfo innerBundleUserInfo;
2177 innerBundleUserInfo.bundleName = BUNDLE_NAME;
2178 innerBundleUserInfo.bundleUserInfo.enabled = true;
2179 innerBundleUserInfo.bundleUserInfo.userId = USERID;
2180 std::vector<AbilityInfo> abilityInfos;
2181 dataMgr->GetMatchLauncherAbilityInfosForCloneInfos(innerBundleInfo, abilityInfo, innerBundleUserInfo, abilityInfos);
2182 EXPECT_EQ(abilityInfos.empty(), true);
2183 InnerBundleCloneInfo cloneInfo;
2184 innerBundleUserInfo.cloneInfos.emplace("", cloneInfo);
2185 dataMgr->GetMatchLauncherAbilityInfosForCloneInfos(innerBundleInfo, abilityInfo, innerBundleUserInfo, abilityInfos);
2186 EXPECT_EQ(abilityInfos.empty(), false);
2187 }
2188
2189 /**
2190 * @tc.number: ModifyBundleInfoByCloneInfo_0100
2191 * @tc.name: test ModifyBundleInfoByCloneInfo
2192 * @tc.desc: 1.modify bundle information based on clone information
2193 */
2194 HWTEST_F(BmsDataMgrTest, ModifyBundleInfoByCloneInfo_0100, Function | SmallTest | Level1)
2195 {
2196 auto dataMgr = GetDataMgr();
2197 ASSERT_NE(dataMgr, nullptr);
2198 InnerBundleCloneInfo cloneInfo;
2199 BundleInfo bundleInfo;
2200 dataMgr->ModifyBundleInfoByCloneInfo(cloneInfo, bundleInfo);
2201 bundleInfo.applicationInfo.bundleName = BUNDLE_NAME;
2202 dataMgr->ModifyBundleInfoByCloneInfo(cloneInfo, bundleInfo);
2203 EXPECT_EQ(bundleInfo.uid, cloneInfo.uid);
2204 }
2205
2206 /**
2207 * @tc.number: ModifyApplicationInfoByCloneInfo_0100
2208 * @tc.name: test ModifyApplicationInfoByCloneInfo
2209 * @tc.desc: 1.modify application information based on clone information
2210 */
2211 HWTEST_F(BmsDataMgrTest, ModifyApplicationInfoByCloneInfo_0100, Function | SmallTest | Level1)
2212 {
2213 auto dataMgr = GetDataMgr();
2214 ASSERT_NE(dataMgr, nullptr);
2215 InnerBundleCloneInfo cloneInfo;
2216 ApplicationInfo applicationInfo;
2217 dataMgr->ModifyApplicationInfoByCloneInfo(cloneInfo, applicationInfo);
2218 EXPECT_EQ(applicationInfo.enabled, cloneInfo.enabled);
2219 }
2220
2221 /**
2222 * @tc.number: UpateExtResources_0100
2223 * @tc.name: test UpateExtResources
2224 * @tc.desc: 1.test update external resources
2225 */
2226 HWTEST_F(BmsDataMgrTest, UpateExtResources_0100, Function | SmallTest | Level1)
2227 {
2228 auto dataMgr = GetDataMgr();
2229 ASSERT_NE(dataMgr, nullptr);
2230 std::string bundleName = "";
2231 std::vector<ExtendResourceInfo> extendResourceInfos;
2232 bool ret = dataMgr->UpateExtResources(bundleName, extendResourceInfos);
2233 EXPECT_EQ(ret, false);
2234
2235 std::map<std::string, InnerBundleInfo> infos;
2236 InnerBundleInfo innerBundleInfo;
2237 infos.emplace(BUNDLE_NAME, innerBundleInfo);
2238 dataMgr->bundleInfos_.swap(infos);
2239 ret = dataMgr->UpateExtResources(BUNDLE_NAME, extendResourceInfos);
2240 EXPECT_EQ(ret, true);
2241 }
2242
2243 /**
2244 * @tc.number: RemoveExtResources_0100
2245 * @tc.name: test RemoveExtResources
2246 * @tc.desc: 1.test remove external resources
2247 */
2248 HWTEST_F(BmsDataMgrTest, RemoveExtResources_0100, Function | SmallTest | Level1)
2249 {
2250 auto dataMgr = GetDataMgr();
2251 ASSERT_NE(dataMgr, nullptr);
2252 std::string bundleName = "";
2253 std::vector<std::string> moduleNames;
2254 bool ret = dataMgr->RemoveExtResources(bundleName, moduleNames);
2255 EXPECT_EQ(ret, false);
2256 std::map<std::string, InnerBundleInfo> infos;
2257 InnerBundleInfo innerBundleInfo;
2258 infos.emplace(BUNDLE_NAME, innerBundleInfo);
2259 dataMgr->bundleInfos_.swap(infos);
2260 ret = dataMgr->RemoveExtResources(BUNDLE_NAME, moduleNames);
2261 EXPECT_EQ(ret, true);
2262 }
2263
2264 /**
2265 * @tc.number: IsBundleExist_0100
2266 * @tc.name: test IsBundleExist
2267 * @tc.desc: 1.judge bundle exist
2268 */
2269 HWTEST_F(BmsDataMgrTest, IsBundleExist_0100, Function | SmallTest | Level1)
2270 {
2271 auto dataMgr = GetDataMgr();
2272 ASSERT_NE(dataMgr, nullptr);
2273 std::string bundleName = "";
2274 bool ret = dataMgr->IsBundleExist(bundleName);
2275 EXPECT_EQ(ret, false);
2276
2277 std::map<std::string, InnerBundleInfo> infos;
2278 InnerBundleInfo innerBundleInfo;
2279 infos.emplace(BUNDLE_NAME, innerBundleInfo);
2280 dataMgr->bundleInfos_.swap(infos);
2281 ret = dataMgr->IsBundleExist(BUNDLE_NAME);
2282 EXPECT_EQ(ret, true);
2283 }
2284
2285 /**
2286 * @tc.number: GetAllBundleStats_0100
2287 * @tc.name: test GetAllBundleStats
2288 * @tc.desc: 1.test get all bundle stats
2289 */
2290 HWTEST_F(BmsDataMgrTest, GetAllBundleStats_0100, Function | SmallTest | Level1)
2291 {
2292 auto dataMgr = GetDataMgr();
2293 ASSERT_NE(dataMgr, nullptr);
2294 int32_t userId = 0;
2295 std::vector<int64_t> bundleStats;
2296 bool ret = dataMgr->GetAllBundleStats(userId, bundleStats);
2297 EXPECT_EQ(ret, false);
2298 }
2299
2300 /**
2301 * @tc.number: IsApplicationEnabled_0100
2302 * @tc.name: test IsApplicationEnabled
2303 * @tc.desc: 1.test enable application
2304 */
2305 HWTEST_F(BmsDataMgrTest, IsApplicationEnabled_0100, Function | SmallTest | Level1)
2306 {
2307 auto dataMgr = GetDataMgr();
2308 ASSERT_NE(dataMgr, nullptr);
2309 const std::string bundleName = BUNDLE_NAME;
2310 int32_t appIndex = 1;
2311 bool isEnabled = false;
2312 bool ret = dataMgr->IsApplicationEnabled(bundleName, appIndex, isEnabled);
2313 EXPECT_EQ(ret, true);
2314 }
2315
2316 /**
2317 * @tc.number: ImplicitQueryAllExtensionInfos_0100
2318 * @tc.name: test ImplicitQueryAllExtensionInfos
2319 * @tc.desc: 1.test implicit query of all extended information
2320 */
2321 HWTEST_F(BmsDataMgrTest, ImplicitQueryAllExtensionInfos_0100, Function | SmallTest | Level1)
2322 {
2323 auto dataMgr = GetDataMgr();
2324 ASSERT_NE(dataMgr, nullptr);
2325 uint32_t flags = 0;
2326 int32_t userId = 0;
2327 std::vector<ExtensionAbilityInfo> infos;
2328 int32_t appIndex = 0;
2329 ErrCode ret = dataMgr->ImplicitQueryAllExtensionInfos(flags, userId, infos, appIndex);
2330 EXPECT_EQ(ret, ERR_OK);
2331 appIndex = -1;
2332 ret = dataMgr->ImplicitQueryAllExtensionInfos(flags, userId, infos, appIndex);
2333 EXPECT_EQ(ret, ERR_OK);
2334 }
2335
2336 /**
2337 * @tc.number: UpateCurDynamicIconModule_0100
2338 * @tc.name: test UpateCurDynamicIconModule
2339 * @tc.desc: 1.test update dynamic icon module
2340 */
2341 HWTEST_F(BmsDataMgrTest, UpateCurDynamicIconModule_0100, Function | SmallTest | Level1)
2342 {
2343 auto dataMgr = GetDataMgr();
2344 ASSERT_NE(dataMgr, nullptr);
2345 std::string bundleName = "";
2346 std::string moduleName = MODULE_NAME;
2347 bool ret = dataMgr->UpateCurDynamicIconModule(bundleName, moduleName);
2348 EXPECT_EQ(ret, false);
2349 ret = dataMgr->UpateCurDynamicIconModule(BUNDLE_NAME, moduleName);
2350 EXPECT_EQ(ret, false);
2351 std::map<std::string, InnerBundleInfo> infos;
2352 InnerBundleInfo innerBundleInfo;
2353 infos.emplace(BUNDLE_NAME, innerBundleInfo);
2354 dataMgr->bundleInfos_.swap(infos);
2355 ret = dataMgr->UpateCurDynamicIconModule(BUNDLE_NAME, moduleName);
2356 EXPECT_EQ(ret, true);
2357 }
2358
2359 /**
2360 * @tc.number: AddDesktopShortcutInfo_0001
2361 * @tc.name: AddDesktopShortcutInfo
2362 * @tc.desc: 1. system run normally
2363 * 2. enter if (rdbDataManager_ == nullptr)
2364 */
2365 HWTEST_F(BmsDataMgrTest, AddDesktopShortcutInfo_0001, Function | SmallTest | Level1)
2366 {
2367 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2368 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2369 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2370 bool isIdIllegal = false;
2371
2372 bool ret = shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2373 EXPECT_TRUE(ret);
2374
2375 ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2376 EXPECT_TRUE(ret);
2377
2378 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2379 ret = shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2380 EXPECT_FALSE(ret);
2381 }
2382
2383 /**
2384 * @tc.number: AddDesktopShortcutInfo_0002
2385 * @tc.name: AddDesktopShortcutInfo
2386 * @tc.desc: 1. system run normally
2387 * 2. enter if (rdbDataManager_ == nullptr)
2388 */
2389 HWTEST_F(BmsDataMgrTest, AddDesktopShortcutInfo_0002, Function | MediumTest | Level1)
2390 {
2391 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2392 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2393 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2394 bool isIdIllegal = false;
2395
2396 bool ret = shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2397 EXPECT_TRUE(ret);
2398
2399 ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2400 EXPECT_TRUE(ret);
2401
2402 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2403 ret = shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2404 EXPECT_FALSE(ret);
2405 }
2406
2407 /**
2408 * @tc.number: DeleteDesktopShortcutInfo_0001
2409 * @tc.name: DeleteDesktopShortcutInfo
2410 * @tc.desc: 1. system run normally
2411 * 2. enter if (rdbDataManager_ == nullptr)
2412 */
2413 HWTEST_F(BmsDataMgrTest, DeleteDesktopShortcutInfo_0001, Function | SmallTest | Level1)
2414 {
2415 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2416 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2417 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2418 bool isIdIllegal = false;
2419
2420 shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2421
2422 bool ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2423 EXPECT_TRUE(ret);
2424
2425 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2426
2427 ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2428 EXPECT_FALSE(ret);
2429
2430 shortcutDataStorageRdb = nullptr;
2431 }
2432
2433 /**
2434 * @tc.number: DeleteDesktopShortcutInfo_0002
2435 * @tc.name: DeleteDesktopShortcutInfo
2436 * @tc.desc: 1. system run normally
2437 * 2. enter if (rdbDataManager_ == nullptr)
2438 */
2439 HWTEST_F(BmsDataMgrTest, DeleteDesktopShortcutInfo_0002, Function | MediumTest | Level1)
2440 {
2441 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2442 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2443 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2444 bool isIdIllegal = false;
2445 shortcutDataStorageRdb->AddDesktopShortcutInfo(shortcutInfo, USERID, isIdIllegal);
2446
2447 bool ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2448 EXPECT_TRUE(ret);
2449
2450 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2451
2452 ret = shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2453 EXPECT_FALSE(ret);
2454
2455 shortcutDataStorageRdb = nullptr;
2456 }
2457
2458 /**
2459 * @tc.number: GetAllDesktopShortcutInfo_0001
2460 * @tc.name: GetAllDesktopShortcutInfo
2461 * @tc.desc: 1. enter if (!BundlePermissionMgr::IsSystemApp())
2462 * 2. system run normally
2463 * 3. enter if (!rdbDataManager_->QueryAllData(datas))
2464 */
2465 HWTEST_F(BmsDataMgrTest, GetAllDesktopShortcutInfo_0001, Function | SmallTest | Level1)
2466 {
2467 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2468 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2469 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2470 std::vector<ShortcutInfo> vecShortcutInfo;
2471 vecShortcutInfo.push_back(shortcutInfo);
2472 shortcutDataStorageRdb->rdbDataManager_->rdbStore_ = nullptr;
2473
2474 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2475 EXPECT_NE(shortcutDataStorageRdb->rdbDataManager_, nullptr);
2476
2477 shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2478
2479 vecShortcutInfo.clear();
2480 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2481 EXPECT_TRUE(vecShortcutInfo.empty());
2482
2483 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2484 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2485 EXPECT_EQ(shortcutDataStorageRdb->rdbDataManager_, nullptr);
2486
2487 shortcutDataStorageRdb = nullptr;
2488 }
2489
2490 /**
2491 * @tc.number: GetAllDesktopShortcutInfo_0002
2492 * @tc.name: GetAllDesktopShortcutInfo
2493 * @tc.desc: 1. enter if (!BundlePermissionMgr::IsSystemApp())
2494 * 2. system run normally
2495 * 3. enter if (!rdbDataManager_->QueryAllData(datas))
2496 */
2497 HWTEST_F(BmsDataMgrTest, GetAllDesktopShortcutInfo_0002, Function | MediumTest | Level1)
2498 {
2499 std::shared_ptr<ShortcutDataStorageRdb> shortcutDataStorageRdb = std::make_shared<ShortcutDataStorageRdb>();
2500 ASSERT_NE(shortcutDataStorageRdb, nullptr);
2501 ShortcutInfo shortcutInfo = BmsDataMgrTest::InitShortcutInfo();
2502 std::vector<ShortcutInfo> vecShortcutInfo;
2503 vecShortcutInfo.push_back(shortcutInfo);
2504 shortcutDataStorageRdb->rdbDataManager_->rdbStore_ = nullptr;
2505
2506 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2507 EXPECT_NE(shortcutDataStorageRdb->rdbDataManager_, nullptr);
2508
2509 shortcutDataStorageRdb->DeleteDesktopShortcutInfo(shortcutInfo, USERID);
2510
2511 vecShortcutInfo.clear();
2512 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2513 EXPECT_TRUE(vecShortcutInfo.empty());
2514
2515 shortcutDataStorageRdb->rdbDataManager_ = nullptr;
2516 shortcutDataStorageRdb->GetAllDesktopShortcutInfo(USERID, vecShortcutInfo);
2517 EXPECT_EQ(shortcutDataStorageRdb->rdbDataManager_, nullptr);
2518
2519 shortcutDataStorageRdb = nullptr;
2520 }
2521
2522 HWTEST_F(BmsDataMgrTest, GetOneExtensionInfosByExtensionTypeName_0100, Function | SmallTest | Level1)
2523 {
2524 auto dataMgr = GetDataMgr();
2525 ASSERT_NE(dataMgr, nullptr);
2526 uint32_t flags = 0;
2527 int32_t userId = 0;
2528 InnerBundleInfo info;
2529 std::vector<ExtensionAbilityInfo> infos;
2530 int32_t appIndex = 0;
2531 std::string typeName = "";
2532 dataMgr->GetOneExtensionInfosByExtensionTypeName(typeName, flags, userId, info, infos, appIndex);
2533 EXPECT_EQ(infos.empty(), true);
2534 ExtensionAbilityInfo extensionAbilityInfo;
2535 info.InsertExtensionInfo("", extensionAbilityInfo);
2536 dataMgr->GetOneExtensionInfosByExtensionTypeName(typeName, flags, userId, info, infos, appIndex);
2537 EXPECT_EQ(infos.empty(), false);
2538 flags = 1;
2539 dataMgr->GetOneExtensionInfosByExtensionTypeName(typeName, flags, userId, info, infos, appIndex);
2540 EXPECT_EQ(infos.empty(), false);
2541 }
2542 } // OHOS