1/*
2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import osaccount from '@ohos.account.osAccount'
16import bundle from '@ohos.bundle'
17import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
18
19export default function ActsOsAccountThirdPartyTest_third_2() {
20    describe('ActsOsAccountThirdPartyTest_third_2', function () {
21        afterEach(async function (done) {
22            console.info("====>afterEach start====");
23            var osAccountManager = osaccount.getAccountManager();
24            var accounts = await osAccountManager.queryAllCreatedOsAccounts()
25            for (let i = 0; i < accounts.length; i++) {
26                var localId = accounts[i].localId
27                if (localId != 100) {
28                    await osAccountManager.removeOsAccount(localId)
29                }
30            }
31            done();
32        })
33        /*
34        * @tc.number  : ActsOsAccountGetIdFormUid_0100
35        * @tc.name    : getOsAccountLocalIdFromUid callback
36        * @tc.desc    : Verify that the user localId is obtained by uid
37        */
38        it('ActsOsAccountGetIdFormUid_0100', 0, async function (done) {
39            console.info("====>ActsOsAccountGetIdFormUid_0100 start====");
40            var osAccountManager = osaccount.getAccountManager();
41            var testLocalId = await osAccountManager.getOsAccountLocalIdFromProcess();
42            console.info("====>testLocalId:" + testLocalId)
43            console.info("====>get AccountManager finish====");
44            var bundleName = "com.example.actsosaccountthirdpartytest";
45            var bundleInfo = await bundle.getBundleInfo(bundleName, bundle.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
46            var uid = bundleInfo.uid;
47            console.info("====>obtained uid:" + uid);
48            osAccountManager.getOsAccountLocalIdFromUid(uid, (err, localId) => {
49                console.info("====>get localId err: " + JSON.stringify(err));
50                console.info("====>localId obtained by uid:" + localId);
51                expect(err).assertEqual(null);
52                expect(localId).assertEqual(testLocalId);
53                console.info("====>ActsOsAccountGetIdFormUid_0100 end====");
54                done();
55            });
56        });
57
58        /*
59        * @tc.number  : ActsOsAccountGetIdFormUid_0200
60        * @tc.name    : getOsAccountLocalIdFromUid promise
61        * @tc.desc    : Verify that the user localId is obtained by uid
62        */
63        it('ActsOsAccountGetIdFormUid_0200', 0, async function (done) {
64            console.info("====>ActsOsAccountGetIdFormUid_0200 start====");
65            var osAccountManager = osaccount.getAccountManager();
66            var testLocalId = await osAccountManager.getOsAccountLocalIdFromProcess();
67            console.info("====>get AccountManager finish====");
68            var bundleName = "com.example.actsosaccountthirdpartytest";
69            var bundleInfo = await bundle.getBundleInfo(bundleName, bundle.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
70            var uid = bundleInfo.uid;
71            console.info("====>obtained uid:" + uid);
72            var localId = await osAccountManager.getOsAccountLocalIdFromUid(uid);
73            console.info("====>localId obtained by uid:" + localId);
74            expect(localId).assertEqual(testLocalId);
75            console.info("====>ActsOsAccountGetIdFormUid_0200 end====");
76            done();
77        });
78
79        /*
80        * @tc.number  : ActsOsAccountGetIdFormUid_0300
81        * @tc.name    : getOsAccountLocalIdFromUid callback
82        * @tc.desc    : Authentication failed to query user by uid -1
83        */
84        it('ActsOsAccountGetIdFormUid_0300', 0, async function (done) {
85            console.info("====>ActsOsAccountGetIdFormUid_0300 start====");
86            var osAccountManager = osaccount.getAccountManager();
87            console.info("====>get AccountManager finish====");
88            var incorrectUid = -1;
89            osAccountManager.getOsAccountLocalIdFromUid(incorrectUid, (err, localId) => {
90                console.info("====>get localId err: " + JSON.stringify(err));
91                console.info("====>localId obtained by uid:" + localId);
92                expect(err.code != 0).assertEqual(true);
93                expect(localId).assertEqual(null);
94                console.info("====>ActsOsAccountGetIdFormUid_0300 end====");
95                done();
96            });
97        });
98
99        /*
100        * @tc.number  : ActsOsAccountGetIdFormUid_0400
101        * @tc.name    : getOsAccountLocalIdFromUid promise
102        * @tc.desc    : Authentication failed to query user by uid -1
103        */
104        it('ActsOsAccountGetIdFormUid_0400', 0, async function (done) {
105            console.info("====>ActsOsAccountGetIdFormUid_0400 start====");
106            var osAccountManager = osaccount.getAccountManager();
107            console.info("====>get AccountManager finish====");
108            var incorrectUid = -1;
109            try {
110                await osAccountManager.getOsAccountLocalIdFromUid(incorrectUid);
111            } catch (err) {
112                console.info("====>get localId by uid err:" + JSON.stringify(err));
113                expect(err.code != 0).assertEqual(true);
114                console.info("====>ActsOsAccountGetIdFormUid_0400 end====");
115                done();
116            }
117        });
118
119        /*
120        * @tc.number  : ActsOsAccountGetIdFormUid_0500
121        * @tc.name    : getOsAccountLocalIdFromUid callback
122        * @tc.desc    : Authentication failed to query user by uid 2147483648
123        */
124        it('ActsOsAccountGetIdFormUid_0500', 0, async function (done) {
125            console.info("====>ActsOsAccountGetIdFormUid_0500 start====");
126            var osAccountManager = osaccount.getAccountManager();
127            console.info("====>get AccountManager finish====");
128            var incorrectUid = 2147483648;
129            osAccountManager.getOsAccountLocalIdFromUid(incorrectUid, (err, localId) => {
130                console.info("====>get localId err: " + JSON.stringify(err));
131                console.info("====>localId obtained by uid:" + localId);
132                expect(err.code != 0).assertEqual(true);
133                expect(localId).assertEqual(null);
134                console.info("====>ActsOsAccountGetIdFormUid_0500 end====");
135                done();
136            });
137        });
138
139        /*
140        * @tc.number  : ActsOsAccountGetIdFormUid_0600
141        * @tc.name    : getOsAccountLocalIdFromUid promise
142        * @tc.desc    : Authentication failed to query user by uid 2147483648
143        */
144        it('ActsOsAccountGetIdFormUid_0600', 0, async function (done) {
145            console.info("====>ActsOsAccountGetIdFormUid_0600 start====");
146            var osAccountManager = osaccount.getAccountManager();
147            console.info("====>get AccountManager finish====");
148            var incorrectUid = 2147483648;
149            try {
150                await osAccountManager.getOsAccountLocalIdFromUid(incorrectUid);
151            } catch (err) {
152                console.info("====>get localId by uid err:" + JSON.stringify(err));
153                expect(err.code != 0).assertEqual(true);
154                console.info("====>ActsOsAccountGetIdFormUid_0600 end====");
155                done();
156            }
157        });
158
159        /*
160        * @tc.number  : ActsOsAccountGetIdFormProcess_0100
161        * @tc.name    : getOsAccountLocalIdFromProcess callback
162        * @tc.desc    : Verify that the user localId obtained from the current process uid
163        */
164        it('ActsOsAccountGetIdFormProcess_0100', 0, async function (done) {
165            console.info("====>ActsOsAccountGetIdFormProcess_0100 start====");
166            var osAccountManager = osaccount.getAccountManager();
167            var bundleName = "com.example.actsosaccountthirdpartytest";
168            var bundleInfo = await bundle.getBundleInfo(bundleName, bundle.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
169            var uid = bundleInfo.uid;
170            var testLocalId = await osAccountManager.getOsAccountLocalIdFromUid(uid)
171            console.info("====>get AccountManager finish====");
172            osAccountManager.getOsAccountLocalIdFromProcess((err, localId) => {
173                console.info("====>get localId err: " + JSON.stringify(err));
174                console.info("====>localId obtained by process:" + localId);
175                expect(err).assertEqual(null);
176                expect(localId).assertEqual(testLocalId);
177                console.info("====>ActsOsAccountGetIdFormProcess_0100 end====");
178                done();
179            });
180        });
181
182        /*
183        * @tc.number  : ActsOsAccountGetIdFormProcess_0200
184        * @tc.name    : getOsAccountLocalIdFromProcess promise
185        * @tc.desc    : Verify that the user localId obtained from the current process uid
186        */
187        it('ActsOsAccountGetIdFormProcess_0200', 0, async function (done) {
188            console.info("====>ActsOsAccountGetIdFormProcess_0200 start====");
189            var osAccountManager = osaccount.getAccountManager();
190            var bundleName = "com.example.actsosaccountthirdpartytest";
191            var bundleInfo = await bundle.getBundleInfo(bundleName, bundle.BundleFlag.GET_BUNDLE_WITH_ABILITIES);
192            var uid = bundleInfo.uid;
193            var testLocalId = await osAccountManager.getOsAccountLocalIdFromUid(uid)
194            console.info("====>testLocalId obtained by process:" + testLocalId)
195            console.info("====>get AccountManager finish====");
196            var localId = await osAccountManager.getOsAccountLocalIdFromProcess();
197            console.info("====>localId obtained by process:" + localId);
198            expect(localId).assertEqual(testLocalId);
199            console.info("====>ActsOsAccountGetIdFormProcess_0200 end====");
200            done();
201        });
202
203        /*
204        * @tc.number  : ActsOsAccountGetTypeFormProcess_0100
205        * @tc.name    : getOsAccountTypeFromProcess callback
206        * @tc.desc    : Verify that the user type obtained from the current process uid
207        */
208        it('ActsOsAccountGetTypeFormProcess_0100', 0, async function (done) {
209            console.info("====>ActsOsAccountGetTypeFormProcess_0100 start====");
210            var osAccountManager = osaccount.getAccountManager();
211            console.info("====>get AccountManager finish====");
212            osAccountManager.getOsAccountTypeFromProcess((err, accountType) => {
213                console.info("====>get type err: " + JSON.stringify(err));
214                console.info("====>type obtained by process:" + JSON.stringify(accountType));
215                expect(err).assertEqual(null);
216                expect(accountType).assertEqual(0);
217                console.info("====>ActsOsAccountGetTypeFormProcess_0100 end====");
218                done();
219            });
220        });
221
222        /*
223        * @tc.number  : ActsOsAccountGetTypeFormProcess_0200
224        * @tc.name    : getOsAccountTypeFromProcess promise
225        * @tc.desc    : Verify that the user type obtained from the current process uid
226        */
227        it('ActsOsAccountGetTypeFormProcess_0200', 0, async function (done) {
228            console.info("====>ActsOsAccountGetTypeFormProcess_0200 start====");
229            var osAccountManager = osaccount.getAccountManager();
230            console.info("====>get AccountManager finish====");
231            var accountType = await osAccountManager.getOsAccountTypeFromProcess();
232            console.info("====>type obtained by process:" + JSON.stringify(accountType));
233            expect(accountType).assertEqual(0);
234            console.info("====>ActsOsAccountGetTypeFormProcess_0200 end====");
235            done();
236        });
237
238        /*
239        * @tc.number  : ActsOsAccountLocalIdSerial_0100
240        * @tc.name    : getSerialNumberByOsAccountLocalId callback
241        * @tc.desc    : Verify query serialNumber by 100 user and query 100 user by serialNumber
242        */
243        it('ActsOsAccountLocalIdSerial_0100', 0, async function (done) {
244            console.info("====>ActsOsAccountLocalIdSerial_0100 start====");
245            var osAccountManager = osaccount.getAccountManager();
246            var testLocalId = await osAccountManager.getOsAccountLocalIdFromProcess();
247            console.info("====>get AccountManager finish====");
248            osAccountManager.getSerialNumberByOsAccountLocalId(testLocalId, (err, serialNumber) => {
249                console.info("====>ger serialNumber err:" + JSON.stringify(err));
250                console.info("====>get serialNumber:" + serialNumber + " by localId: 100");
251                expect(err).assertEqual(null);
252                var serialNumberStr = serialNumber.toString();
253                var serialIntercept = serialNumberStr.substring(8);
254                console.info("====>truncate the last eight characters: " + serialIntercept);
255                expect(serialIntercept).assertEqual("00000001");
256                osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber, (err, localId) => {
257                    console.info("====>ger localId err:" + JSON.stringify(err));
258                    console.info("====>get localId:" + localId + " by serialNumber: " + serialNumber);
259                    expect(err).assertEqual(null);
260                    expect(localId).assertEqual(testLocalId);
261                    console.info("====>ActsOsAccountLocalIdSerial_0100 end====");
262                    done();
263                })
264            })
265        });
266
267        /*
268        * @tc.number  : ActsOsAccountLocalIdSerial_0200
269        * @tc.name    : getSerialNumberByOsAccountLocalId promise
270        * @tc.desc    : Verify query serialNumber by 100 user and query 100 user by serialNumber
271        */
272        it('ActsOsAccountLocalIdSerial_0200', 0, async function (done) {
273            console.info("====>ActsOsAccountLocalIdSerial_0200 start====");
274            var osAccountManager = osaccount.getAccountManager();
275            var testLocalId = await osAccountManager.getOsAccountLocalIdFromProcess();
276            console.info("====>get AccountManager finish====");
277            var serialNumber = await osAccountManager.getSerialNumberByOsAccountLocalId(testLocalId);
278            console.info("====>get serialNumber:" + serialNumber + " by localId: 100");
279            var serialNumberStr = serialNumber.toString();
280            var serialIntercept = serialNumberStr.substring(8);
281            console.info("====>truncate the last eight characters: " + serialIntercept);
282            expect(serialIntercept).assertEqual("00000001");
283            var localId = await osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber);
284            console.info("====>get localId:" + localId + " by serialNumber: " + serialNumber);
285            expect(localId).assertEqual(testLocalId);
286            console.info("====>ActsOsAccountLocalIdSerial_0200 end====");
287            done();
288        });
289
290        /*
291        * @tc.number  : ActsOsAccountLocalIdSerial_0300
292        * @tc.name    : getOsAccountLocalIdBySerialNumber callback
293        * @tc.desc    : Verify query serialNumber by 0 user and query 0 user by serialNumber
294        */
295        it('ActsOsAccountLocalIdSerial_0300', 0, async function (done) {
296            console.info("====>ActsOsAccountLocalIdSerial_0300 start====");
297            var osAccountManager = osaccount.getAccountManager();
298            console.info("====>get AccountManager finish====");
299            osAccountManager.getSerialNumberByOsAccountLocalId(0, (err, serialNumber) => {
300                console.info("====>ger serialNumber err:" + JSON.stringify(err));
301                console.info("====>get serialNumber:" + serialNumber + " by localId: 0");
302                expect(err).assertEqual(null);
303                var serialNumberStr = serialNumber.toString();
304                var serialIntercept = serialNumberStr.substring(8);
305                console.info("====>truncate the last eight characters: " + serialIntercept);
306                expect(serialIntercept).assertEqual("00000000");
307                osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber, (err, localId) => {
308                    console.info("====>ger localId err:" + JSON.stringify(err));
309                    console.info("====>get localId:" + localId + " by serialNumber: " + serialNumber);
310                    expect(err).assertEqual(null);
311                    expect(localId).assertEqual(0);
312                    console.info("====>ActsOsAccountLocalIdSerial_0300 end====");
313                    done();
314                })
315            })
316        });
317
318        /*
319        * @tc.number  : ActsOsAccountLocalIdSerial_0400
320        * @tc.name    : getOsAccountLocalIdBySerialNumber promise
321        * @tc.desc    : Verify query serialNumber by 0 user and query 0 user by serialNumber
322        */
323        it('ActsOsAccountLocalIdSerial_0400', 0, async function (done) {
324            console.info("====>ActsOsAccountLocalIdSerial_0400 start====");
325            var osAccountManager = osaccount.getAccountManager();
326            console.info("====>get AccountManager finish====");
327            var serialNumber = await osAccountManager.getSerialNumberByOsAccountLocalId(0);
328            console.info("====>get serialNumber:" + serialNumber + " by localId: 0");
329            var serialNumberStr = serialNumber.toString();
330            var serialIntercept = serialNumberStr.substring(8);
331            console.info("====>truncate the last eight characters: " + serialIntercept);
332            expect(serialIntercept).assertEqual("00000000");
333            var localId = await osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber);
334            console.info("====>get localId:" + localId + " by serialNumber: " + serialNumber);
335            expect(localId).assertEqual(0);
336            console.info("====>ActsOsAccountLocalIdSerial_0400 end====");
337            done();
338        });
339
340        /*
341        * @tc.number  : ActsOsAccountLocalIdSerial_0500
342        * @tc.name    : getSerialNumberByOsAccountLocalId callback
343        * @tc.desc    : Verify the query for the newly created user serialNumber and query the owning user through the
344        *               serialNumber
345        */
346        it('ActsOsAccountLocalIdSerial_0500', 0, async function (done) {
347            console.info("====>ActsOsAccountLocalIdSerial_0500 start====");
348            var osAccountManager = osaccount.getAccountManager();
349            console.info("====>get AccountManager finish====");
350            var localId = 100;
351            let isEnable = await osAccountManager.checkMultiOsAccountEnabled();
352            if (isEnable != true) {
353                console.info("====>ActsOsAccountLocalIdSerial_0500 not support multiple osaccouts====");
354                osAccountManager.getSerialNumberByOsAccountLocalId(localId, (err, serialNumber) => {
355                    console.info("====>queryOsAccountById err:" + JSON.stringify(err));
356                    console.info("====>get serialNumber:" + serialNumber + " by localId: " + localId);
357                    expect(err).assertEqual(null);
358                    osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber, (err, getlocalId) => {
359                        console.info("====>ger localId err:" + JSON.stringify(err));
360                        console.info("====>get localId:" + getlocalId + " by serialNumber: " + serialNumber);
361                        expect(err).assertEqual(null);
362                        expect(getlocalId).assertEqual(localId);
363                        console.info("====>ActsOsAccountLocalIdSerial_0500 end====");
364                        done();
365                    })
366                })
367                return;
368            }
369            osAccountManager.createOsAccount("osAccountNameIdSerialA", osaccount.OsAccountType.NORMAL, (err, data) => {
370                console.info("====>create os account err: " + JSON.stringify(err));
371                console.info("====>create os account OsAccountInfo: " + JSON.stringify(data));
372                expect(err).assertEqual(null);
373                expect(data.localName).assertEqual("osAccountNameIdSerialA");
374                expect(data.domainInfo.accountName == "").assertEqual(true)
375                expect(data.type).assertEqual(1);
376                expect(data.constraints.length > 0).assertEqual(true);
377                expect(data.isVerified).assertEqual(false);
378                expect(data.isUnlocked).assertEqual(false);
379                expect(data.distributedInfo.name != null).assertEqual(true);
380                expect(data.domainInfo.domain == "").assertEqual(true);
381                expect(data.photo == "").assertEqual(true);
382                expect(data.createTime != "").assertEqual(true);
383                expect(data.lastLoginTime >= 0).assertEqual(true);
384                expect(data.serialNumber.toString().length == 16).assertEqual(true);
385                expect(data.isActived).assertEqual(false);
386                expect(data.isActivated).assertEqual(false);
387                expect(data.isCreateCompleted).assertEqual(true)
388                localId = data.localId;
389                osAccountManager.getSerialNumberByOsAccountLocalId(localId, (err, serialNumber) => {
390                    console.info("====>queryOsAccountById err:" + JSON.stringify(err));
391                    console.info("====>get serialNumber:" + serialNumber + " by localId: " + localId);
392                    expect(err).assertEqual(null);
393                    osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber, (err, getlocalId) => {
394                        console.info("====>ger localId err:" + JSON.stringify(err));
395                        console.info("====>get localId:" + getlocalId + " by serialNumber: " + serialNumber);
396                        expect(err).assertEqual(null);
397                        expect(getlocalId).assertEqual(localId);
398                        osAccountManager.removeOsAccount(localId, (err) => {
399                            console.info("====>remove localId: " + localId + " err:" + JSON.stringify(err));
400                            expect(err).assertEqual(null);
401                            console.info("====>ActsOsAccountLocalIdSerial_0500 end====");
402                            done();
403                        })
404                    })
405                })
406            })
407        });
408
409        /*
410        * @tc.number  : ActsOsAccountLocalIdSerial_0600
411        * @tc.name    : getOsAccountLocalIdBySerialNumber promise
412        * @tc.desc    : Verify the query for the newly created user serialNumber and query the owning user through the
413        *               serialNumber
414        */
415        it('ActsOsAccountLocalIdSerial_0600', 0, async function (done) {
416            console.info("====>ActsOsAccountLocalIdSerial_0600 start====");
417            var osAccountManager = osaccount.getAccountManager();
418            console.info("====>get AccountManager finish====");
419            var localId = 100;
420            let isEnable = await osAccountManager.checkMultiOsAccountEnabled();
421            if (isEnable != true) {
422                console.info("====>ActsOsAccountLocalIdSerial_0600 not support multiple osaccouts====");
423                var serialNumber = await osAccountManager.getSerialNumberByOsAccountLocalId(localId);
424                console.info("====>get serialNumber:" + serialNumber + " by localId: " + localId);
425                var getlocalId = await osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber);
426                console.info("====>get localId:" + getlocalId + " by serialNumber: " + serialNumber);
427                expect(getlocalId).assertEqual(localId);
428                console.info("====>ActsOsAccountLocalIdSerial_0600 end====");
429                done();
430                return;
431            }
432            var OsAccountInfo = await osAccountManager.createOsAccount("accountIdSerialB", osaccount.OsAccountType.GUEST);
433            console.info("====>create os account OsAccountInfo: " + JSON.stringify(OsAccountInfo));
434            expect(OsAccountInfo.localName).assertEqual("accountIdSerialB");
435            localId = OsAccountInfo.localId;
436            var serialNumber = await osAccountManager.getSerialNumberByOsAccountLocalId(localId);
437            console.info("====>get serialNumber:" + serialNumber + " by localId: " + localId);
438            var getlocalId = await osAccountManager.getOsAccountLocalIdBySerialNumber(serialNumber);
439            console.info("====>get localId:" + getlocalId + " by serialNumber: " + serialNumber);
440            expect(getlocalId).assertEqual(localId);
441            await osAccountManager.removeOsAccount(localId);
442            console.info("====>ActsOsAccountLocalIdSerial_0600 end====");
443            done();
444        });
445
446        /*
447        * @tc.number  : ActsOsAccountGetCount_0100
448        * @tc.name    : getCreatedOsAccountsCount callback
449        * @tc.desc    : Verify to obtain the number os all os accounts created
450        */
451        it('ActsOsAccountGetCount_0100', 0, async function (done) {
452            console.info("====>ActsOsAccountGetCount_0100 start====");
453            var osAccountManager = osaccount.getAccountManager();
454            console.info("====>get AccountManager finish====");
455            var obtainCount = 0;
456            var localIdFir;
457            let isEnable = await osAccountManager.checkMultiOsAccountEnabled();
458            if (isEnable != true) {
459                console.info("====>ActsOsAccountGetCount_0100 not support multiple osaccouts====");
460                osAccountManager.getCreatedOsAccountsCount((err, data) => {
461                    console.info("====>obtains the number of all os accounts created err:" + JSON.stringify(err));
462                    console.info("====>obtains the number of all os accounts created data:" + data);
463                    expect(err).assertEqual(null);
464                    expect(data).assertEqual(1);
465                    console.info("====>ActsOsAccountGetCount_0100 end====");
466                    done();
467                })
468                return;
469            }
470            osAccountManager.getCreatedOsAccountsCount((err, data) => {
471                console.info("====>obtains the number of all os accounts created err:" + JSON.stringify(err));
472                console.info("====>obtains the number of all os accounts created data:" + data);
473                expect(err).assertEqual(null);
474                obtainCount = data;
475                osAccountManager.createOsAccount("osAccountNameIdSerialE", osaccount.OsAccountType.NORMAL, (err, data) => {
476                    console.info("====>create first os account err: " + JSON.stringify(err));
477                    console.info("====>create first os account OsAccountInfo: " + JSON.stringify(data));
478                    localIdFir = data.localId;
479                    expect(err).assertEqual(null);
480                    expect(data.localName).assertEqual("osAccountNameIdSerialE");
481                    osAccountManager.getCreatedOsAccountsCount((err, count) => {
482                        console.info("====>obtains the number of all os accounts created err:" + JSON.stringify(err));
483                        console.info("====>obtains the number of all os accounts created count:" + count);
484                        expect(err).assertEqual(null);
485                        count = count - 1;
486                        expect(count).assertEqual(obtainCount);
487                        osAccountManager.removeOsAccount(localIdFir, (err) => {
488                            console.info("====>remove localId: " + localIdFir + " err:" + JSON.stringify(err));
489                            expect(err).assertEqual(null);
490                            osAccountManager.getCreatedOsAccountsCount((err, data) => {
491                                console.info("====>obtains the number accounts created err:" + JSON.stringify(err));
492                                console.info("====>obtains the number accounts created data:" + data);
493                                expect(err).assertEqual(null);
494                                expect(data).assertEqual(obtainCount);
495                                console.info("====>ActsOsAccountGetCount_0100 end====");
496                                done();
497                            })
498                        })
499                    })
500                })
501            })
502        })
503
504        /*
505        * @tc.number  : ActsOsAccountGetCount_0200
506        * @tc.name    : getCreatedOsAccountsCount promise
507        * @tc.desc    : Verify to obtain the number os all os accounts created
508        */
509        it('ActsOsAccountGetCount_0200', 0, async function (done) {
510            console.info("====>ActsOsAccountGetCount_0200 start====");
511            var osAccountManager = osaccount.getAccountManager();
512            console.info("====>get AccountManager finish====");
513            let isEnable = await osAccountManager.checkMultiOsAccountEnabled();
514            if (isEnable != true) {
515                console.info("====>ActsOsAccountGetCount_0200 not support multiple osaccouts====");
516                var obtainCount = await osAccountManager.getCreatedOsAccountsCount();
517                console.info("====>obtains the number of all os accounts created:" + obtainCount);
518                expect(obtainCount).assertEqual(1);
519                console.info("====>ActsOsAccountGetCount_0200 end====");
520                done();
521                return;
522            }
523            var obtainCount = await osAccountManager.getCreatedOsAccountsCount();
524            console.info("====>obtains the number of all os accounts created:" + obtainCount);
525            var osAccountFir = await osAccountManager.createOsAccount("osAccountIdSerialG", osaccount.OsAccountType.NORMAL);
526            console.info("====>create first os account OsAccountInfo: " + JSON.stringify(osAccountFir));
527            var localIdFir = osAccountFir.localId;
528            expect(osAccountFir.localName).assertEqual("osAccountIdSerialG");
529            var countFir = await osAccountManager.getCreatedOsAccountsCount();
530            console.info("====>obtains the number of all os accounts created count:" + countFir);
531            countFir = countFir - 1;
532            expect(countFir).assertEqual(obtainCount);
533            await osAccountManager.removeOsAccount(localIdFir);
534            console.info("====>remove localId: " + localIdFir);
535            var countSec = await osAccountManager.getCreatedOsAccountsCount();
536            console.info("====>obtains the number accounts created count:" + countSec);
537            expect(countSec).assertEqual(obtainCount);
538            console.info("====>ActsOsAccountGetCount_0200 end====");
539            done();
540        })
541
542        /*
543        * @tc.number  : ActsOsAccountQueryActivedOsAccountIds_0100
544        * @tc.name    : queryActivatedOsAccountIds callback
545        * @tc.desc    : query activated osAccount Ids
546        */
547        it('ActsOsAccountQueryActivedOsAccountIds_0100', 0, async function (done) {
548            console.info("====>ActsOsAccountQueryActivedOsAccountIds_0100 start====");
549            var osAccountManager = osaccount.getAccountManager();
550            osAccountManager.queryActivatedOsAccountIds((err, dataArray) => {
551                console.info("====>ActsOsAccountGQueryActicedOsAccountIds_0100 err :" + JSON.stringify(err));
552                expect(err).assertEqual(null)
553                console.info("====>ActsOsAccountGQueryActicedOsAccountIds_0100 dataArray:" + dataArray);
554                expect(dataArray.length).assertEqual(1)
555                done();
556            })
557        })
558
559        /*
560        * @tc.number  : ActsOsAccountQueryActivedOsAccountIds_0200
561        * @tc.name    : queryActivatedOsAccountIds promise
562        * @tc.desc    : query activated osAccount Ids
563        */
564        it('ActsOsAccountQueryActivedOsAccountIds_0200', 0, async function (done) {
565            console.info("====>ActsOsAccountQueryActivedOsAccountIds_0200 start====");
566            var osAccountManager = osaccount.getAccountManager();
567            osAccountManager.queryActivatedOsAccountIds().then((dataArray) => {
568                console.info("====>ActsOsAccountQueryActivedOsAccountIds_0200 data" + JSON.stringify(dataArray))
569                expect(dataArray.length).assertEqual(1)
570                done();
571            }).catch((err) => {
572                console.info("====>ActsOsAccountQueryActivedOsAccountIds_0200 err " + JSON.stringify(err));
573                expect(err).assertEqual(null)
574                done();
575            });
576        })
577
578
579        /*
580        * @tc.number  : ActsOsAccountConstraints_0300
581        * @tc.name    : Constraints callback
582        * @tc.desc    : get 0 local user all constraints
583        */
584        it('ActsOsAccountConstraints_3100', 0, async function (done) {
585            console.info("====>ActsOsAccountConstraints_3100 start====");
586            var AccountManager = osaccount.getAccountManager();
587            console.info("====>get AccountManager finish====");
588            AccountManager.getOsAccountAllConstraints(0, (err, constraints) => {
589                console.info("====>getOsAccountAllConstraints err:" + JSON.stringify(err));
590                console.info("====>getOsAccountAllConstraints:" + JSON.stringify(constraints));
591                expect(err).assertEqual(null);
592                expect(constraints.length).assertEqual(0);
593                console.info("====>ActsOsAccountConstraints_3100 end====");
594                done();
595            })
596        })
597
598        /*
599        * @tc.number  : ActsOsAccountConstraints_0400
600        * @tc.name    : Constraints promise
601        * @tc.desc    : get 0 local user all constraints
602        */
603        it('ActsOsAccountConstraints_3200', 0, async function (done) {
604            console.info("====>ActsOsAccountConstraints_3200 start====");
605            var AccountManager = osaccount.getAccountManager();
606            console.info("get AccountManager finish====");
607            AccountManager.getOsAccountAllConstraints(0).then((data) => {
608                console.info("====>ActsOsAccountConstraints_3200 getOsAccountAllConstraints data:" + data);
609                done();
610            }).catch((err) => {
611                console.info("====>ActsOsAccountConstraints_3200 getOsAccountAllConstraints err:" + JSON.stringify(err));
612                expect().assertFalse()
613                done();
614            })
615        })
616
617        /**
618        * @tc.number     ActsAccountDomainTest_0300
619        * @tc.name       Test createOsAccountForDomain getOsAccountLocalIdFromDomain callback
620        * @tc.desc       Test createOsAccountForDomain getOsAccountLocalIdFromDomain API functionality
621        */
622        it('ActsOsAccountDomainTest_0300', 0, async function (done) {
623            console.info("====>ActsOsAccountDomainTest_0100 start====");
624            var osAccountManager = osaccount.getAccountManager();
625            osAccountManager.getOsAccountLocalIdFromDomain({ domain: "", accountName: "" }, (err) => {
626                console.info("====>ActsOsAccountDomainTest_0300 err:" + JSON.stringify(err));
627                expect(err.code != 0).assertEqual(true)
628                console.info("====>ActsOsAccountDomainTest_0300 end====");
629                done();
630            })
631        });
632
633        /**
634        * @tc.number     ActsAccountDomainTest_0400
635        * @tc.name       Test createOsAccountForDomain getOsAccountLocalIdFromDomain pormise
636        * @tc.desc       Test createOsAccountForDomain getOsAccountLocalIdFromDomain API functionality
637        */
638        it('ActsOsAccountDomainTest_0400', 0, async function (done) {
639            console.info("====>ActsOsAccountDomainTest_0400 start====");
640            var osAccountManager = osaccount.getAccountManager();
641            osAccountManager.getOsAccountLocalIdFromDomain({ domain: "", accountName: "" }).then((accountID) => {
642                console.info("ActsOsAccountDomainTest_0400 accountID:" + JSON.stringify(accountID))
643                done();
644            }).catch((err) => {
645                console.info("ActsOsAccountDomainTest_0400 err:" + JSON.stringify(err))
646                expect(err.code != 0).assertEqual(true)
647                done();
648            })
649        });
650
651        /*
652        * @tc.number  : ActsOsAccountQuery_1700
653        * @tc.name    : queryCurrentOsAccount callback
654        * @tc.desc    : Get the os account information to which the application belongs
655        */
656        it('ActsOsAccountQuery_2100', 0, async function (done) {
657            console.info("====>ActsOsAccountQuery_2100 start====");
658            var AccountManager = osaccount.getAccountManager();
659            console.info("====>get os AccountManager finish====");
660            AccountManager.queryCurrentOsAccount((err, data) => {
661                console.info("====>queryCurrentOsAccount err:" + JSON.stringify(err));
662                console.info("====>queryCurrentOsAccount data:" + JSON.stringify(data));
663                expect(err).assertEqual(null);
664                console.info("====>ActsOsAccountQuery_2100 end====");
665                done();
666            })
667        })
668
669        /*
670        * @tc.number  : ActsOsAccountQuery_1800
671        * @tc.name    : queryCurrentOsAccount promise
672        * @tc.desc    : Get the os account information to which the application belongs
673        */
674        it('ActsOsAccountQuery_2200', 0, async function (done) {
675            console.info("====>ActsOsAccountQuery_2200 start====");
676            var AccountManager = osaccount.getAccountManager();
677            console.info("====>get os AccountManager finish====");
678            var data = await AccountManager.queryCurrentOsAccount();
679            console.info("====>queryCurrentOsAccount data:" + JSON.stringify(data));
680            expect(data.localId).assertEqual(100);
681            expect(data.type).assertEqual(0);
682            var serialNumberStr = data.serialNumber.toString();
683            var serialIntercept = serialNumberStr.substring(8);
684            console.info("====>truncate the last eight characters: " + serialIntercept);
685            expect(serialIntercept).assertEqual("00000001");
686            expect(data.isCreateCompleted).assertTrue();
687            console.info("====>ActsOsAccountQuery_2200 end====");
688            done();
689        })
690
691
692        /*
693        * @tc.number  : ActsOsAccountPermission_3300
694        * @tc.name    : isOsAccountConstraintEnable callback
695        * @tc.desc    : the application call interface does not meet the permissions
696        */
697        it('ActsOsAccountConstraints_3300', 0, async function (done) {
698            console.info("====>ActsOsAccountConstraints_3300 start====");
699            var AccountManager = osaccount.getAccountManager();
700            console.info("====>get os AccountManager finish====");
701            AccountManager.isOsAccountConstraintEnable(100, "constraint.bluetooth", (err, result) => {
702                console.info("====>isOsAccountConstraintEnable err:" + JSON.stringify(err));
703                expect(err).assertEqual(null);
704                expect(result).assertEqual(true);
705                console.info("====>ActsOsAccountConstraints_3300 end====");
706                done();
707            })
708        })
709
710        /*
711        * @tc.number  : ActsOsAccountPermission_3400
712        * @tc.name    : isOsAccountConstraintEnable promise
713        * @tc.desc    : the application call interface does not meet the permissions
714        */
715        it('ActsOsAccountConstraints_3400', 0, async function (done) {
716            console.info("====>ActsOsAccountConstraints_3400 start====");
717            var AccountManager = osaccount.getAccountManager();
718            console.info("====>get os AccountManager finish====");
719            try {
720                let data = await AccountManager.isOsAccountConstraintEnable(100, "constraint.bluetooth");
721                console.info("====>isOsAccountConstraintEnable data:" + JSON.stringify(data));
722                expect(data).assertEqual(true);
723                done();
724            } catch (err) {
725                console.info("====>isOsAccountConstraintEnable err:" + JSON.stringify(err));
726                expect(err).assertEqual(null);
727                console.info("====>ActsOsAccountConstraints_3400 end====");
728                done();
729            }
730        })
731    })
732}