• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021 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
16import app from '@system.app'
17import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
18import demo from '@ohos.bundle'
19import account from '@ohos.account.osAccount'
20
21const ERROR = "error.hap"
22const NAME1 = "com.example.myapplication1"
23const NAME2 = "com.example.myapplication2"
24const NAME3 = "com.example.myapplication4"
25const NAME4 = "com.example.myapplication5"
26const NAME5 = "com.example.myapplication6"
27const VERSIONCODE1 = 1
28const OBJECT = "object"
29const DIR1 = "/data/app/el1/bundle/public/com.example.myapplication1/com.example.myapplication1"
30const DIR2 = "/data/app/el1/bundle/public/com.example.myapplication2/com.example.myapplication2"
31const DIR3 = "/data/app/el1/bundle/public/com.example.myapplication2/com.example.myapplication1"
32const DESCRIPTION = "$string:mainability_description"
33const APPLICATION_DESCRIPTION = "$string:entry_description"
34const FLAGONE = "1"
35const FLAGTWO = "2"
36let userId = 0;
37
38export default function ActsBundleManagerTest() {
39describe('ActsBundleManagerTest', function () {
40
41    beforeAll(async function (done) {
42        await account.getAccountManager().getOsAccountLocalIdFromProcess().then(account => {
43            console.info("getOsAccountLocalIdFromProcess userid  ==========" + account);
44            userId = account;
45            done();
46        }).catch(err => {
47            console.info("getOsAccountLocalIdFromProcess err ==========" + JSON.stringify(err));
48            done();
49        })
50    });
51
52    /**
53     * @tc.number Sub_Bms_Framework_Query_AppInfo_1960
54     * @tc.name testGetBundleInfoReqPermissionPromise
55     * @tc.desc Test getBundleInfo interfaces with one hap.(by promise)
56     */
57    it('testGetBundleInfoReqPermissionPromise', 0, async function (done) {
58        let datainfo = await demo.getBundleInfo(NAME1,
59            demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES | demo.BundleFlag.GET_BUNDLE_WITH_REQUESTED_PERMISSION);
60        expect(datainfo.name).assertEqual(NAME1);
61        expect(datainfo.vendor).assertEqual("example");
62        expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
63        expect(datainfo.versionName).assertEqual("1.0");
64        expect(datainfo.entryModuleName).assertEqual("entry");
65        expect(datainfo.compatibleVersion).assertEqual(12);
66        expect(datainfo.targetVersion).assertEqual(12);
67        expect(datainfo.uid).assertLarger(0);
68        expect(datainfo.appId).assertContain(NAME1);
69        expect(datainfo.type).assertEqual("");
70        expect(datainfo.cpuAbi).assertEqual("");
71        expect(datainfo.appInfo.name).assertEqual(NAME1);
72        expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
73        expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
74        expect(datainfo.appInfo.icon).assertEqual("$media:icon");
75        expect(datainfo.appInfo.iconId >= 0).assertTrue();
76        expect(datainfo.appInfo.label).assertEqual("$string:app_name");
77        expect(datainfo.appInfo.labelId >= 0).assertTrue();
78        expect(datainfo.appInfo.systemApp).assertEqual(false);
79        expect(datainfo.appInfo.supportedModes).assertEqual(0);
80        expect(datainfo.installTime).assertLarger(0);
81        expect(datainfo.updateTime).assertLarger(0);
82        expect(datainfo.reqPermissions[0]).assertEqual("com.permission.PERMISSION_A");
83        expect(datainfo.reqPermissionDetails[0].name).assertEqual("com.permission.PERMISSION_A");
84        expect(datainfo.reqPermissionDetails[0].reason).assertEqual("Need PERMISSION_A");
85        expect(datainfo.reqPermissionDetails[0].usedScene.abilities[0]).assertEqual(NAME1 + ".MainAbility");
86        expect(datainfo.reqPermissionDetails[0].usedScene.when).assertEqual("always");
87        expect(datainfo.compatibleVersion).assertEqual(12);
88        expect(datainfo.targetVersion).assertEqual(12);
89        expect(datainfo.isCompressNativeLibs).assertEqual(true);
90        for (let s = 0; s < datainfo.hapModuleInfos.length; s++) {
91            expect(datainfo.hapModuleInfos[s].name).assertEqual("com.example.myapplication1.MyApplication1");
92            expect(datainfo.hapModuleInfos[s].moduleName).assertEqual("entry");
93        }
94        expect(datainfo.entryModuleName).assertEqual("entry");
95        expect(datainfo.isSilentInstallation.length).assertEqual(0);
96        expect(datainfo.minCompatibleVersionCode).assertEqual(1);
97        expect(datainfo.entryInstallationFree).assertEqual(false);
98        for (let j = 0; j < datainfo.appInfo.moduleInfos.length; j++) {
99            expect(datainfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
100            expect(datainfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
101        }
102        expect(datainfo.appInfo.enabled).assertEqual(true);
103        done();
104    })
105
106    /**
107     * @tc.number Sub_Bms_Framework_Query_AppInfo_2060
108     * @tc.name testGetBundeInfoReqPermissionCallback
109     * @tc.desc Test getBundleInfo interfaces with one hap.(by callback)
110     */
111    it('testGetBundeInfoReqPermissionCallback', 0, async function (done) {
112        await demo.getBundleInfo(NAME1,
113            demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES | demo.BundleFlag.GET_BUNDLE_WITH_REQUESTED_PERMISSION,
114            OnReceiveEvent);
115        function OnReceiveEvent(err, datainfo) {
116            checkBundleInfo0200(datainfo)
117            done();
118        }
119    })
120
121    function checkBundleInfo0200(datainfo) {
122        console.info("testGetBundeInfoReqPermissionCallback dataInfo ====" + datainfo);
123        expect(datainfo.name).assertEqual(NAME1);
124        expect(datainfo.vendor).assertEqual("example");
125        expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
126        expect(datainfo.versionName).assertEqual("1.0");
127        expect(datainfo.entryModuleName).assertEqual("entry");
128        expect(datainfo.compatibleVersion).assertEqual(12);
129        expect(datainfo.targetVersion).assertEqual(12);
130        expect(datainfo.uid).assertLarger(0);
131        expect(datainfo.appId).assertContain(NAME1);
132        expect(datainfo.type).assertEqual("");
133        expect(datainfo.cpuAbi).assertEqual("");
134        expect(datainfo.appInfo.name).assertEqual(NAME1);
135        expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
136        expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
137        expect(datainfo.appInfo.icon).assertEqual("$media:icon");
138        expect(datainfo.appInfo.iconId >= 0).assertTrue();
139        expect(datainfo.appInfo.label).assertEqual("$string:app_name");
140        expect(datainfo.appInfo.labelId >= 0).assertTrue();
141        expect(datainfo.appInfo.systemApp).assertEqual(false);
142        expect(datainfo.appInfo.supportedModes).assertEqual(0);
143        expect(datainfo.installTime).assertLarger(0);
144        expect(datainfo.updateTime).assertLarger(0);
145        expect(datainfo.reqPermissions[0]).assertEqual("com.permission.PERMISSION_A");
146        expect(datainfo.reqPermissionDetails[0].name).assertEqual("com.permission.PERMISSION_A");
147        expect(datainfo.reqPermissionDetails[0].reason).assertEqual("Need PERMISSION_A");
148        expect(datainfo.reqPermissionDetails[0].usedScene.abilities[0]).assertEqual(NAME1 + ".MainAbility");
149        expect(datainfo.reqPermissionDetails[0].usedScene.when).assertEqual("always");
150        expect(datainfo.compatibleVersion).assertEqual(12);
151        expect(datainfo.targetVersion).assertEqual(12);
152        expect(datainfo.isCompressNativeLibs).assertEqual(true);
153        for (let s = 0; s < datainfo.hapModuleInfos.length; s++) {
154            expect(datainfo.hapModuleInfos[s].name).assertEqual("com.example.myapplication1.MyApplication1");
155            expect(datainfo.hapModuleInfos[s].moduleName).assertEqual("entry");
156        }
157        expect(datainfo.entryModuleName).assertEqual("entry");
158        expect(datainfo.isSilentInstallation.length).assertEqual(0);
159        expect(datainfo.minCompatibleVersionCode).assertEqual(1);
160        expect(datainfo.entryInstallationFree).assertEqual(false);
161        for (let j = 0; j < datainfo.appInfo.moduleInfos.length; j++) {
162            expect(datainfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
163            expect(datainfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
164        }
165        expect(datainfo.appInfo.enabled).assertEqual(true);
166    }
167
168    /**
169     * @tc.number Sub_Bms_Framework_Query_AppInfo_1980
170     * @tc.name testGetBundleInfoMultiHapPromise
171     * @tc.desc Test getBundleInfo interfaces with two haps.(by promise)
172     */
173    it('testGetBundleInfoMultiHapPromise', 0, async function (done) {
174        let datainfo = await demo.getBundleInfo(NAME2, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
175        console.info("testGetBundleInfoMultiHapPromise dataInfo ====" + datainfo);
176        expect(datainfo.name).assertEqual(NAME2);
177        expect(datainfo.vendor).assertEqual("example");
178        expect(datainfo.versionCode).assertEqual(1);
179        expect(datainfo.versionName).assertLarger(0);
180        expect(datainfo.entryModuleName).assertEqual("entry");
181        expect(datainfo.appInfo.name).assertEqual(NAME2);
182        expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
183        expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
184        expect(datainfo.appInfo.icon).assertEqual("$media:icon");
185        expect(datainfo.appInfo.iconId >= 0).assertTrue();
186        expect(datainfo.appInfo.label).assertEqual("$string:app_name");
187        expect(datainfo.appInfo.labelId >= 0).assertTrue();
188        expect(datainfo.appInfo.systemApp).assertEqual(false);
189        done();
190    })
191
192    /**
193     * @tc.number Sub_Bms_Framework_Query_AppInfo_2080
194     * @tc.name testGetBundleInfoMultiHapCallback
195     * @tc.desc Test getBundleInfo interfaces with two haps.(by callback)
196     */
197    it('testGetBundleInfoMultiHapCallback', 0, async function (done) {
198        await demo.getBundleInfo(NAME2, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, OnReceiveEvent);
199        function OnReceiveEvent(err, datainfo) {
200            console.info("testGetBundleInfoMultiHapCallback dataInfo ====" + datainfo);
201            expect(datainfo.name).assertEqual(NAME2);
202            expect(datainfo.vendor).assertEqual("example");
203            expect(datainfo.versionCode).assertEqual(1);
204            expect(datainfo.versionName).assertLarger(0);
205            expect(datainfo.entryModuleName).assertEqual("entry");
206            expect(datainfo.appInfo.name).assertEqual(NAME2);
207            expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
208            expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
209            expect(datainfo.appInfo.icon).assertEqual("$media:icon");
210            expect(datainfo.appInfo.iconId >= 0).assertTrue();
211            expect(datainfo.appInfo.label).assertEqual("$string:app_name");
212            expect(datainfo.appInfo.labelId >= 0).assertTrue();
213            expect(datainfo.appInfo.systemApp).assertEqual(false);
214            done();
215        }
216    })
217
218    /**
219      * @tc.number Sub_Bms_Framework_Query_AppInfo_2000
220      * @tc.name testGetBundleInfoPromise
221      * @tc.desc Test getBundleInfo interfaces with one hap. (by promise)
222      */
223    it('testGetBundleInfoPromise', 0, async function (done) {
224        let datainfo = await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
225        console.info("testGetBundleInfoPromise dataInfo ====" + datainfo);
226        expect(datainfo.name).assertEqual(NAME1);
227        expect(datainfo.vendor).assertEqual("example");
228        expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
229        expect(datainfo.versionName).assertEqual("1.0");
230        expect(datainfo.type).assertEqual("");
231        expect(datainfo.cpuAbi).assertEqual("");
232        expect(datainfo.compatibleVersion).assertEqual(12);
233        expect(datainfo.targetVersion).assertEqual(12);
234        expect(datainfo.installTime).assertLarger(0);
235        expect(datainfo.updateTime).assertLarger(0);
236        expect(datainfo.uid).assertLarger(0);
237        expect(datainfo.entryModuleName).assertEqual("entry");
238        expect(datainfo.minCompatibleVersionCode).assertEqual(1);
239        expect(datainfo.entryInstallationFree).assertEqual(false);
240        expect(datainfo.reqPermissions.length).assertEqual(0);
241        expect(datainfo.reqPermissionStates.length).assertEqual(0);
242        expect(datainfo.reqPermissionDetails.length).assertEqual(0);
243        expect(datainfo.appInfo.name).assertEqual(NAME1);
244        expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
245        expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
246        expect(datainfo.appInfo.icon).assertEqual("$media:icon");
247        expect(datainfo.appInfo.iconId >= 0).assertTrue();
248        expect(datainfo.appInfo.label).assertEqual("$string:app_name");
249        expect(datainfo.appInfo.labelId >= 0).assertTrue();
250        expect(datainfo.appInfo.systemApp).assertEqual(false);
251        expect(datainfo.appInfo.supportedModes).assertEqual(0);
252        for (let j = 0; j < datainfo.appInfo.moduleInfos.length; j++) {
253            expect(datainfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
254            expect(datainfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
255        }
256        expect(datainfo.appInfo.enabled).assertEqual(true);
257        done();
258    })
259
260    /**
261     * @tc.number Sub_Bms_Framework_Query_AppInfo_2100
262     * @tc.name testGetBundleInfoCallback
263     * @tc.desc Test getBundleInfo interfaces with one hap. (by callback)
264     */
265    it('testGetBundleInfoCallback', 0, async function (done) {
266        await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES |
267            demo.BundleFlag.GET_ABILITY_INFO_WITH_DISABLE, OnReceiveEvent);
268        function OnReceiveEvent(err, datainfo) {
269            console.info("testGetBundleInfoCallback dataInfo ====" + datainfo);
270            expect(datainfo.name).assertEqual(NAME1);
271            expect(datainfo.vendor).assertEqual("example");
272            expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
273            expect(datainfo.versionName).assertEqual("1.0");
274            expect(datainfo.type).assertEqual("");
275            expect(datainfo.cpuAbi).assertEqual("");
276            expect(datainfo.compatibleVersion).assertEqual(12);
277            expect(datainfo.targetVersion).assertEqual(12);
278            expect(datainfo.installTime).assertLarger(0);
279            expect(datainfo.updateTime).assertLarger(0);
280            expect(datainfo.uid).assertLarger(0);
281            expect(datainfo.entryModuleName).assertEqual("entry");
282            expect(datainfo.minCompatibleVersionCode).assertEqual(1);
283            expect(datainfo.entryInstallationFree).assertEqual(false);
284            expect(datainfo.reqPermissions.length).assertEqual(0);
285            expect(datainfo.reqPermissionStates.length).assertEqual(0);
286            expect(datainfo.reqPermissionDetails.length).assertEqual(0);
287            expect(datainfo.appInfo.name).assertEqual(NAME1);
288            expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
289            expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
290            expect(datainfo.appInfo.icon).assertEqual("$media:icon");
291            expect(datainfo.appInfo.iconId >= 0).assertTrue();
292            expect(datainfo.appInfo.label).assertEqual("$string:app_name");
293            expect(datainfo.appInfo.labelId >= 0).assertTrue();
294            expect(datainfo.appInfo.systemApp).assertEqual(false);
295            expect(datainfo.appInfo.supportedModes).assertEqual(0);
296            for (let j = 0; j < datainfo.appInfo.moduleInfos.length; j++) {
297                expect(datainfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
298                expect(datainfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
299            }
300            expect(datainfo.appInfo.enabled).assertEqual(true);
301            done();
302        }
303    })
304
305    /**
306    * @tc.number Sub_Bms_Framework_Query_AppInfo_2020
307    * @tc.name testGetBundleInfoNotExistPromise
308    * @tc.desc Test getBundleInfo interfaces with error hap. (by promise)
309    */
310    it('testGetBundleInfoNotExistPromise', 0, async function (done) {
311        await demo.getBundleInfo('error', demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES).then(datainfo => {
312            console.info("testGetBundleInfoNotExistPromise success:" + JSON.stringify(datainfo));
313            expect(datainfo).assertFail();
314            done();
315        }).catch(err => {
316            console.info("testGetBundleInfoNotExistPromise err:" + JSON.stringify(err));
317            expect(err).assertEqual(1);
318            done();
319        });
320    })
321
322    /**
323    * @tc.number Sub_Bms_Framework_Query_AppInfo_2120
324    * @tc.name testGetBundleInfoNotExistCallback
325    * @tc.desc Test getBundleInfo interfaces with error hap. (by callback)
326    */
327    it('testGetBundleInfoNotExistCallback', 0, async function (done) {
328        await demo.getBundleInfo('error', demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, OnReceiveEvent);
329        function OnReceiveEvent(err, datainfo) {
330            if (err) {
331                console.info("testGetBundleInfoNotExistCallback err" + JSON.stringify(err));
332                expect(err).assertEqual(1);
333                done();
334                return;
335            }
336            console.info("testGetBundleInfoNotExistCallback success" + JSON.stringify(datainfo));
337            expect(datainfo).assertFail();
338            done();
339        }
340    })
341
342    /**
343   * @tc.number Sub_Bms_Framework_Query_AppInfo_2040
344   * @tc.name testGetBundleInfoInvalidParamPromise
345   * @tc.desc Test getBundleInfo interfaces with none hap. (by promise)
346   */
347    it('testGetBundleInfoInvalidParamPromise', 0, async function (done) {
348        await demo.getBundleInfo(' ', demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES).then(datainfo => {
349            console.info("testGetBundleInfoInvalidParamPromise success" + JSON.stringify(datainfo));
350            expect(datainfo).assertFail();
351            done();
352        }).catch(err => {
353            console.info("testGetBundleInfoInvalidParamPromise fail" + JSON.stringify(err));
354            expect(err).assertEqual(1);
355            done();
356        });
357    })
358
359    /**
360     * @tc.number Sub_Bms_Framework_Query_AppInfo_2140
361     * @tc.name testGetBundleInfoInvalidParamCallback
362     * @tc.desc Test getBundleInfo interfaces with none hap. (by callback)
363     */
364    it('testGetBundleInfoInvalidParamCallback', 0, async function (done) {
365        await demo.getBundleInfo(' ', demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, OnReceiveEvent);
366        function OnReceiveEvent(err, datainfo) {
367            if (err) {
368                console.info("testGetBundleInfoInvalidParamCallback err" + JSON.stringify(err));
369                expect(err).assertEqual(1);
370                done();
371                return;
372            }
373            console.info("testGetBundleInfoInvalidParamCallback success" + JSON.stringify(datainfo));
374            expect(datainfo).assertFail();
375            done();
376        }
377    })
378
379    /**
380     * @tc.number Sub_Bms_Framework_Query_AppInfo_2160
381     * @tc.name testGetBundleInfoDifferentParamPromise
382     * @tc.desc Test getBundleInfo interfaces with one hap and different param. (by promise)
383     */
384    it('testGetBundleInfoDifferentParamPromise', 0, async function (done) {
385        let datainfo = await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_DEFAULT)
386        console.info("testGetBundleInfoDifferentParamPromise dataInfo ====" + datainfo);
387        expect(datainfo.name).assertEqual(NAME1);
388        expect(datainfo.vendor).assertEqual("example");
389        expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
390        expect(datainfo.versionName).assertLarger(0);
391        expect(datainfo.entryModuleName).assertEqual("entry");
392        expect(datainfo.appInfo.name).assertEqual(NAME1);
393        expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
394        expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
395        expect(datainfo.appInfo.icon).assertEqual("$media:icon");
396        expect(datainfo.appInfo.iconId >= 0).assertTrue();
397        expect(datainfo.appInfo.label).assertEqual("$string:app_name");
398        expect(datainfo.appInfo.labelId >= 0).assertTrue();
399        expect(datainfo.appInfo.systemApp).assertEqual(false);
400        expect(datainfo.appInfo.supportedModes).assertEqual(0);
401        expect(datainfo.appInfo.enabled).assertEqual(true);
402        done();
403    })
404
405    /**
406     * @tc.number Sub_Bms_Framework_Query_AppInfo_2180
407     * @tc.name testGetBundleInfoDifferentParamCallback
408     * @tc.desc Test getBundleInfo interfaces with one hap and different param. (by callback)
409     */
410    it('testGetBundleInfoDifferentParamCallback', 0, async function (done) {
411        await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_DEFAULT, OnReceiveEvent)
412        function OnReceiveEvent(err, datainfo) {
413            console.info("testGetBundleInfoDifferentParamCallback dataInfo ====" + datainfo);
414            expect(datainfo.name).assertEqual(NAME1);
415            expect(datainfo.vendor).assertEqual("example");
416            expect(datainfo.versionCode).assertEqual(VERSIONCODE1);
417            expect(datainfo.versionName).assertLarger(0);
418            expect(datainfo.entryModuleName).assertEqual("entry");
419            expect(datainfo.appInfo.name).assertEqual(NAME1);
420            expect(datainfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
421            expect(datainfo.appInfo.descriptionId >= 0).assertTrue();
422            expect(datainfo.appInfo.icon).assertEqual("$media:icon");
423            expect(datainfo.appInfo.iconId >= 0).assertTrue();
424            expect(datainfo.appInfo.label).assertEqual("$string:app_name");
425            expect(datainfo.appInfo.labelId >= 0).assertTrue();
426            expect(datainfo.appInfo.systemApp).assertEqual(false);
427            expect(datainfo.appInfo.supportedModes).assertEqual(0);
428            for (let j = 0; j < datainfo.appInfo.moduleInfos.length; j++) {
429                expect(datainfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
430                expect(datainfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
431            }
432            expect(datainfo.appInfo.enabled).assertEqual(true);
433            done();
434        }
435    })
436
437    /**
438     * @tc.number Sub_Bms_Framework_Query_AppInfo_2200
439     * @tc.name testGetBundleInfoSystemAppCallback
440     * @tc.desc Test getBundleInfo interfaces with systemApp.(by callback)
441     */
442    it('testGetBundleInfoSystemAppCallback', 0, async function (done) {
443        let bundleOptions = {
444            userId: userId
445        };
446        demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES,
447            bundleOptions, (err, datainfo) => {
448                if (err) {
449                    console.info("testGetBundleInfoSystemAppCallback fail:" + JSON.stringify(err));
450                    expect(err).assertFail();
451                    done();
452                    return;
453                }
454                console.info("testGetBundleInfoSystemAppCallback success:" + JSON.stringify(datainfo));
455                expect(datainfo.name).assertEqual(NAME1);
456                expect(datainfo.vendor).assertEqual("example");
457                expect(datainfo.versionCode).assertEqual(1);
458                expect(datainfo.versionName.length).assertLarger(0);
459                expect(datainfo.uid).assertLarger(2099);
460                expect(datainfo.appInfo.name).assertEqual(NAME1);
461                expect(datainfo.appInfo.systemApp).assertEqual(false);
462                expect(datainfo.appInfo.supportedModes).assertEqual(0);
463                expect(datainfo.appInfo.moduleInfos.length).assertLarger(0);
464                expect(datainfo.appInfo.enabled).assertEqual(true);
465                done();
466            })
467    })
468
469    /**
470     * @tc.number Sub_Bms_Framework_Query_AppInfo_2220
471     * @tc.name testGetBundleInfoCurrentUserIdPromise
472     * @tc.desc Test getBundleInfo interface with current userId (by promise).
473     */
474    it('testGetBundleInfoCurrentUserIdPromise', 0, async function (done) {
475        let bundleOptions = {
476            userId: userId
477        };
478        let dataInfo = await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, bundleOptions);
479        console.info("testGetBundleInfoCurrentUserIdPromise start --------");
480        console.info("testGetBundleInfoCurrentUserIdPromise dataInfo ====" + dataInfo);
481        expect(dataInfo.name).assertEqual(NAME1);
482        expect(dataInfo.vendor).assertEqual("example");
483        expect(dataInfo.versionCode).assertEqual(VERSIONCODE1);
484        expect(dataInfo.versionName).assertLarger(0);
485        expect(dataInfo.entryModuleName).assertEqual("entry");
486        expect(dataInfo.appInfo.name).assertEqual(NAME1);
487        expect(dataInfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
488        expect(dataInfo.appInfo.descriptionId >= 0).assertTrue();
489        expect(dataInfo.appInfo.icon).assertEqual("$media:icon");
490        expect(dataInfo.appInfo.iconId >= 0).assertTrue();
491        expect(dataInfo.appInfo.label).assertEqual("$string:app_name");
492        expect(dataInfo.appInfo.labelId >= 0).assertTrue();
493        expect(dataInfo.appInfo.systemApp).assertEqual(false);
494        expect(dataInfo.appInfo.supportedModes).assertEqual(0);
495        expect(dataInfo.updateTime).assertLarger(0);
496        expect(dataInfo.reqPermissions.length).assertEqual(0);
497        expect(dataInfo.reqPermissionDetails.length).assertEqual(0);
498        expect(dataInfo.compatibleVersion).assertEqual(12);
499        expect(dataInfo.targetVersion).assertEqual(12);
500        expect(dataInfo.isCompressNativeLibs).assertEqual(true);
501        for (let s = 0; s < dataInfo.hapModuleInfos.length; s++) {
502            expect(dataInfo.hapModuleInfos[s].name).assertEqual("com.example.myapplication1.MyApplication1");
503            expect(dataInfo.hapModuleInfos[s].moduleName).assertEqual("entry");
504        }
505        expect(dataInfo.entryModuleName).assertEqual("entry");
506        expect(dataInfo.isSilentInstallation.length).assertEqual(0);
507        expect(dataInfo.minCompatibleVersionCode).assertEqual(1);
508        expect(dataInfo.entryInstallationFree).assertEqual(false);
509        for (let j = 0; j < dataInfo.appInfo.moduleInfos.length; j++) {
510            expect(dataInfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
511            expect(dataInfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
512        }
513        expect(dataInfo.appInfo.enabled).assertEqual(true);
514        console.info("testGetBundleInfoCurrentUserIdPromise end  --------");
515        done();
516    })
517
518    /**
519     * @tc.number Sub_Bms_Framework_Query_AppInfo_2240
520     * @tc.name testGetBundleInfoCurrentUserIdCallback
521     * @tc.desc Test getBundleInfo interface with current userId (by callback).
522     */
523    it('testGetBundleInfoCurrentUserIdCallback', 0, async function (done) {
524        let bundleOptions = {
525            userId: userId
526        };
527        demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, bundleOptions, (err, dataInfo) => {
528            console.info("testGetBundleInfoCurrentUserIdCallback start --------");
529            console.info("testGetBundleInfoCurrentUserIdCallback dataInfo ====" + dataInfo);
530            expect(dataInfo.name).assertEqual(NAME1);
531            expect(dataInfo.vendor).assertEqual("example");
532            expect(dataInfo.versionCode).assertEqual(VERSIONCODE1);
533            expect(dataInfo.versionName).assertLarger(0);
534            expect(dataInfo.entryModuleName).assertEqual("entry");
535            expect(dataInfo.appInfo.name).assertEqual(NAME1);
536            expect(dataInfo.appInfo.description).assertEqual(APPLICATION_DESCRIPTION);
537            expect(dataInfo.appInfo.descriptionId >= 0).assertTrue();
538            expect(dataInfo.appInfo.icon).assertEqual("$media:icon");
539            expect(dataInfo.appInfo.iconId >= 0).assertTrue();
540            expect(dataInfo.appInfo.label).assertEqual("$string:app_name");
541            expect(dataInfo.appInfo.labelId >= 0).assertTrue();
542            expect(dataInfo.appInfo.systemApp).assertEqual(false);
543            expect(dataInfo.appInfo.supportedModes).assertEqual(0);
544            expect(dataInfo.updateTime).assertLarger(0);
545            expect(dataInfo.reqPermissions.length).assertEqual(0);
546            expect(dataInfo.reqPermissionDetails.length).assertEqual(0);
547            expect(dataInfo.compatibleVersion).assertEqual(12);
548            expect(dataInfo.targetVersion).assertEqual(12);
549            expect(dataInfo.isCompressNativeLibs).assertEqual(true);
550            for (let s = 0; s < dataInfo.hapModuleInfos.length; s++) {
551                expect(dataInfo.hapModuleInfos[s].name).assertEqual("com.example.myapplication1.MyApplication1");
552                expect(dataInfo.hapModuleInfos[s].moduleName).assertEqual("entry");
553            }
554            expect(dataInfo.entryModuleName).assertEqual("entry");
555            expect(dataInfo.isSilentInstallation.length).assertEqual(0);
556            expect(dataInfo.minCompatibleVersionCode).assertEqual(1);
557            expect(dataInfo.entryInstallationFree).assertEqual(false);
558            for (let j = 0; j < dataInfo.appInfo.moduleInfos.length; j++) {
559                expect(dataInfo.appInfo.moduleInfos[j].moduleName).assertEqual("entry");
560                expect(dataInfo.appInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
561            }
562            console.info("testGetBundleInfoCurrentUserIdCallback end  --------");
563            done();
564        });
565    })
566
567    /**
568     * @tc.number Sub_Bms_Framework_Query_AppInfo_2360
569     * @tc.name testGetBundleInfoOtherUserIdPromise
570     * @tc.desc Test getBundleInfo interface with other userId (by promise).
571     */
572    it('testGetBundleInfoOtherUserIdPromise', 0, async function (done) {
573        await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, {
574            userId: 1
575        }).then(data => {
576            console.info("testGetBundleInfoOtherUserIdPromise success" + JSON.stringify(data));
577            expect(data).assertFail();
578            done();
579        }).catch(err => {
580            console.info("testGetBundleInfoOtherUserIdPromise err" + JSON.stringify(err));
581            expect(err).assertEqual(1);
582            done();
583        });
584    })
585
586    /**
587     * @tc.number Sub_Bms_Framework_Query_AppInfo_2380
588     * @tc.name testGetBundleInfoOtherUserIdCallback
589     * @tc.desc Test getBundleInfo interface with other userId (by callback).
590     */
591    it('testGetBundleInfoOtherUserIdCallback', 0, async function (done) {
592        await demo.getBundleInfo(NAME1, demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, {
593            userId: 1
594        }, (err, dataInfo) => {
595            if (err) {
596                console.info("testGetBundleInfoOtherUserIdCallback err" + JSON.stringify(err));
597                expect(err).assertEqual(1);
598                done();
599                return;
600            }
601            console.info("testGetBundleInfoOtherUserIdCallback success" + JSON.stringify(dataInfo));
602            expect(dataInfo).assertFail();
603            done();
604        });
605    })
606
607    /**
608     * @tc.number Sub_Bms_Framework_Query_AppInfo_0840
609     * @tc.name testGetAllApplicationInfoPromise
610     * @tc.desc Test getApplicationInfos interfaces with one hap.
611     */
612    it('testGetAllApplicationInfoPromise', 0, async function (done) {
613        let datainfo = await demo.getAllApplicationInfo(demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION, userId);
614        checkgetApplicationInfos(datainfo);
615        done();
616    })
617
618    function checkgetApplicationInfos(datainfo) {
619        console.log("=============datainfo.length===============" + datainfo.length);
620        expect(datainfo.length).assertLarger(0);
621        for (let i = 0; i < datainfo.length; i++) {
622            expect(datainfo[i].name.length).assertLarger(0);
623            if (datainfo[i].name == NAME1 || datainfo[i].name == NAME2
624                || datainfo[i].name == NAME3 || datainfo[i].name == NAME4 || datainfo[i].name == NAME5) {
625                expect(datainfo[i].description.length >= 0).assertTrue();
626                expect(datainfo[i].icon.length).assertLarger(0);
627                expect(datainfo[i].label.length).assertLarger(0);
628            }
629            expect(datainfo[i].moduleSourceDirs.length).assertEqual(0);
630            expect(datainfo[i].moduleInfos.length).assertLarger(0);
631            expect(datainfo[i].supportedModes).assertEqual(0);
632            for (let j = 0; j < datainfo[i].moduleInfos.length; j++) {
633                expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0);
634                expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertEqual(0);
635            }
636        }
637
638    }
639
640    /**
641     * @tc.number Sub_Bms_Framework_Query_AppInfo_0940
642     * @tc.name testGetAllApplicationInfoCallback
643     * @tc.desc Test getApplicationInfos interfaces with one hap.
644     */
645    it('testGetAllApplicationInfoCallback', 0, async function (done) {
646        await demo.getAllApplicationInfo(demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
647            userId, (error, datainfo) => {
648                expect(datainfo.length).assertLarger(0);
649                for (let i = 0; i < datainfo.length; i++) {
650                    expect(datainfo[i].name.length).assertLarger(0);
651                    expect(datainfo[i].moduleSourceDirs.length).assertEqual(0);
652                    expect(datainfo[i].moduleInfos.length).assertLarger(0);
653                    expect(datainfo[i].supportedModes).assertEqual(0);
654                    for (let j = 0; j < datainfo[i].moduleInfos.length; j++) {
655                        expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0);
656                        expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertEqual(0);
657                    }
658                }
659                done();
660            });
661    })
662
663    /**
664     * @tc.number Sub_Bms_Framework_Query_AppInfo_2460
665     * @tc.name testGetAllBundleInfoPromise
666     * @tc.desc Test getBundleInfos interfaces with one hap.
667     */
668    it('testGetAllBundleInfoPromise', 0, async function (done) {
669        let data = await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT);
670        expect(typeof data).assertEqual(OBJECT);
671        expect(data.length).assertLarger(0);
672        for (let i = 0; i < data.length; i++) {
673            expect(data[i].name.length).assertLarger(0);
674            expect(data[i].appInfo.name.length).assertLarger(0);
675            if (data[i].name == NAME1 || data[i].name == NAME2
676                || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
677                expect(data[i].appInfo.description.length >= 0).assertTrue();
678                expect(data[i].appInfo.icon.length).assertLarger(0);
679                expect(data[i].appInfo.label.length).assertLarger(0);
680            }
681            if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
682                expect(data[i].appInfo.supportedModes).assertEqual(0);
683                expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
684            }
685        }
686        done();
687    })
688
689    /**
690     * @tc.number Sub_Bms_Framework_Query_AppInfo_0220
691     * @tc.name testGetApplicationInfoMetaDataPromise
692     * @tc.desc Test getApplicationInfo interfaces with one hap. (by promise)
693     */
694    it('testGetApplicationInfoMetaDataPromise', 0, async function (done) {
695        await demo.getApplicationInfo(NAME1,
696            demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION | demo.BundleFlag.GET_APPLICATION_INFO_WITH_METADATA,
697            userId).then(datainfo => {
698                expect(typeof datainfo).assertEqual(OBJECT);
699                console.info("getApplicationInfo success:" + JSON.stringify(datainfo));
700                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
701                expect(datainfo.moduleInfos.length).assertLarger(0);
702                expect(datainfo.name).assertEqual(NAME1);
703                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
704                expect(datainfo.icon).assertEqual("$media:icon");
705                expect(datainfo.label).assertEqual("$string:app_name");
706                expect(datainfo.systemApp).assertEqual(false);
707                expect(datainfo.descriptionId).assertLarger(0);
708                expect(parseInt(datainfo.iconId)).assertLarger(0);
709                expect(parseInt(datainfo.labelId)).assertLarger(0);
710                expect(datainfo.supportedModes).assertEqual(0);
711                expect(datainfo.process).assertEqual(NAME1);
712                expect(datainfo.enabled).assertEqual(true);
713                expect(datainfo.metaData.entry[0].name).assertEqual("metaDataName");
714                expect(datainfo.metaData.entry[0].value).assertEqual("metaDataValue");
715                expect(datainfo.metaData.entry[0].extra).assertEqual("$string:app_name");
716                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
717                for (let j = 0; j < datainfo.moduleInfos.length; j++) {
718                    expect(datainfo.moduleInfos[j].moduleName).assertEqual("entry");
719                    expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertEqual(0);
720                }
721                done();
722            }).catch(err => {
723                console.info("getApplicationInfo fail:" + JSON.stringify(err));
724                expect(err).assertFail();
725                done();
726            })
727    })
728
729    /**
730     * @tc.number Sub_Bms_Framework_Query_AppInfo_0320
731     * @tc.name testGetApplicationInfoMetaDataCallback
732     * @tc.desc Test getApplicationInfo interfaces with one hap. (by callback)
733     */
734    it('testGetApplicationInfoMetaDataCallback', 0, async function (done) {
735        await demo.getApplicationInfo(NAME1,
736            demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION | demo.BundleFlag.GET_APPLICATION_INFO_WITH_METADATA,
737            userId, (error, datainfo) => {
738                if (error.code != 0) {
739                    console.info("testGetApplicationInfoMetaDataCallback fail:" + JSON.stringify(error));
740                    expect(error).assertFail();
741                    done();
742                    return;
743                }
744                expect(typeof datainfo).assertEqual(OBJECT);
745                console.info("testGetApplicationInfoMetaDataCallback success:" + JSON.stringify(datainfo));
746                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
747                expect(datainfo.moduleInfos.length).assertLarger(0);
748                expect(datainfo.name).assertEqual(NAME1);
749                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
750                expect(datainfo.icon).assertEqual("$media:icon");
751                expect(datainfo.label).assertEqual("$string:app_name");
752                expect(datainfo.systemApp).assertEqual(false);
753                expect(datainfo.descriptionId).assertLarger(0);
754                expect(parseInt(datainfo.iconId)).assertLarger(0);
755                expect(parseInt(datainfo.labelId)).assertLarger(0);
756                expect(datainfo.supportedModes).assertEqual(0);
757                expect(datainfo.process).assertEqual(NAME1);
758                expect(datainfo.enabled).assertEqual(true);
759                expect(datainfo.metaData.entry[0].name).assertEqual("metaDataName");
760                expect(datainfo.metaData.entry[0].value).assertEqual("metaDataValue");
761                expect(datainfo.metaData.entry[0].extra).assertEqual("$string:app_name");
762                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
763                for (let j = 0; j < datainfo.moduleInfos.length; j++) {
764                    expect(datainfo.moduleInfos[j].moduleName).assertEqual("entry");
765                    expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertEqual(0);
766                }
767                done();
768            })
769    })
770
771    /**
772     * @tc.number Sub_Bms_Framework_Query_AppInfo_0240
773     * @tc.name testGetApplicationInfoTwoHapPromise
774     * @tc.desc Test getApplicationInfo interfaces with two haps. (by promise)
775     */
776    it('testGetApplicationInfoTwoHapPromise', 0, async function (done) {
777        let datainfo = await demo.getApplicationInfo(NAME2,
778            demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION, userId);
779        console.info("testGetApplicationInfoTwoHapPromise result" + JSON.stringify(datainfo));
780        expect(typeof datainfo).assertEqual(OBJECT);
781        expect(datainfo.name.length).assertLarger(0);
782        expect(datainfo.description.length).assertLarger(0);
783        expect(datainfo.icon.length).assertLarger(0);
784        expect(datainfo.label.length).assertLarger(0);
785        expect(datainfo.moduleSourceDirs.length).assertEqual(0);
786        expect(datainfo.moduleInfos.length).assertLarger(0);
787        expect(datainfo.name).assertEqual(NAME2);
788        expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
789        expect(datainfo.icon).assertEqual("$media:icon");
790        expect(datainfo.label).assertEqual("$string:app_name");
791        expect(datainfo.systemApp).assertEqual(false);
792        expect(datainfo.descriptionId >= 0).assertTrue();
793        expect(datainfo.iconId >= 0).assertTrue();
794        expect(datainfo.labelId >= 0).assertTrue();
795        expect(datainfo.supportedModes).assertEqual(0);
796        expect(datainfo.process).assertEqual(NAME2);
797        expect(datainfo.enabled).assertEqual(true);
798        expect(datainfo.moduleSourceDirs.length).assertEqual(0);
799        expect(datainfo.moduleInfos.length).assertEqual(2);
800        expect(datainfo.moduleInfos[0].moduleName).assertEqual("entry");
801        expect(datainfo.moduleInfos[1].moduleName).assertEqual("feature");
802        for (let j = 0; j < datainfo.moduleInfos.length; j++) {
803            expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertEqual(0);
804        }
805        done();
806    })
807
808    /**
809     * @tc.number Sub_Bms_Framework_Query_AppInfo_0340
810     * @tc.name testGetApplicationInfoTwoHapCallback
811     * @tc.desc Test getApplicationInfo interfaces with two haps. (by callback)
812     */
813    it('testGetApplicationInfoTwoHapCallback', 0, async function (done) {
814        await demo.getApplicationInfo(NAME2,
815            demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION, userId, (error, datainfo) => {
816                console.info("testGetApplicationInfoTwoHapCallback result" + JSON.stringify(datainfo));
817                expect(typeof datainfo).assertEqual(OBJECT);
818                expect(datainfo.name.length).assertLarger(0);
819                expect(datainfo.description.length).assertLarger(0);
820                expect(datainfo.icon.length).assertLarger(0);
821                expect(datainfo.label.length).assertLarger(0);
822                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
823                expect(datainfo.moduleInfos.length).assertLarger(0);
824                expect(datainfo.name).assertEqual(NAME2);
825                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
826                expect(datainfo.icon).assertEqual("$media:icon");
827                expect(datainfo.label).assertEqual("$string:app_name");
828                expect(datainfo.systemApp).assertEqual(false);
829                expect(datainfo.descriptionId >= 0).assertTrue();
830                expect(datainfo.iconId >= 0).assertTrue();
831                expect(datainfo.labelId >= 0).assertTrue();
832                expect(datainfo.supportedModes).assertEqual(0);
833                expect(datainfo.process).assertEqual(NAME2);
834                expect(datainfo.enabled).assertEqual(true);
835                expect(datainfo.moduleSourceDirs.length).assertEqual(0);
836                expect(datainfo.moduleInfos.length).assertEqual(2);
837                expect(datainfo.moduleInfos[0].moduleName).assertEqual("entry");
838                expect(datainfo.moduleInfos[1].moduleName).assertEqual("feature");
839                for (let j = 0; j < datainfo.moduleInfos.length; j++) {
840                    expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertEqual(0);
841                }
842                done();
843            })
844    })
845
846    /**
847     * @tc.number Sub_Bms_Framework_Query_AppInfo_0260
848     * @tc.name testGetApplicationInfoThereHapPromise
849     * @tc.desc Test getApplicationInfo interfaces with three haps. (by promise)
850     */
851    it('testGetApplicationInfoThereHapPromise', 0, async function (done) {
852        let datainfo = await demo.getApplicationInfo(NAME3, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
853            userId);
854        console.info("testGetApplicationInfoThereHapPromise result" + JSON.stringify(datainfo));
855        expect(datainfo.name).assertEqual(NAME3);
856        expect(datainfo.label).assertEqual("$string:app_name");
857        expect(datainfo.icon).assertEqual("$media:icon");
858        expect(datainfo.name).assertEqual(NAME3);
859        expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
860        expect(datainfo.descriptionId >= 0).assertTrue();
861        expect(datainfo.icon).assertEqual("$media:icon");
862        expect(datainfo.iconId >= 0).assertTrue();
863        expect(datainfo.label).assertEqual("$string:app_name");
864        expect(datainfo.labelId >= 0).assertTrue();
865        expect(datainfo.systemApp).assertEqual(false);
866        expect(datainfo.supportedModes).assertEqual(0);
867        done();
868    })
869
870    /**
871    * @tc.number Sub_Bms_Framework_Query_AppInfo_0580
872    * @tc.name testGetApplicationInfoThereHapCallback
873    * @tc.desc Test getApplicationInfo interfaces with three haps. (by callback)
874    */
875    it('testGetApplicationInfoThereHapCallback', 0, async function (done) {
876        await demo.getApplicationInfo(NAME3, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
877            userId, (error, datainfo) => {
878                console.info("testGetApplicationInfoThereHapCallback result" + JSON.stringify(datainfo));
879                expect(datainfo.name).assertEqual(NAME3);
880                expect(datainfo.label).assertEqual("$string:app_name");
881                expect(datainfo.icon).assertEqual("$media:icon");
882                expect(datainfo.name).assertEqual(NAME3);
883                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
884                expect(datainfo.descriptionId >= 0).assertTrue();
885                expect(datainfo.icon).assertEqual("$media:icon");
886                expect(datainfo.iconId >= 0).assertTrue();
887                expect(datainfo.label).assertEqual("$string:app_name");
888                expect(datainfo.labelId >= 0).assertTrue();
889                expect(datainfo.systemApp).assertEqual(false);
890                expect(datainfo.supportedModes).assertEqual(0);
891                done();
892            })
893    })
894
895    /**
896     * @tc.number Sub_Bms_Framework_Query_AppInfo_0280
897     * @tc.name testGetApplicationInfoNotExistCallback
898     * @tc.desc Test getApplicationInfo interfaces with error hap. (by promise)
899     */
900    it('testGetApplicationInfoNotExistCallback', 0, async function (done) {
901        await demo.getApplicationInfo(ERROR, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
902            userId).then(datainfo => {
903                console.info("testGetApplicationInfoNotExistCallback success" + JSON.stringify(datainfo));
904                expect(datainfo).assertFail();
905                done();
906            }).catch(err => {
907                console.info("testGetApplicationInfoNotExistCallback err" + JSON.stringify(err));
908                expect(err.code).assertEqual(1);
909                done();
910            });
911    })
912
913    /**
914     * @tc.number Sub_Bms_Framework_Query_AppInfo_0360
915     * @tc.name testGetApplicationInfoNotExistPromise
916     * @tc.desc Test getApplicationInfo interfaces with error hap. (by callback)
917     */
918    it('testGetApplicationInfoNotExistPromise', 0, async function (done) {
919        await demo.getApplicationInfo(ERROR, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
920            userId, (error, datainfo) => {
921                if (error) {
922                    console.info("testGetApplicationInfoNotExistPromise fail" + JSON.stringify(error));
923                    expect(error.code).assertEqual(1);
924                    done();
925                    return;
926                }
927                console.info("testGetApplicationInfoNotExistPromise success" + JSON.stringify(datainfo));
928                expect(datainfo).assertFail();
929                done();
930            })
931    })
932
933    /**
934     * @tc.number Sub_Bms_Framework_Query_AppInfo_0300
935     * @tc.name testGetApplicationInfoInvalidParamPromise
936     * @tc.desc Test getApplicationInfo interfaces with none hap. (by promise)
937     */
938    it('testGetApplicationInfoInvalidParamPromise', 0, async function (done) {
939        await demo.getApplicationInfo('', demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
940            userId).then(datainfo => {
941                console.info("testGetApplicationInfoInvalidParamPromise success" + JSON.stringify(datainfo));
942                expect(datainfo).assertFail();
943                done();
944            }).catch(error => {
945                console.info("testGetApplicationInfoInvalidParamPromise err" + JSON.stringify(error));
946                expect(error.code).assertEqual(1);
947                done();
948            });
949    })
950
951    /**
952     * @tc.number Sub_Bms_Framework_Query_AppInfo_0380
953     * @tc.name testGetApplicationInfoInvalidParamCallback
954     * @tc.desc Test getApplicationInfo interfaces with none hap. (by callback)
955     */
956    it('testGetApplicationInfoInvalidParamCallback', 0, async function (done) {
957        await demo.getApplicationInfo('', demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
958            userId, (error, datainfo) => {
959                if (error) {
960                    console.info("testGetApplicationInfoInvalidParamCallback fail" + JSON.stringify(error));
961                    expect(error.code).assertEqual(1);
962                    done();
963                    return;
964                }
965                console.info("testGetApplicationInfoInvalidParamCallback success" + JSON.stringify(datainfo));
966                expect(datainfo).assertFail();
967                done();
968            });
969    })
970
971    /**
972     * @tc.number Sub_Bms_Framework_Query_AppInfo_0400
973     * @tc.name testGetApplicationInfoDifferentParamPromise
974     * @tc.desc Test getApplicationInfo interfaces with one hap and different param. (by promise)
975     */
976    it('testGetApplicationInfoDifferentParamPromise', 0, async function (done) {
977        await demo.getApplicationInfo(NAME1, demo.BundleFlag.GET_BUNDLE_DEFAULT, userId).then(datainfo => {
978            console.info("Sub_Bms_Framework_Query_AppInfo_0400 success" + JSON.stringify(datainfo));
979            expect(typeof datainfo).assertEqual(OBJECT);
980            expect(datainfo.name).assertEqual(NAME1);
981            expect(datainfo.label).assertEqual("$string:app_name");
982            expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
983            expect(datainfo.icon).assertEqual("$media:icon");
984            expect(datainfo.descriptionId).assertLarger(0);
985            expect(parseInt(datainfo.iconId)).assertLarger(0);
986            expect(parseInt(datainfo.labelId)).assertLarger(0);
987            expect(datainfo.systemApp).assertEqual(false);
988            expect(datainfo.supportedModes).assertEqual(0);
989            done();
990        }).catch(err => {
991            console.info("testGetApplicationInfoDifferentParamPromise fail" + JSON.stringify(err));
992            expect(err).assertFail();
993            done();
994        })
995    })
996
997    /**
998     * @tc.number Sub_Bms_Framework_Query_AppInfo_0420
999     * @tc.name testGetApplicationInfoDifferentParamCallback
1000     * @tc.desc Test getApplicationInfo interfaces with one hap and different param. (by callback)
1001     */
1002    it('testGetApplicationInfoDifferentParamCallback', 0, async function (done) {
1003        await demo.getApplicationInfo(NAME1, demo.BundleFlag.GET_BUNDLE_DEFAULT, userId, (error, datainfo) => {
1004            if (error.code != 0) {
1005                console.info("testGetApplicationInfoDifferentParamCallback fail" + JSON.stringify(error));
1006                expect(error).assertFail();
1007                done();
1008                return;
1009            }
1010            console.info("testGetApplicationInfoDifferentParamCallback success" + JSON.stringify(datainfo));
1011            expect(typeof datainfo).assertEqual(OBJECT);
1012            expect(datainfo.name).assertEqual(NAME1);
1013            expect(datainfo.label).assertEqual("$string:app_name");
1014            expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
1015            expect(datainfo.icon).assertEqual("$media:icon");
1016            expect(datainfo.descriptionId).assertLarger(0);
1017            expect(parseInt(datainfo.iconId)).assertLarger(0);
1018            expect(parseInt(datainfo.labelId)).assertLarger(0);
1019            expect(datainfo.systemApp).assertEqual(false);
1020            expect(datainfo.supportedModes).assertEqual(0);
1021            done();
1022        })
1023    })
1024
1025    /**
1026     * @tc.number Sub_Bms_Framework_Query_AppInfo_0440
1027     * @tc.name testGetApplicationInfoPromise
1028     * @tc.desc Test getApplicationInfo interfaces with one hap. (by promise)
1029     */
1030    it('testGetApplicationInfoPromise', 0, async function (done) {
1031        await demo.getApplicationInfo(NAME1, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
1032            userId).then(datainfo => {
1033                console.info("testGetApplicationInfoPromise success:" + JSON.stringify(datainfo));
1034                expect(typeof datainfo).assertEqual(OBJECT);
1035                expect(datainfo.name).assertEqual(NAME1);
1036                expect(datainfo.label).assertEqual("$string:app_name");
1037                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
1038                expect(datainfo.icon).assertEqual("$media:icon");
1039                expect(datainfo.descriptionId >= 0).assertTrue();
1040                expect(parseInt(datainfo.iconId)).assertLarger(0);
1041                expect(parseInt(datainfo.labelId)).assertLarger(0);
1042                expect(datainfo.systemApp).assertEqual(false);
1043                expect(datainfo.supportedModes).assertEqual(0);
1044                expect(datainfo.enabled).assertEqual(true);
1045                for (let j = 0; j < datainfo.moduleInfos.length; j++) {
1046                    expect(datainfo.moduleInfos[j].moduleName).assertEqual("entry");
1047                    expect(datainfo.moduleInfos[j].moduleSourceDir).assertEqual('');
1048                }
1049                done();
1050            }).catch(error => {
1051                console.info("testGetApplicationInfoPromise fail:" + JSON.stringify(error));
1052                expect(error).assertFail();
1053                done();
1054            })
1055    })
1056
1057    /**
1058     * @tc.number Sub_Bms_Framework_Query_AppInfo_0460
1059     * @tc.name testGetApplicationInfoCallback
1060     * @tc.desc Test getApplicationInfo interfaces with one hap. (by callback)
1061     */
1062    it('testGetApplicationInfoCallback', 0, async function (done) {
1063        await demo.getApplicationInfo(NAME1, demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION, userId,
1064            (error, datainfo) => {
1065                if (error.code != 0) {
1066                    console.info("testGetApplicationInfoCallback fail:" + JSON.stringify(error));
1067                    expect(error).assertFail();
1068                    done();
1069                    return;
1070                }
1071                console.info("testGetApplicationInfoCallback success:" + JSON.stringify(datainfo));
1072                expect(typeof datainfo).assertEqual(OBJECT);
1073                expect(datainfo.name).assertEqual(NAME1);
1074                expect(datainfo.label).assertEqual("$string:app_name");
1075                expect(datainfo.description).assertEqual(APPLICATION_DESCRIPTION);
1076                expect(datainfo.icon).assertEqual("$media:icon");
1077                expect(datainfo.descriptionId >= 0).assertTrue();
1078                expect(parseInt(datainfo.iconId)).assertLarger(0);
1079                expect(parseInt(datainfo.labelId)).assertLarger(0);
1080                expect(datainfo.systemApp).assertEqual(false);
1081                expect(datainfo.supportedModes).assertEqual(0);
1082                expect(datainfo.enabled).assertEqual(true);
1083                for (let j = 0; j < datainfo.moduleInfos.length; j++) {
1084                    expect(datainfo.moduleInfos[j].moduleName).assertEqual("entry");
1085                    expect(datainfo.moduleInfos[j].moduleSourceDir).assertEqual('');
1086                }
1087                done();
1088            })
1089    })
1090
1091    /**
1092     * @tc.number Sub_Bms_Framework_Query_AppInfo_2560
1093     * @tc.name testGetAllBundleInfoCallback
1094     * @tc.desc Test getBundleInfos interfaces with one hap.
1095     */
1096    it('testGetAllBundleInfoCallback', 0, async function (done) {
1097        await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, (error, data) => {
1098            expect(typeof data).assertEqual(OBJECT);
1099            for (let i = 0; i < data.length; i++) {
1100                expect(data[i].name.length).assertLarger(0);
1101                expect(data[i].appInfo.name.length).assertLarger(0);
1102                if (data[i].name == NAME1 || data[i].name == NAME2
1103                    || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1104                    expect(data[i].appInfo.description.length >= 0).assertTrue();
1105                    expect(data[i].appInfo.icon.length).assertLarger(0);
1106                    expect(data[i].appInfo.label.length).assertLarger(0);
1107                }
1108                if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1109                    expect(data[i].appInfo.supportedModes).assertEqual(0);
1110                    expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1111                }
1112            }
1113            done();
1114        });
1115    })
1116
1117    /**
1118     * @tc.number Sub_Bms_Framework_Query_AppInfo_0860
1119    * @tc.name testGetAllApplicationInfoTwoHapPromise
1120     * @tc.desc Test getApplicationInfos interfaces with two haps.
1121     */
1122    it('testGetAllApplicationInfoTwoHapPromise', 0, async function (done) {
1123        let datainfo = await demo.getAllApplicationInfo(demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION, userId);
1124        console.info("==========ActsBmsGetInfosSecondScene is ==========" + JSON.stringify(datainfo));
1125        checkgetApplicationInfos(datainfo);
1126        done();
1127    })
1128
1129    /**
1130     * @tc.number Sub_Bms_Framework_Query_AppInfo_0900
1131     * @tc.name testGetAllApplicationInfoDifferentParamPromise
1132     * @tc.desc Test getApplicationInfos interfaces with two haps and different param.
1133     */
1134    it('testGetAllApplicationInfoDifferentParamPromise', 0, async function (done) {
1135        let datainfo = await demo.getAllApplicationInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, userId);
1136        expect(datainfo.length).assertLarger(0);
1137        checkgetApplicationInfos(datainfo);
1138        done();
1139    })
1140
1141    /**
1142     * @tc.number Sub_Bms_Framework_Query_AppInfo_0960
1143     * @tc.name testGetAllApplicationInfoTwoHapCallback
1144     * @tc.desc Test getApplicationInfos interfaces with two haps.
1145     */
1146    it('testGetAllApplicationInfoTwoHapCallback', 0, async function (done) {
1147        await demo.getAllApplicationInfo(demo.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION,
1148            userId, (error, datainfo) => {
1149                for (let i = 0; i < datainfo.length; i++) {
1150                    expect(datainfo[i].name.length).assertLarger(0);
1151                    if (datainfo[i].name == NAME1 || datainfo[i].name == NAME2
1152                        || datainfo[i].name == NAME3 || datainfo[i].name == NAME4 || datainfo[i].name == NAME5) {
1153                        expect(datainfo[i].description.length >= 0).assertTrue();
1154                        expect(datainfo[i].icon.length).assertLarger(0);
1155                        expect(datainfo[i].label.length).assertLarger(0);
1156                    }
1157                    expect(datainfo[i].moduleSourceDirs.length).assertEqual(0);
1158                    expect(datainfo[i].moduleInfos.length).assertLarger(0);
1159                    expect(datainfo[i].supportedModes).assertEqual(0);
1160                    for (let j = 0; j < datainfo[i].moduleInfos.length; j++) {
1161                        expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0);
1162                        expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertEqual(0);
1163                    }
1164                }
1165                done();
1166            });
1167    })
1168
1169    /**
1170     * @tc.number Sub_Bms_Framework_Query_AppInfo_0980
1171     * @tc.name testGetAllApplicationInfoThereHapCallback
1172     * @tc.desc Test getApplicationInfos interfaces with three haps.
1173    */
1174    it('testGetAllApplicationInfoThereHapCallback', 0, async function (done) {
1175        await demo.getAllApplicationInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, userId, (error, datainfo) => {
1176            for (let i = 0; i < datainfo.length; i++) {
1177                expect(datainfo[i].name.length).assertLarger(0);
1178                if (datainfo[i].name == NAME1 || datainfo[i].name == NAME2
1179                    || datainfo[i].name == NAME3 || datainfo[i].name == NAME4 || datainfo[i].name == NAME5) {
1180                    expect(datainfo[i].description.length >= 0).assertTrue();
1181                    expect(datainfo[i].icon.length).assertLarger(0);
1182                    expect(datainfo[i].label.length).assertLarger(0);
1183                }
1184                expect(datainfo[i].moduleSourceDirs.length).assertEqual(0);
1185                expect(datainfo[i].moduleInfos.length).assertLarger(0);
1186                expect(datainfo[i].supportedModes).assertEqual(0);
1187                for (let j = 0; j < datainfo[i].moduleInfos.length; j++) {
1188                    expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0);
1189                    expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertEqual(0);
1190                }
1191            }
1192            done();
1193        });
1194    })
1195
1196    /**
1197     * @tc.number Sub_Bms_Framework_Query_AppInfo_1000
1198     * @tc.name testGetAllApplicationInfoDifferentParamCallback
1199     * @tc.desc Test getApplicationInfos interfaces with two haps and different param.
1200     */
1201    it('testGetAllApplicationInfoDifferentParamCallback', 0, async function (done) {
1202        await demo.getAllApplicationInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, userId, (error, datainfo) => {
1203            for (let i = 0; i < datainfo.length; i++) {
1204                expect(datainfo[i].name.length).assertLarger(0);
1205                if (datainfo[i].name == NAME1 || datainfo[i].name == NAME2
1206                    || datainfo[i].name == NAME3 || datainfo[i].name == NAME4 || datainfo[i].name == NAME5) {
1207                    expect(datainfo[i].description.length >= 0).assertTrue();
1208                    expect(datainfo[i].icon.length).assertLarger(0);
1209                    expect(datainfo[i].label.length).assertLarger(0);
1210                }
1211                expect(datainfo[i].moduleSourceDirs.length).assertEqual(0);
1212                expect(datainfo[i].moduleInfos.length).assertLarger(0);
1213                expect(datainfo[i].supportedModes).assertEqual(0);
1214                for (let j = 0; j < datainfo[i].moduleInfos.length; j++) {
1215                    expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0);
1216                    expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertEqual(0);
1217                }
1218            }
1219            done();
1220        });
1221    })
1222
1223    /**
1224     * @tc.number Sub_Bms_Framework_Query_AppInfo_2480
1225     * @tc.name testGetAllBundleInfoTwoHapPromise
1226     * @tc.desc Test getBundleInfos interfaces with two haps.
1227     */
1228    it('testGetAllBundleInfoTwoHapPromise', 0, async function (done) {
1229        let data = await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT);
1230        expect(typeof data).assertEqual(OBJECT);
1231        for (let i = 0; i < data.length; i++) {
1232            expect(data[i].name.length).assertLarger(0);
1233            expect(data[i].appInfo.name.length).assertLarger(0);
1234            if (data[i].name == NAME1 || data[i].name == NAME2
1235                || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1236                expect(data[i].appInfo.description.length >= 0).assertTrue();
1237                expect(data[i].appInfo.icon.length).assertLarger(0);
1238                expect(data[i].appInfo.label.length).assertLarger(0);
1239            }
1240            if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1241                expect(data[i].appInfo.supportedModes).assertEqual(0);
1242                expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1243            }
1244        }
1245        done();
1246    })
1247
1248    /**
1249     * @tc.number Sub_Bms_Framework_Query_AppInfo_2520
1250     * @tc.name testGetAllBundleInfoTwoHapDifferentParamPromise
1251     * @tc.desc Test getBundleInfos interfaces with two haps and different param.
1252     */
1253    it('testGetAllBundleInfoTwoHapDifferentParamPromise', 0, async function (done) {
1254        let data = await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
1255        expect(typeof data).assertEqual(OBJECT);
1256        for (let i = 0; i < data.length; i++) {
1257            expect(data[i].name.length).assertLarger(0);
1258            expect(data[i].appInfo.name.length).assertLarger(0);
1259            if (data[i].name == NAME1 || data[i].name == NAME2
1260                || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1261                expect(data[i].appInfo.description.length >= 0).assertTrue();
1262                expect(data[i].appInfo.icon.length).assertLarger(0);
1263                expect(data[i].appInfo.label.length).assertLarger(0);
1264            }
1265            if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1266                expect(data[i].appInfo.supportedModes).assertEqual(0);
1267                expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1268            }
1269        }
1270        done();
1271    })
1272
1273
1274    /**
1275     * @tc.number Sub_Bms_Framework_Query_AppInfo_2580
1276     * @tc.name testGetAllBundleInfoTwoHapCallback
1277     * @tc.desc Test getBundleInfos interfaces with two haps.
1278     */
1279    it('testGetAllBundleInfoTwoHapCallback', 0, async function (done) {
1280        await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, (error, data) => {
1281            expect(typeof data).assertEqual(OBJECT);
1282            for (let i = 0; i < data.length; i++) {
1283                expect(data[i].name.length).assertLarger(0);
1284                expect(data[i].appInfo.name.length).assertLarger(0);
1285                if (data[i].name == NAME1 || data[i].name == NAME2
1286                    || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1287                    expect(data[i].appInfo.description.length >= 0).assertTrue();
1288                    expect(data[i].appInfo.icon.length).assertLarger(0);
1289                    expect(data[i].appInfo.label.length).assertLarger(0);
1290                }
1291                if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1292                    expect(data[i].appInfo.supportedModes).assertEqual(0);
1293                    expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1294                }
1295            }
1296            done();
1297        })
1298    })
1299
1300    /**
1301     * @tc.number Sub_Bms_Framework_Query_AppInfo_2620
1302    * @tc.name testGetAllBundleInfoTwoHapDifferentParamCallback
1303     * @tc.desc Test getBundleInfos interfaces with two haps and different param.
1304     */
1305    it('testGetAllBundleInfoTwoHapDifferentParamCallback', 0, async function (done) {
1306        await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES, (error, data) => {
1307            expect(typeof data).assertEqual(OBJECT);
1308            for (let i = 0; i < data.length; i++) {
1309                expect(data[i].name.length).assertLarger(0);
1310                expect(data[i].appInfo.name.length).assertLarger(0);
1311                if (data[i].name == NAME1 || data[i].name == NAME2
1312                    || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1313                    expect(data[i].appInfo.description.length >= 0).assertTrue();
1314                    expect(data[i].appInfo.icon.length).assertLarger(0);
1315                    expect(data[i].appInfo.label.length).assertLarger(0);
1316                }
1317                if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1318                    expect(data[i].appInfo.supportedModes).assertEqual(0);
1319                    expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1320                }
1321            }
1322            done();
1323        })
1324    })
1325
1326    /**
1327     * @tc.number Sub_Bms_Framework_Query_AppInfo_2500
1328     * @tc.name testGetAllBundleInfoThereHapPromise
1329     * @tc.desc Test getBundleInfos interfaces with three haps.
1330     */
1331    it('testGetAllBundleInfoThereHapPromise', 0, async function (done) {
1332        let data = await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT);
1333        for (let i = 0; i < data.length; i++) {
1334            expect(data[i].name.length).assertLarger(0);
1335            expect(data[i].appInfo.name.length).assertLarger(0);
1336            if (data[i].name == NAME1 || data[i].name == NAME2
1337                || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1338                expect(data[i].appInfo.description.length >= 0).assertTrue();
1339                expect(data[i].appInfo.icon.length).assertLarger(0);
1340                expect(data[i].appInfo.label.length).assertLarger(0);
1341            }
1342            if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1343                expect(data[i].appInfo.supportedModes).assertEqual(0);
1344                expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1345            }
1346        }
1347        done();
1348    })
1349
1350    /**
1351     * @tc.number Sub_Bms_Framework_Query_AppInfo_2540
1352     * @tc.name testGetAllBundleInfoThereHapDifferentParamPromise
1353     * @tc.desc Test getBundleInfos interfaces with three haps and different param.
1354     */
1355    it('testGetAllBundleInfoThereHapDifferentParamPromise', 0, async function (done) {
1356        let data = await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
1357        for (let i = 0; i < data.length; i++) {
1358            expect(data[i].name.length).assertLarger(0);
1359            expect(data[i].appInfo.name.length).assertLarger(0);
1360            if (data[i].name == NAME1 || data[i].name == NAME2
1361                || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1362                expect(data[i].appInfo.description.length >= 0).assertTrue();
1363                expect(data[i].appInfo.icon.length).assertLarger(0);
1364                expect(data[i].appInfo.label.length).assertLarger(0);
1365            }
1366            if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1367                expect(data[i].appInfo.supportedModes).assertEqual(0);
1368                expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1369            }
1370        }
1371        done();
1372    })
1373
1374    /**
1375     * @tc.number Sub_Bms_Framework_Query_AppInfo_2600
1376     * @tc.name testGetAllBundleInfoThereHapCallback
1377     * @tc.desc Test getBundleInfos interfaces with three haps.
1378     */
1379    it('testGetAllBundleInfoThereHapCallback', 0, async function (done) {
1380        await demo.getAllBundleInfo(demo.BundleFlag.GET_BUNDLE_DEFAULT, (error, data) => {
1381            for (let i = 0; i < data.length; i++) {
1382                expect(data[i].name.length).assertLarger(0);
1383                expect(data[i].appInfo.name.length).assertLarger(0);
1384                if (data[i].name == NAME1 || data[i].name == NAME2
1385                    || data[i].name == NAME3 || data[i].name == NAME4 || data[i].name == NAME5) {
1386                    expect(data[i].appInfo.description.length >= 0).assertTrue();
1387                    expect(data[i].appInfo.icon.length).assertLarger(0);
1388                    expect(data[i].appInfo.label.length).assertLarger(0);
1389                }
1390                if (data[i].appInfo.codePath != FLAGONE && data[i].appInfo.codePath != FLAGTWO) {
1391                    expect(data[i].appInfo.supportedModes).assertEqual(0);
1392                    expect(data[i].appInfo.moduleInfos.length).assertLarger(0);
1393                }
1394            }
1395            done();
1396        })
1397
1398    })
1399
1400    /**
1401     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0500
1402     * @tc.name testQueryAbilityByWantPromise
1403     * @tc.desc Test queryAbilityByWant interfaces with none hap. (by promise)
1404     */
1405    it('testQueryAbilityByWantPromise', 0, async function (done) {
1406        await demo.queryAbilityByWant(
1407            {
1408                "bundleName": "com.example.myapplication1",
1409                "abilityName": "com.example.myapplication1.MainAbility",
1410            }, demo.BundleFlag.GET_ABILITY_INFO_WITH_APPLICATION |
1411            demo.BundleFlag.GET_ABILITY_INFO_WITH_PERMISSION |
1412        demo.BundleFlag.GET_ABILITY_INFO_WITH_METADATA,
1413            userId).then(data => {
1414                expect(data.length).assertLarger(0);
1415                for (let i = 0, len = data.length; i < len; i++) {
1416                    let datainfo = data[i];
1417                    console.info("testQueryAbilityByWantPromise success:" + JSON.stringify(datainfo));
1418                    expect(datainfo.name).assertEqual("com.example.myapplication1.MainAbility");
1419                    expect(datainfo.label).assertEqual("$string:app_name");
1420                    expect(datainfo.description).assertEqual(DESCRIPTION);
1421                    expect(datainfo.icon).assertEqual("$media:icon");
1422                    expect(datainfo.moduleName).assertEqual("entry");
1423                    expect(datainfo.bundleName).assertEqual(NAME1);
1424                    expect(datainfo.type).assertEqual(demo.AbilityType.PAGE);
1425                    expect(datainfo.subType).assertEqual(demo.AbilitySubType.UNSPECIFIED);
1426                    expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.UNSPECIFIED);
1427                    expect(datainfo.launchMode).assertEqual(demo.LaunchMode.STANDARD);
1428                    expect(datainfo.permissions[0]).assertEqual("com.permission.BMS_PERMISSION_CAMERA");
1429                    expect(datainfo.applicationInfo.name).assertEqual(NAME1);
1430                    expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1431                    expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1432                    expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1433                    expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1434                    expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1435                    expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1436                    expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1437                    expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1438                    expect(datainfo.applicationInfo.enabled).assertEqual(true);
1439                    expect(datainfo.metaData.length).assertLarger(0);
1440                    for (let j = 0; j < datainfo.applicationInfo.moduleInfos.length; j++) {
1441                        expect(datainfo.applicationInfo.moduleInfos[j].moduleName).assertEqual("entry");
1442                        expect(datainfo.applicationInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
1443                    }
1444                }
1445                done();
1446            }).catch(err => {
1447                console.info("testQueryAbilityByWantPromise err" + JSON.stringify(err));
1448                expect(err).assertFail();
1449                done();
1450            })
1451    })
1452
1453    /**
1454     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0580
1455     * @tc.name testQueryAbilityByWantCallback
1456     * @tc.desc Test queryAbilityByWant interfaces with none hap. (by callback)
1457     */
1458    it('testQueryAbilityByWantCallback', 0, async function (done) {
1459        demo.queryAbilityByWant(
1460            {
1461                "bundleName": "com.example.myapplication1",
1462                "abilityName": "com.example.myapplication1.MainAbility",
1463            }, demo.BundleFlag.GET_ABILITY_INFO_WITH_APPLICATION |
1464            demo.BundleFlag.GET_ABILITY_INFO_WITH_PERMISSION |
1465        demo.BundleFlag.GET_ABILITY_INFO_WITH_METADATA,
1466            userId, (err, data) => {
1467                if (err) {
1468                    console.info("testQueryAbilityByWantCallback err" + JSON.stringify(err));
1469                    expect(err).assertFail();
1470                    done();
1471                    return;
1472                }
1473                expect(data.length).assertLarger(0);
1474                for (let i = 0, len = data.length; i < len; i++) {
1475                    let datainfo = data[i];
1476                    console.info("testQueryAbilityByWantCallback success:" + JSON.stringify(datainfo));
1477                    expect(datainfo.name).assertEqual("com.example.myapplication1.MainAbility");
1478                    expect(datainfo.label).assertEqual("$string:app_name");
1479                    expect(datainfo.description).assertEqual(DESCRIPTION);
1480                    expect(datainfo.icon).assertEqual("$media:icon");
1481                    expect(datainfo.moduleName).assertEqual("entry");
1482                    expect(datainfo.bundleName).assertEqual(NAME1);
1483                    expect(datainfo.type).assertEqual(demo.AbilityType.PAGE);
1484                    expect(datainfo.subType).assertEqual(demo.AbilitySubType.UNSPECIFIED);
1485                    expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.UNSPECIFIED);
1486                    expect(datainfo.launchMode).assertEqual(demo.LaunchMode.STANDARD);
1487                    expect(datainfo.permissions[0]).assertEqual("com.permission.BMS_PERMISSION_CAMERA");
1488                    expect(datainfo.applicationInfo.name).assertEqual(NAME1);
1489                    expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1490                    expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1491                    expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1492                    expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1493                    expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1494                    expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1495                    expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1496                    expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1497                    expect(datainfo.applicationInfo.enabled).assertEqual(true);
1498                    expect(datainfo.metaData.length).assertLarger(0);
1499                    for (let j = 0; j < datainfo.applicationInfo.moduleInfos.length; j++) {
1500                        expect(datainfo.applicationInfo.moduleInfos[j].moduleName).assertEqual("entry");
1501                        expect(datainfo.applicationInfo.moduleInfos[j].moduleSourceDir).assertEqual('');
1502                    }
1503                }
1504                done();
1505            })
1506    })
1507
1508    /**
1509     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0520
1510     * @tc.name testQueryAbilityByWantTwoHapPromise
1511     * @tc.desc Test queryAbilityByWant interfaces with two haps. (by promise)
1512     */
1513    it('testQueryAbilityByWantTwoHapPromise', 0, async function (done) {
1514        let data = await demo.queryAbilityByWant(
1515            {
1516                "bundleName": "com.example.myapplication2",
1517                "abilityName": "com.example.myapplication1.MainAbility",
1518            }, demo.BundleFlag.GET_ALL_APPLICATION_INFO, userId);
1519        expect(data.length).assertLarger(0);
1520        for (let i = 0, len = data.length; i < len; i++) {
1521            let datainfo = data[i];
1522            console.info("testQueryAbilityByWantTwoHapPromise success:" + JSON.stringify(datainfo));
1523            expect(datainfo.name.length).assertLarger(0);
1524            expect(datainfo.label).assertEqual("$string:app_name");
1525            expect(datainfo.description).assertEqual(DESCRIPTION);
1526            expect(datainfo.icon).assertEqual("$media:icon");
1527            expect(datainfo.moduleName).assertEqual("entry");
1528            expect(datainfo.bundleName).assertEqual(NAME2);
1529            expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.LANDSCAPE);
1530            expect(datainfo.launchMode).assertEqual(demo.LaunchMode.SINGLETON);
1531            expect(datainfo.applicationInfo.name).assertEqual(NAME2);
1532            expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1533            expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1534            expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1535            expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1536            expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1537            expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1538            expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1539            expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1540            expect(datainfo.applicationInfo.enabled).assertEqual(true);
1541            expect(datainfo.applicationInfo.moduleInfos[0].moduleName).assertEqual("entry");
1542            expect(datainfo.applicationInfo.moduleInfos[0].moduleSourceDir).assertEqual('');
1543            expect(datainfo.applicationInfo.moduleInfos[1].moduleName).assertEqual("feature");
1544            expect(datainfo.applicationInfo.moduleInfos[1].moduleSourceDir).assertEqual('');
1545        }
1546        done();
1547    })
1548
1549    /**
1550     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0600
1551     * @tc.name testQueryAbilityByWantTwoHapCallback
1552     * @tc.desc Test queryAbilityByWant interfaces with two haps. (by callback)
1553     */
1554    it('testQueryAbilityByWantTwoHapCallback', 0, async function (done) {
1555        await demo.queryAbilityByWant(
1556            {
1557                "bundleName": "com.example.myapplication2",
1558                "abilityName": "com.example.myapplication1.MainAbility",
1559            }, demo.BundleFlag.GET_ALL_APPLICATION_INFO, userId, (error, data) => {
1560                expect(data.length).assertLarger(0);
1561                for (let i = 0, len = data.length; i < len; i++) {
1562                    let datainfo = data[i];
1563                    console.info("testQueryAbilityByWantTwoHapCallback success:" + JSON.stringify(datainfo));
1564                    expect(datainfo.name.length).assertLarger(0);
1565                    expect(datainfo.label).assertEqual("$string:app_name");
1566                    expect(datainfo.description).assertEqual(DESCRIPTION);
1567                    expect(datainfo.icon).assertEqual("$media:icon");
1568                    expect(datainfo.moduleName).assertEqual("entry");
1569                    expect(datainfo.bundleName).assertEqual(NAME2);
1570                    expect(datainfo.orientation).assertEqual(1);
1571                    expect(datainfo.launchMode).assertEqual(demo.LaunchMode.SINGLETON);
1572                    expect(datainfo.applicationInfo.name).assertEqual(NAME2);
1573                    expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1574                    expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1575                    expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1576                    expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1577                    expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1578                    expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1579                    expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1580                    expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1581                    expect(datainfo.applicationInfo.enabled).assertEqual(true);
1582                    expect(datainfo.applicationInfo.moduleInfos[0].moduleName).assertEqual("entry");
1583                    expect(datainfo.applicationInfo.moduleInfos[0].moduleSourceDir).assertEqual('');
1584                    expect(datainfo.applicationInfo.moduleInfos[1].moduleName).assertEqual("feature");
1585                    expect(datainfo.applicationInfo.moduleInfos[1].moduleSourceDir).assertEqual('');
1586                }
1587                done();
1588            })
1589    })
1590
1591    /**
1592     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0540
1593     * @tc.name testQueryAbilityByWantThereHapPromise
1594     * @tc.desc Test queryAbilityByWant interfaces with three haps. (by promise)
1595     */
1596    it('testQueryAbilityByWantThereHapPromise', 0, async function (done) {
1597        await demo.queryAbilityByWant({
1598            entities: ['entity.system.home', 'entitiesentities']
1599        }, 4, userId).then(data => {
1600            checkAbilityInfo0500(data)
1601            done();
1602        }).catch(err => {
1603            console.info("testQueryAbilityByWantThereHapPromise err" + JSON.stringify(err));
1604            expect(err).assertFail();
1605            done();
1606        })
1607    })
1608
1609    function checkAbilityInfo0500(data) {
1610        let queryResultCount = 0;
1611        for (let i = 0, len = data.length; i < len; i++) {
1612            let datainfo = data[i];
1613            console.info("testQueryAbilityByWantThereHapPromise success:" + JSON.stringify(datainfo));
1614            if (datainfo.bundleName == NAME3) {
1615                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1616                expect(datainfo.label).assertEqual("$string:app_name");
1617                expect(datainfo.description).assertEqual(DESCRIPTION);
1618                expect(datainfo.icon).assertEqual("$media:icon");
1619                expect(datainfo.moduleName).assertEqual("entry");
1620                expect(datainfo.bundleName).assertEqual(NAME3);
1621                expect(datainfo.type).assertEqual(demo.AbilityType.PAGE);
1622                expect(datainfo.applicationInfo.name).assertEqual(NAME3);
1623                expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1624                expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1625                expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1626                expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1627                expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1628                expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1629                expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1630                expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1631                expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.PORTRAIT);
1632                expect(datainfo.orientation).assertEqual(2);
1633                expect(datainfo.applicationInfo.enabled).assertEqual(true);
1634                for (let j = 0; j < datainfo.applicationInfo.moduleInfos.length; j++) {
1635                    expect(datainfo.applicationInfo.moduleInfos[j].moduleName).assertEqual("entry");
1636                }
1637                queryResultCount++;
1638            }
1639            if (datainfo.bundleName == NAME4) {
1640                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1641                expect(datainfo.type).assertEqual(demo.AbilityType.PAGE);
1642                expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.UNSPECIFIED);
1643                expect(datainfo.bundleName).assertEqual(NAME4);
1644                queryResultCount++;
1645            }
1646            if (datainfo.bundleName == NAME5) {
1647                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1648                expect(datainfo.type).assertEqual(demo.AbilityType.PAGE);
1649                expect(datainfo.bundleName).assertEqual(NAME5);
1650                expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.FOLLOW_RECENT);
1651                queryResultCount++;
1652            }
1653        }
1654        expect(queryResultCount).assertEqual(3);
1655    }
1656
1657    /**
1658    * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0620
1659    * @tc.name testQueryAbilityByWantThereHapCallback
1660    * @tc.desc Test queryAbilityByWant interfaces with three haps. (by callback)
1661    */
1662    it('testQueryAbilityByWantThereHapCallback', 0, async function (done) {
1663        await demo.queryAbilityByWant(
1664            {
1665                entities: ['entity.system.home', 'entitiesentities']
1666            }, 4, userId, (err, data) => {
1667                if (err) {
1668                    console.info("testQueryAbilityByWantThereHapCallback err" + JSON.stringify(err));
1669                    expect(err).assertFail();
1670                    done();
1671                    return;
1672                }
1673                checkAbilityInfo0600(data);
1674                done();
1675            })
1676    })
1677
1678    function checkAbilityInfo0600(data) {
1679        let queryResultCount = 0;
1680        for (let i = 0, len = data.length; i < len; i++) {
1681            let datainfo = data[i];
1682            console.info("testQueryAbilityByWantThereHapCallback success:" + JSON.stringify(datainfo));
1683            if (datainfo.bundleName == NAME3) {
1684                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1685                expect(datainfo.label).assertEqual("$string:app_name");
1686                expect(datainfo.description).assertEqual(DESCRIPTION);
1687                expect(datainfo.icon).assertEqual("$media:icon");
1688                expect(datainfo.moduleName).assertEqual("entry");
1689                expect(datainfo.bundleName).assertEqual(NAME3);
1690                expect(datainfo.applicationInfo.name).assertEqual(NAME3);
1691                expect(datainfo.applicationInfo.description).assertEqual(APPLICATION_DESCRIPTION);
1692                expect(datainfo.applicationInfo.descriptionId >= 0).assertTrue();
1693                expect(datainfo.applicationInfo.icon).assertEqual("$media:icon");
1694                expect(datainfo.applicationInfo.iconId >= 0).assertTrue();
1695                expect(datainfo.applicationInfo.label).assertEqual("$string:app_name");
1696                expect(datainfo.applicationInfo.labelId >= 0).assertTrue();
1697                expect(datainfo.applicationInfo.systemApp).assertEqual(false);
1698                expect(datainfo.applicationInfo.supportedModes).assertEqual(0);
1699                expect(datainfo.orientation).assertEqual(2);
1700                expect(datainfo.applicationInfo.enabled).assertEqual(true);
1701                for (let j = 0; j < datainfo.applicationInfo.moduleInfos.length; j++) {
1702                    expect(datainfo.applicationInfo.moduleInfos[j].moduleName).assertEqual("entry");
1703                }
1704                queryResultCount++;
1705            }
1706            if (datainfo.bundleName == NAME4) {
1707                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1708                expect(datainfo.bundleName).assertEqual(NAME4);
1709                expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.UNSPECIFIED);
1710                queryResultCount++;
1711            }
1712            if (datainfo.bundleName == NAME5) {
1713                expect(datainfo.name).assertEqual("com.example.myapplication.MainAbility");
1714                expect(datainfo.bundleName).assertEqual(NAME5);
1715                expect(datainfo.orientation).assertEqual(demo.DisplayOrientation.FOLLOW_RECENT);
1716                queryResultCount++;
1717            }
1718        }
1719        expect(queryResultCount).assertEqual(3);
1720    }
1721
1722    /**
1723     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0640
1724     * @tc.name testQueryAbilityByWantNotExistHapPromise
1725     * @tc.desc Test queryAbilityByWant interfaces with one hap. (by promise)
1726     */
1727    it('testQueryAbilityByWantNotExistHapPromise', 0, async function (done) {
1728        await demo.queryAbilityByWant(
1729            {
1730                "bundleName": "wrong name",
1731                "abilityName": "com.example.myapplication1.MainAbility"
1732            }, demo.BundleFlag.GET_BUNDLE_DEFAULT, userId).then(datainfo => {
1733                console.info("testQueryAbilityByWantNotExistHapPromise dataInfo : ===========" + datainfo);
1734                expect(datainfo).assertFail();
1735                done();
1736            }).catch(err => {
1737                console.info("testQueryAbilityByWantNotExistHapPromise err : ===========" + err);
1738                expect(err).assertEqual(1);
1739                done();
1740            })
1741    })
1742
1743    /**
1744     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0660
1745     * @tc.name testQueryAbilityByWantNotExistHapCallback
1746     * @tc.desc Test queryAbilityByWant interfaces with one hap. (by callback)
1747     */
1748    it('testQueryAbilityByWantNotExistHapCallback', 0, async function (done) {
1749        await demo.queryAbilityByWant(
1750            {
1751                "bundleName": "wrong name",
1752                "abilityName": "com.example.myapplication1.MainAbility"
1753            }, demo.BundleFlag.GET_BUNDLE_DEFAULT, userId, (err, datainfo) => {
1754                if (err) {
1755                    console.info("testQueryAbilityByWantNotExistHapCallback err : ===========" + err);
1756                    expect(err).assertEqual(1);
1757                    done();
1758                    return;
1759                }
1760                console.info("testQueryAbilityByWantNotExistHapCallback dataInfo : ===========" + datainfo);
1761                expect(datainfo).assertFail();
1762                done();
1763            })
1764    })
1765
1766    /**
1767    * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0560
1768    * @tc.name testQueryAbilityByWantSystemHapPromise
1769    * @tc.desc Test queryAbilityByWant interfaces with system hap. (by promise)
1770    */
1771    it('testQueryAbilityByWantSystemHapPromise', 0, async function (done) {
1772        await demo.queryAbilityByWant(
1773            {
1774                bundleName: "wrong name",
1775                abilityName: "wrong name",
1776            }, 0, userId).then(datainfo => {
1777                console.info("testQueryAbilityByWantSystemHapPromise dataInfo : ===========" + datainfo);
1778                expect(datainfo.length).assertLarger(0);
1779                done();
1780            }).catch(err => {
1781                console.info("testQueryAbilityByWantSystemHapPromise err : ===========" + err);
1782                expect(err).assertEqual(1);
1783                done();
1784            })
1785    })
1786
1787    /**
1788     * @tc.number Sub_Bms_Framework_Query_AbilityInfo_0700
1789     * @tc.name testQueryAbilityByWantSystemHapCallback
1790     * @tc.desc Test queryAbilityByWant interfaces with system hap. (by callback)
1791     */
1792    it('testQueryAbilityByWantSystemHapCallback', 0, async function (done) {
1793        demo.queryAbilityByWant(
1794            {
1795                bundleName: "wrong name",
1796                abilityName: "wrong name",
1797            }, 0, userId, OnReceiveEvent);
1798
1799        function OnReceiveEvent(err, datainfo) {
1800            console.info("testQueryAbilityByWantSystemHapCallback err : ===========" + err);
1801            console.info("testQueryAbilityByWantSystemHapCallback dataInfo : ===========" + datainfo);
1802            expect(err).assertEqual(1);
1803            expect(datainfo.length).assertLarger(0);
1804            done();
1805        }
1806    })
1807
1808    /**
1809    * @tc.number installErrCodeTest_0100
1810    * @tc.name InstallErrorCode::STATUS_FAILED_NO_SPACE_LEFT
1811    * @tc.desc Test install errcode STATUS_FAILED_NO_SPACE_LEFT.
1812    */
1813    it('installErrCodeTest_0100', 0, async function (done) {
1814        expect(demo.InstallErrorCode.SUCCESS).assertEqual(0);
1815        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE).assertEqual(1);
1816        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_ABORTED).assertEqual(2);
1817        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_INVALID).assertEqual(3);
1818        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_CONFLICT).assertEqual(4);
1819        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_STORAGE).assertEqual(5);
1820        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_INCOMPATIBLE).assertEqual(6);
1821        expect(demo.InstallErrorCode.STATUS_UNINSTALL_FAILURE).assertEqual(7);
1822        expect(demo.InstallErrorCode.STATUS_UNINSTALL_FAILURE_BLOCKED).assertEqual(8);
1823        expect(demo.InstallErrorCode.STATUS_UNINSTALL_FAILURE_ABORTED).assertEqual(9);
1824        expect(demo.InstallErrorCode.STATUS_UNINSTALL_FAILURE_CONFLICT).assertEqual(10);
1825        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_DOWNLOAD_TIMEOUT).assertEqual(11);
1826        expect(demo.InstallErrorCode.STATUS_INSTALL_FAILURE_DOWNLOAD_FAILED).assertEqual(12);
1827        expect(demo.InstallErrorCode.STATUS_RECOVER_FAILURE_INVALID).assertEqual(13);
1828        expect(demo.InstallErrorCode.STATUS_ABILITY_NOT_FOUND).assertEqual(64);
1829        expect(demo.InstallErrorCode.STATUS_BMS_SERVICE_ERROR).assertEqual(65);
1830        expect(demo.InstallErrorCode.STATUS_FAILED_NO_SPACE_LEFT).assertEqual(66);
1831        expect(demo.InstallErrorCode.STATUS_GRANT_REQUEST_PERMISSIONS_FAILED).assertEqual(67);
1832        expect(demo.InstallErrorCode.STATUS_INSTALL_PERMISSION_DENIED).assertEqual(68);
1833        expect(demo.InstallErrorCode.STATUS_UNINSTALL_PERMISSION_DENIED).assertEqual(69);
1834        done();
1835    })
1836
1837    /**
1838    * @tc.number AbilityTypeTest_0100
1839    * @tc.name InstallErrorCode::STATUS_FAILED_NO_SPACE_LEFT
1840    * @tc.desc Test install errcode STATUS_FAILED_NO_SPACE_LEFT.
1841    */
1842    it('AbilityTypeTest_0100', 0, async function (done) {
1843        expect(demo.AbilitySubType.CA).assertEqual(1);
1844        expect(demo.AbilityType.UNKNOWN).assertEqual(0);
1845        expect(demo.AbilityType.SERVICE).assertEqual(2);
1846        expect(demo.AbilityType.DATA).assertEqual(3);
1847        expect(demo.ColorMode.AUTO_MODE).assertEqual(-1);
1848        expect(demo.ColorMode.DARK_MODE).assertEqual(0);
1849        expect(demo.ColorMode.LIGHT_MODE).assertEqual(1);
1850        done();
1851    })
1852})
1853
1854}
1855