1/*
2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import contactsapi from '@ohos.contact';
17import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from 'deccjsunit/index';
18
19const URI_CONTACTS = 'datashare:///com.ohos.contactsdataability';
20const groupUri = 'datashare:///com.ohos.contactsdataability/contacts/groups';
21const rawContactUri = 'datashare:///com.ohos.contactsdataability/contacts/raw_contact';
22const profileRawContactUri = 'datashare:///com.ohos.contactsdataability/profile/raw_contact';
23const ATTRIBUTE_ONE = 1;
24const ATTRIBUTE_TWO = 2;
25const ATTRIBUTE_THREE = 3;
26const ATTRIBUTE_FOUR = 4;
27const ATTRIBUTE_FIVE = 5;
28const ATTRIBUTE_SIX = 6;
29const ATTRIBUTE_SEVEN = 7;
30const ATTRIBUTE_EIGHT = 8;
31const ATTRIBUTE_NINE = 9;
32const ATTRIBUTE_TEN = 10;
33const ATTRIBUTE_ELEVEN = 11;
34const ATTRIBUTE_TWELVE = 12;
35const ATTRIBUTE_THIRTEEN = 13;
36const ATTRIBUTE_FOURTEEN = 14;
37const ONE_HUNDERD = 100;
38const SLEEP_TIME = 2000;
39
40describe('ObjectInterfaceTest', function () {
41  function sleep(numberMillis) {
42    let now = new Date();
43    let exitTime = now.getTime() + numberMillis;
44    while (true) {
45      now = new Date();
46      if (now.getTime() > exitTime) {
47        return;
48      }
49    }
50  }
51
52  let contactData = {
53    id: 0,
54    key: '0',
55    contactAttributes: { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_TWO, ATTRIBUTE_THREE, ATTRIBUTE_FOUR, ATTRIBUTE_FIVE,
56      ATTRIBUTE_SIX, ATTRIBUTE_SEVEN, ATTRIBUTE_EIGHT, ATTRIBUTE_NINE, ATTRIBUTE_TEN, ATTRIBUTE_ELEVEN,
57      ATTRIBUTE_TWELVE, ATTRIBUTE_THIRTEEN, ATTRIBUTE_FOURTEEN] },
58    emails: [{ email: 'email', labelName: '自定义邮箱', labelId: 1, displayName: 'emailDisplayName' }],
59    events: [{ eventDate: 'event', labelName: '自定义event', labelId: 2 }],
60    groups: [{ groupId: 1, title: '群组' }],
61    imAddresses: [{ imAddress: 'imAddress', labelName: '自定义', labelId: 3 }],
62    phoneNumbers: [{ phoneNumber: '183', labelName: '自定义phoneNumbers', labelId: 4 }],
63    portrait: { uri: 'content://head/0' },
64    postalAddresses: [
65      {
66        city: '南京',
67        country: '中国',
68        labelName: 'labelName',
69        neighborhood: 'neighborhood',
70        pobox: 'pobox',
71        postalAddress: 'postalAddress',
72        postcode: 'postcode',
73        region: 'region',
74        street: 'street',
75        labelId: 5
76      }
77    ],
78    relations: [{ relationName: 'relationName', labelName: '自定义relationName', labelId: 6 }],
79    sipAddresses: [{ sipAddress: 'sipAddress', labelName: '自定义sipAddress', labelId: 6 }],
80    websites: [{ website: 'website' }],
81    name: {
82      familyName: 'familyName',
83      familyNamePhonetic: 'familyNamePhonetic',
84      fullName: '小李',
85      givenName: 'givenName',
86      givenNamePhonetic: 'givenNamePhonetic',
87      middleName: 'middleName',
88      middleNamePhonetic: 'middleNamePhonetic',
89      namePrefix: 'namePrefix',
90      nameSuffix: 'nameSuffix'
91    },
92    nickName: { nickName: 'nickName' },
93    note: { noteContent: 'note' },
94    organization: { name: 'TT', title: '开发' }
95  };
96
97  let gRawContactId;
98
99  /**
100   * @tc.number  contactsApi_insert_test_100
101   * @tc.name    Insert contact information
102   * @tc.desc    Function test
103   */
104  it('contactsApi_insert_test_100', 0, async function (done) {
105    try {
106      let rawContactId = await contactsapi.addContact(contactData);
107      console.info('contactsApi_insert_test_100 : rawContactId = ' + rawContactId);
108      gRawContactId = rawContactId;
109      expect(gRawContactId > 0).assertTrue();
110      done();
111    } catch (error) {
112      console.info('contactsApi_insert_test_100 : raw_contact insert error = ' + error);
113      done();
114    }
115    sleep(SLEEP_TIME);
116  });
117
118  /**
119   * @tc.number  contactsApi_delete_test_200
120   * @tc.name    Delete contact information
121   * @tc.desc    Function test
122   */
123  it('contactsApi_delete_test_200', 0, async function (done) {
124    let deleteId = gRawContactId;
125    try {
126      let deleteCode = await contactsapi.deleteContact(deleteId);
127      let gDelete = deleteCode;
128      console.info('contactsApi_delete_test_200 : deleteCode = ' + deleteCode);
129      expect(gDelete === 0).assertTrue();
130      done();
131    } catch (error) {
132      console.info('contactsApi_delete_test_200 : delete error = ' + error);
133      done();
134    }
135    sleep(SLEEP_TIME);
136  });
137
138  /**
139   * @tc.number  contactsApi_update_test_300
140   * @tc.name    Update contact information
141   * @tc.desc    Function test
142   */
143  it('contactsApi_update_test_300', 0, async function (done) {
144    let rawContactId = await contactsapi.addContact(contactData);
145    console.info('contactsApi_insert_test_300 : rawContactId = ' + rawContactId);
146    gRawContactId = rawContactId;
147    expect(rawContactId > 0).assertTrue();
148
149    let updateValues = { id: gRawContactId, name: { fullName: '小红' } };
150    let condition = { attributes: [ATTRIBUTE_SIX] };
151    try {
152      let updateCode = await contactsapi.updateContact(updateValues, condition);
153      console.info('contactsApi_update_test_300 : updateCode = ' + updateCode);
154      expect(updateCode === 0).assertTrue();
155      done();
156    } catch (error) {
157      console.info('contactsApi_update_test_300 : update error = ' + error);
158      done();
159    }
160    sleep(SLEEP_TIME);
161  });
162
163  /**
164   * @tc.number  contactsApi_query_contact_test_400
165   * @tc.name    Query contacts information
166   * @tc.desc    Function test
167   */
168  it('contactsApi_query_contact_test_400', 0, async function (done) {
169    let queryId = gRawContactId;
170    try {
171      let resultSet = await contactsapi.queryContact(queryId);
172      console.info('contactsApi_query_contact_test_400 : query resultSet = ' + JSON.stringify(resultSet));
173      expect(resultSet !== null).assertTrue();
174      done();
175    } catch (error) {
176      console.info('contactsApi_query_contact_test_400 query error = ' + error);
177      done();
178    }
179    sleep(SLEEP_TIME);
180  });
181
182  /**
183   * @tc.number  contactsApi_query_contact_test_500
184   * @tc.name    Query contacts information
185   * @tc.desc    Function test
186   */
187  it('contactsApi_query_contact_test_500', 0, async function (done) {
188    let queryId = gRawContactId.toString();
189    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
190    try {
191      let resultSet = await contactsapi.queryContact(queryId, holder);
192      console.info('contactsApi_query_contact_test_500 : query resultSet = ' + JSON.stringify(resultSet));
193      expect(resultSet !== null).assertTrue();
194      done();
195    } catch (error) {
196      console.info('contactsApi_query_contact_test_500 query error = ' + error);
197      done();
198    }
199    sleep(SLEEP_TIME);
200  });
201
202  /**
203   * @tc.number  contactsApi_query_contact_test_600
204   * @tc.name    Query contacts information
205   * @tc.desc    Function test
206   */
207  it('contactsApi_query_contact_test_600', 0, async function (done) {
208    let queryId = gRawContactId.toString();
209    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
210    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
211    try {
212      let resultSet = await contactsapi.queryContact(queryId, holder, ContactAttributes);
213      console.info('contactsApi_query_contact_test_600 : query resultSet = ' + JSON.stringify(resultSet));
214      expect(resultSet !== null).assertTrue();
215      done();
216    } catch (error) {
217      console.info('contactsApi_query_contact_test_600 query error = ' + error);
218      done();
219    }
220    sleep(SLEEP_TIME);
221  });
222
223  /**
224   * @tc.number  contactsApi_query_contacts_test_700
225   * @tc.name    Query contacts information
226   * @tc.desc    Function test
227   */
228  it('contactsApi_query_contacts_test_700', 0, async function (done) {
229    try {
230      let resultSet = await contactsapi.queryContacts();
231      console.info('contactsApi_query_contacts_test_700 : query resultSet = ' + JSON.stringify(resultSet));
232      expect(resultSet != null).assertTrue();
233      done();
234    } catch (error) {
235      console.info('contactsApi_query_contacts_test_700 query error = ' + error);
236      done();
237    }
238    sleep(SLEEP_TIME);
239  });
240
241  /**
242   * @tc.number  contactsApi_query_contacts_test_800
243   * @tc.name    Query contacts information
244   * @tc.desc    Function test
245   */
246  it('contactsApi_query_contacts_test_800', 0, async function (done) {
247    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
248    try {
249      let resultSet = await contactsapi.queryContacts(holder);
250      console.info('contactsApi_query_contacts_test_800 : query resultSet = ' + JSON.stringify(resultSet));
251      expect(resultSet !== null).assertTrue();
252      done();
253    } catch (error) {
254      console.info('contactsApi_query_contacts_test_800 query error = ' + error);
255      done();
256    }
257    sleep(SLEEP_TIME);
258  });
259
260  /**
261   * @tc.number  contactsApi_query_contacts_test_900
262   * @tc.name    Query contacts information
263   * @tc.desc    Function test
264   */
265  it('contactsApi_query_contacts_test_900', 0, async function (done) {
266    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
267    try {
268      let resultSet = await contactsapi.queryContacts(ContactAttributes);
269      console.info('contactsApi_query_contacts_test_900 : query resultSet = ' + JSON.stringify(resultSet));
270      expect(resultSet !== null).assertTrue();
271      done();
272    } catch (error) {
273      console.info('contactsApi_query_contacts_test_900 query error = ' + error);
274      done();
275    }
276    sleep(SLEEP_TIME);
277  });
278
279  /**
280   * @tc.number  contactsApi_query_contacts_test_1000
281   * @tc.name    Query contacts information
282   * @tc.desc    Function test
283   */
284  it('contactsApi_query_contacts_test_1000', 0, async function (done) {
285    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
286    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
287    try {
288      let resultSet = await contactsapi.queryContacts(holder, ContactAttributes);
289      console.info('contactsApi_query_contacts_test_1000 : query resultSet = ' + JSON.stringify(resultSet));
290      expect(resultSet !== null).assertTrue();
291      done();
292    } catch (error) {
293      console.info('contactsApi_query_contacts_test_1000 query error = ' + error);
294      done();
295    }
296    sleep(SLEEP_TIME);
297  });
298
299  /**
300   * @tc.number  contactsApi_query_email_test_1100
301   * @tc.name    Query email information
302   * @tc.desc    Function test
303   */
304  it('contactsApi_query_email_test_1100', 0, async function (done) {
305    let email = 'email';
306    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
307    try {
308      let resultSet = await contactsapi.queryContactsByEmail(email, holder);
309      console.info('contactsApi_query_email_test_1100 : query resultSet = ' + JSON.stringify(resultSet));
310      expect(resultSet !== null).assertTrue();
311      done();
312    } catch (error) {
313      console.info('contactsApi_query_email_test_1100 query error = ' + error);
314      done();
315    }
316    sleep(SLEEP_TIME);
317  });
318
319  /**
320   * @tc.number  contactsApi_query_email_test_1200
321   * @tc.name    Query email information
322   * @tc.desc    Function test
323   */
324  it('contactsApi_query_email_test_1200', 0, async function (done) {
325    let email = 'email';
326    try {
327      let resultSet = await contactsapi.queryContactsByEmail(email);
328      console.info('contactsApi_query_email_test_1200 : query resultSet = ' + JSON.stringify(resultSet));
329      expect(resultSet !== null).assertTrue();
330      done();
331    } catch (error) {
332      console.info('contactsApi_query_email_test_1200 query error = ' + error);
333      done();
334    }
335    sleep(SLEEP_TIME);
336  });
337
338  /**
339   * @tc.number  contactsApi_query_email_test_1300
340   * @tc.name    Query email information
341   * @tc.desc    Function test
342   */
343  it('contactsApi_query_email_test_1300', 0, async function (done) {
344    let email = 'email';
345    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
346    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
347    try {
348      let resultSet = await contactsapi.queryContactsByEmail(email, holder, ContactAttributes);
349      console.info('contactsApi_query_email_test_1300 : query resultSet = ' + JSON.stringify(resultSet));
350      expect(resultSet !== null).assertTrue();
351      done();
352    } catch (error) {
353      console.info('contactsApi_query_email_test_1300 query error = ' + error);
354      done();
355    }
356    sleep(SLEEP_TIME);
357  });
358
359  /**
360   * @tc.number  contactsApi_query_email_test_1400
361   * @tc.name    Query email information
362   * @tc.desc    Function test
363   */
364  it('contactsApi_query_email_test_1400', 0, async function (done) {
365    let email = 'email';
366    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
367    try {
368      let resultSet = await contactsapi.queryContactsByEmail(email, ContactAttributes);
369      console.info('contactsApi_query_email_test_1400 : query resultSet = ' + JSON.stringify(resultSet));
370      expect(resultSet !== null).assertTrue();
371      done();
372    } catch (error) {
373      console.info('contactsApi_query_email_test_1400 query error = ' + error);
374      done();
375    }
376    sleep(SLEEP_TIME);
377  });
378
379  /**
380   * @tc.number  contactsApi_query_phoneNumber_test_1500
381   * @tc.name    Query phoneNumber information
382   * @tc.desc    Function test
383   */
384  it('contactsApi_query_phoneNumber_test_1500', 0, async function (done) {
385    let phoneNumber = '183';
386    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
387    try {
388      let resultSet = await contactsapi.queryContactsByPhoneNumber(phoneNumber, holder);
389      console.info('contactsApi_query_phoneNumber_test_1500 : query resultSet = ' + JSON.stringify(resultSet));
390      expect(resultSet !== null).assertTrue();
391      done();
392    } catch (error) {
393      console.info('contactsApi_query_phoneNumber_test_1500 query error = ' + error);
394      done();
395    }
396    sleep(SLEEP_TIME);
397  });
398
399  /**
400   * @tc.number  contactsApi_query_phoneNumber_test_1600
401   * @tc.name    Query phoneNumber information
402   * @tc.desc    Function test
403   */
404  it('contactsApi_query_phoneNumber_test_1600', 0, async function (done) {
405    let phoneNumber = '183';
406    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
407    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
408    try {
409      let resultSet = await contactsapi.queryContactsByPhoneNumber(phoneNumber, holder, ContactAttributes);
410      console.info('contactsApi_query_phoneNumber_test_1600 : query resultSet = ' + JSON.stringify(resultSet));
411      expect(resultSet !== null).assertTrue();
412      done();
413    } catch (error) {
414      console.info('contactsApi_query_phoneNumber_test_1600 query error = ' + error);
415      done();
416    }
417    sleep(SLEEP_TIME);
418  });
419
420  /**
421   * @tc.number  contactsApi_query_phoneNumber_test_1700
422   * @tc.name    Query phoneNumber information
423   * @tc.desc    Function test
424   */
425  it('contactsApi_query_phoneNumber_test_1700', 0, async function (done) {
426    let phoneNumber = '183';
427    try {
428      let resultSet = await contactsapi.queryContactsByPhoneNumber(phoneNumber);
429      console.info('contactsApi_query_phoneNumber_test_1700 : query resultSet = ' + JSON.stringify(resultSet));
430      expect(resultSet !== null).assertTrue();
431      done();
432    } catch (error) {
433      console.info('contactsApi_query_phoneNumber_test_1700 query error = ' + error);
434      done();
435    }
436    sleep(SLEEP_TIME);
437  });
438
439  /**
440   * @tc.number  contactsApi_query_phoneNumber_test_1800
441   * @tc.name    Query phoneNumber information
442   * @tc.desc    Function test
443   */
444  it('contactsApi_query_phoneNumber_test_1800', 0, async function (done) {
445    let phoneNumber = '183';
446    let ContactAttributes = { attributes: [ATTRIBUTE_ONE, ATTRIBUTE_FIVE, ATTRIBUTE_SIX] };
447    try {
448      let resultSet = await contactsapi.queryContactsByPhoneNumber(phoneNumber, ContactAttributes);
449      console.info('contactsApi_query_phoneNumber_test_1800 : query resultSet = ' + JSON.stringify(resultSet));
450      expect(resultSet !== null).assertTrue();
451      done();
452    } catch (error) {
453      console.info('contactsApi_query_phoneNumber_test_1800 query error = ' + error);
454      done();
455    }
456    sleep(SLEEP_TIME);
457  });
458
459  /**
460   * @tc.number  contactsApi_query_group_test_1900
461   * @tc.name    Query group
462   * @tc.desc    Function test
463   */
464  it('contactsApi_query_group_test_1900', 0, async function (done) {
465    try {
466      let resultSet = await contactsapi.queryGroups();
467      console.info('contactsApi_query_group_test_1900 : query resultSet = ' + JSON.stringify(resultSet));
468      expect(resultSet.length === 0).assertTrue();
469      done();
470    } catch (error) {
471      console.info('contactsApi_query_group_test_1900 query error = ' + error);
472      done();
473    }
474    sleep(SLEEP_TIME);
475  });
476
477  /**
478   * @tc.number  contactsApi_query_group_test_2000
479   * @tc.name    Query group
480   * @tc.desc    Function test
481   */
482  it('contactsApi_query_group_test_2000', 0, async function (done) {
483    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
484    try {
485      let resultSet = await contactsapi.queryGroups(holder);
486      console.info('contactsApi_query_group_test_2000 : query resultSet = ' + JSON.stringify(resultSet));
487      expect(resultSet.length === 0).assertTrue();
488      done();
489    } catch (error) {
490      console.info('contactsApi_query_group_test_2000 query error = ' + error);
491      done();
492    }
493    sleep(SLEEP_TIME);
494  });
495
496  /**
497   * @tc.number  contactsApi_query_holders_test_2200
498   * @tc.name    Query holders information
499   * @tc.desc    Function test
500   */
501  it('contactsApi_query_holders_test_2200', 0, async function (done) {
502    try {
503      let resultSet = await contactsapi.queryHolders();
504      console.info('contactsApi_query_holders_test_2200 : query resultSet = ' + JSON.stringify(resultSet));
505      expect(resultSet !== null).assertTrue();
506      done();
507    } catch (error) {
508      console.info('contactsApi_query_holders_test_2200 query error = ' + error);
509      done();
510    }
511    sleep(SLEEP_TIME);
512  });
513
514  /**
515   * @tc.number  contactsApi_query_key_test_2300
516   * @tc.name    Query key information
517   * @tc.desc    Function test
518   */
519  it('contactsApi_query_key_test_2300', 0, async function (done) {
520    let idtest = gRawContactId;
521    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
522    try {
523      let resultSet = await contactsapi.queryKey(idtest, holder);
524      console.info('contactsApi_query_key_test_2300 : query resultSet = ' + JSON.stringify(resultSet));
525      expect(resultSet.length !== 0).assertTrue();
526      done();
527    } catch (error) {
528      console.info('contactsApi_query_key_test_2300 query error = ' + error);
529      done();
530    }
531    sleep(SLEEP_TIME);
532  });
533
534  /**
535   * @tc.number  contactsApi_query_key_test_2400
536   * @tc.name    Query key information
537   * @tc.desc    Function test
538   */
539  it('contactsApi_query_key_test_2400', 0, async function (done) {
540    let idtest = gRawContactId;
541    console.info('contactsApi_query_key_test_2400 : query gRawContactId = ' + idtest);
542    try {
543      let resultSet = await contactsapi.queryKey(idtest);
544      console.info('contactsApi_query_key_test_2400 : query resultSet = ' + JSON.stringify(resultSet));
545      expect(resultSet.length !== 0).assertTrue();
546      done();
547    } catch (error) {
548      console.info('contactsApi_query_key_test_2400 query error = ' + error);
549      done();
550    }
551    sleep(SLEEP_TIME);
552  });
553
554  /**
555   * @tc.number  contactsApi_query_mycard_test_2500
556   * @tc.name    Query mycard information
557   * @tc.desc    Function test
558   */
559  it('contactsApi_query_mycard_test_2500', 0, async function (done) {
560    let holder = { bundleName: 'com.ohos.contacts', displayName: 'phone', holderId: 1 };
561    try {
562      let resultSet = await contactsapi.queryMyCard(holder);
563      console.info('contactsApi_query_mycard_test_2500 : query resultSet = ' + JSON.stringify(resultSet));
564      expect(resultSet.length === 0).assertTrue();
565      done();
566    } catch (error) {
567      console.info('contactsApi_query_mycard_test_2500 query error = ' + error);
568      done();
569    }
570    sleep(SLEEP_TIME);
571  });
572
573  /**
574   * @tc.number  contactsApi_isMyCard_test_2600
575   * @tc.name    Query mycard exist
576   * @tc.desc    Function test
577   */
578  it('contactsApi_isMyCard_test_2600', 0, async function (done) {
579    let id = 1;
580    try {
581      let isExist = await contactsapi.isMyCard(id);
582      console.info('contactsApi_isMyCard_test_2600 : query isExist = ' + isExist);
583      expect(isExist === 0).assertTrue();
584      done();
585    } catch (error) {
586      console.info('contactsApi_isMyCard_test_2600 query error = ' + error);
587      done();
588    }
589    sleep(SLEEP_TIME);
590  });
591
592  /**
593   * @tc.number  contactsApi_isLocalContact_test_2700
594   * @tc.name    Query isLocalContact exist
595   * @tc.desc    Function test
596   */
597  it('contactsApi_isLocalContact_test_2700', 0, async function (done) {
598    let id = gRawContactId;
599    try {
600      let isExist = await contactsapi.isLocalContact(id);
601      console.info('logMessage contactsApi_isLocalContact_test_2700 isExist = ' + isExist);
602      expect(isExist === 1).assertTrue();
603      done();
604    } catch (error) {
605      console.info('contactsApi_isLocalContact_test_2700 query error = ' + error);
606      done();
607    }
608    sleep(SLEEP_TIME);
609  });
610
611  /**
612   * @tc.number  abnormal_contactsApi_insert_test_2800
613   * @tc.name    contactsApi_insert error
614   * @tc.desc    Function test
615   */
616  it('abnormal_contactsApi_insert_test_2800', 0, async function (done) {
617    let contactDataError = {};
618    try {
619      let rawContactId = await contactsapi.addContact(contactDataError);
620      console.info('abnormal_contactsApi_insert_test_2800 : rawContactId = ' + rawContactId);
621      expect(rawContactId === -1).assertTrue();
622      done();
623    } catch (error) {
624      console.info('abnormal_contactsApi_insert_test_2800 : raw_contact insert error = ' + error);
625      done();
626    }
627    sleep(SLEEP_TIME);
628  });
629
630  /**
631   * @tc.number  abnormal_contactsApi_update_test_3000
632   * @tc.name    contactsApi_update error
633   * @tc.desc    Function test
634   */
635  it('abnormal_contactsApi_update_test_3000', 0, async function (done) {
636    let rawContactId = -1;
637    let updateValues = { id: rawContactId, name: { fullName: '小红' } };
638    let condition = { attributes: [ATTRIBUTE_SIX] };
639    try {
640      let updateCode = await contactsapi.updateContact(updateValues, condition);
641      console.info('abnormal_contactsApi_update_test_3000 : updateCode = ' + updateCode);
642      expect(updateCode === -1).assertTrue();
643      done();
644    } catch (error) {
645      console.info('abnormal_contactsApi_update_test_3000 : update error = ' + error);
646      done();
647    }
648    sleep(SLEEP_TIME);
649  });
650
651  /**
652   * @tc.number  abnormal_contactsApi_query_contact_test_3100
653   * @tc.name    contactsApi_query_contact error
654   * @tc.desc    Function test
655   */
656  it('abnormal_contactsApi_query_contact_test_3100', 0, async function (done) {
657    let queryId = '-1';
658    try {
659      let resultSet = await contactsapi.queryContact(queryId);
660      if (resultSet === null) {
661        console.info('abnormal_contactsApi_query_contact_test_3100 is null');
662      }
663      if (resultSet === undefined) {
664        console.info('abnormal_contactsApi_query_contact_test_3100 is undefined');
665      }
666      console.info('abnormal_contactsApi_query_contact_test_3100 : updateCode = ' + JSON.stringify(resultSet));
667      expect(resultSet === undefined).assertTrue();
668      done();
669    } catch (error) {
670      console.info('abnormal_contactsApi_query_contact_test_3100 query error = ' + error);
671      done();
672    }
673    sleep(SLEEP_TIME);
674  });
675
676  /**
677   * @tc.number  abnormal_contactsApi_query_contacts_test_3200
678   * @tc.name    contactsApi_query_contacts error
679   * @tc.desc    Function test
680   */
681  it('abnormal_contactsApi_query_contacts_test_3200', 0, async function (done) {
682    let ContactAttributes = { attributes: [ONE_HUNDERD] };
683    try {
684      let resultSet = await contactsapi.queryContacts(ContactAttributes);
685      if (resultSet === null) {
686        console.info('abnormal_contactsApi_query_contacts_test_3200 is null');
687      }
688      if (resultSet === undefined) {
689        console.info('abnormal_contactsApi_query_contacts_test_3200 is undefined');
690      }
691      console.info('abnormal_contactsApi_query_contacts_test_3200 : query resultSet = ' + JSON.stringify(resultSet));
692      expect(resultSet.length === 0).assertTrue();
693      done();
694    } catch (error) {
695      console.info('abnormal_contactsApi_query_contacts_test_3200 query error = ' + error);
696      done();
697    }
698    sleep(SLEEP_TIME);
699  });
700
701  /**
702   * @tc.number  abnormal_contactsApi_query_email_test_3300
703   * @tc.name    contactsApi_query_email error
704   * @tc.desc    Function test
705   */
706  it('abnormal_contactsApi_query_email_test_3300', 0, async function (done) {
707    let email = 'email2222';
708    try {
709      let resultSet = await contactsapi.queryContactsByEmail(email);
710      console.info('abnormal_contactsApi_query_email_test_3300 : query resultSet = ' + JSON.stringify(resultSet));
711      expect(resultSet.length === 0).assertTrue();
712      done();
713    } catch (error) {
714      console.info('abnormal_contactsApi_query_email_test_3300 query error = ' + error);
715      done();
716    }
717    sleep(SLEEP_TIME);
718  });
719
720  /**
721   * @tc.number  abnormal_contactsApi_query_phoneNumber_test_3400
722   * @tc.name    contactsApi_query_phoneNumber error
723   * @tc.desc    Function test
724   */
725  it('abnormal_contactsApi_query_phoneNumber_test_3400', 0, async function (done) {
726    let phoneNumber = '19999999';
727    try {
728      let resultSet = await contactsapi.queryContactsByPhoneNumber(phoneNumber);
729      console.info('abnormal_contactsApi_query_phoneNumber_test_3400 : query resultSet = ' + JSON.stringify(resultSet));
730      expect(resultSet.length === 0).assertTrue();
731      done();
732    } catch (error) {
733      console.info('abnormal_contactsApi_query_phoneNumber_test_3400 query error = ' + error);
734      done();
735    }
736    sleep(SLEEP_TIME);
737  });
738
739  /**
740   * @tc.number  abnormal_contactsApi_query_group_test_3500
741   * @tc.name    contactsApi_query_group error
742   * @tc.desc    Function test
743   */
744  it('abnormal_contactsApi_query_group_test_3500', 0, async function (done) {
745    let holder = { bundleName: 'com.ohos.contacts2', displayName: 'phone2', holderId: 2 };
746    try {
747      let resultSet = await contactsapi.queryGroups(holder);
748      console.info('abnormal_contactsApi_query_group_test_3500 : query resultSet = ' + JSON.stringify(resultSet));
749      expect(resultSet.length === 0).assertTrue();
750      done();
751    } catch (error) {
752      console.info('abnormal_contactsApi_query_group_test_3500 query error = ' + error);
753      done();
754    }
755    sleep(SLEEP_TIME);
756  });
757
758  /**
759   * @tc.number  abnormal_contactsApi_query_key_test_3600
760   * @tc.name    contactsApi_query_key error
761   * @tc.desc    Function test
762   */
763  it('abnormal_contactsApi_query_key_test_3600', 0, async function (done) {
764    let idtest = -1;
765    try {
766      let resultSet = await contactsapi.queryKey(idtest);
767      console.info('abnormal_contactsApi_query_key_test_3600 : query resultSet = ' + JSON.stringify(resultSet));
768      expect(resultSet.length === 0).assertTrue();
769      done();
770    } catch (error) {
771      console.info('abnormal_contactsApi_query_key_test_3600 query error = ' + error);
772      done();
773    }
774    sleep(SLEEP_TIME);
775  });
776
777  /**
778   * @tc.number  abnormal_contactsApi_query_mycard_test_3700
779   * @tc.name    contactsApi_query_mycard error
780   * @tc.desc    Function test
781   */
782  it('abnormal_contactsApi_query_mycard_test_3700', 0, async function (done) {
783    let ContactAttributes = { attributes: [ONE_HUNDERD] };
784    try {
785      let resultSet = await contactsapi.queryMyCard(ContactAttributes);
786      console.info('abnormal_contactsApi_query_mycard_test_3700 : query resultSet = ' + JSON.stringify(resultSet));
787      expect(resultSet.length === 0).assertTrue();
788      done();
789    } catch (error) {
790      console.info('abnormal_contactsApi_query_mycard_test_3700 query error = ' + error);
791      done();
792    }
793    sleep(SLEEP_TIME);
794  });
795
796  /**
797   * @tc.number  abnormal_contactsApi_isMyCard_test_3800
798   * @tc.name    isMyCard is not exist
799   * @tc.desc    Function test
800   */
801  it('abnormal_contactsApi_isMyCard_test_3800', 0, async function (done) {
802    let id = 999;
803    try {
804      let isExist = await contactsapi.isMyCard(id);
805      console.info('abnormal_contactsApi_isMyCard_test_3800 : query isExist = ' + isExist);
806      expect(isExist === 0).assertTrue();
807      done();
808    } catch (error) {
809      console.info('abnormal_contactsApi_isMyCard_test_3800 query error = ' + error);
810      done();
811    }
812    sleep(SLEEP_TIME);
813  });
814
815  /**
816   * @tc.number  abnormal_contactsApi_isLocalContact_test_3900
817   * @tc.name    contactsApi_isLocalContact is not exist
818   * @tc.desc    Function test
819   */
820  it('abnormal_contactsApi_isLocalContact_test_3900', 0, async function (done) {
821    let id = 999;
822    try {
823      let isExist = await contactsapi.isLocalContact(id);
824      console.info('abnormal_contactsApi_isLocalContact_test_3900 : query isExist = ' + isExist);
825      expect(isExist === 0).assertTrue();
826      done();
827    } catch (error) {
828      console.info('abnormal_contactsApi_isLocalContact_test_3900 query error = ' + error);
829      done();
830    }
831    sleep(SLEEP_TIME);
832  });
833});
834