1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import dataShare from '@ohos.data.dataShare'; 17import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it} from 'deccjsunit/index' 18 19const URI_CONTACTS = "datashare:///com.ohos.contactsdataability"; 20const rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact"; 21const contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data"; 22 23const autoMergeUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/auto_merge"; 24const splitUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/split_contact"; 25const manualMergeUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/manual_merge"; 26const uriQueryMergeList = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/query_merge_list"; 27const deletedUri = "datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact"; 28 29describe('ContactMergeTest', function() { 30 console.info("ContactMergeTest start!"); 31 32 var sleep_two = 2000; 33 var sleep_one = 1000; 34 var sleep_three = 3000; 35 var result_two = 2; 36 var result_three = 3; 37 var array_two = 2; 38 39 function sleep(numberMillis) 40 { 41 var now = new Date(); 42 var exitTime = now.getTime() + numberMillis; 43 while (true) { 44 now = new Date(); 45 if (now.getTime() > exitTime) 46 return; 47 } 48 } 49 async function ContactDataInsert1(dataShareHelper, rawContactId1) 50 { 51 var contactDataValues = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaoli"}; 52 try { 53 var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues); 54 sleep(sleep_one); 55 console.info("logMessage contact_auto_merge_and_spilt_test_100: contactDataId1 = " + contactDataId1); 56 expect(contactDataId1 > 0).assertTrue(); 57 } catch (error) { 58 console.info('logMessage contact_auto_merge_and_spilt_test_100: contact_data_1 insert error = ' + error); 59 } 60 } 61 62 async function ContactDataInsert2(dataShareHelper, rawContactId2) 63 { 64 var contactDataValues = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoli"}; 65 try { 66 var contactDataId2 = await dataShareHelper.insert(contactDataUri, contactDataValues); 67 sleep(sleep_one); 68 console.info("logMessage contact_auto_merge_and_spilt_test_100: contactDataId2 = " + contactDataId2); 69 expect(contactDataId2 > 0).assertTrue(); 70 } catch (error) { 71 console.info('logMessage contact_auto_merge_and_spilt_test_100: contact_data_2 insert error = ' + error); 72 } 73 } 74 75 async function AutoMerge(dataShareHelper, rawContactId1) 76 { 77 let condition = new dataShare.DataSharePredicates(); 78 var updateValues = {}; 79 try { 80 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 81 console.info("logMessage contact_auto_merge_and_spilt_test_100: autoMergeCode = " + autoMergeCode); 82 expect(autoMergeCode == 0).assertTrue(); 83 var map = new Map(); 84 map.set("id", rawContactId1.toString()); 85 await ContactMergeQuery(map, "contact_auto_merge_and_spilt_test_100", result_two); 86 sleep(sleep_two); 87 await ContactSplit(dataShareHelper, rawContactId1); 88 await deleteAll(rawContactUri, "contact_auto_merge_and_spilt_test_100"); 89 await deleteAll(contactDataUri, "contact_auto_merge_and_spilt_test_100"); 90 } catch (error) { 91 console.info("logMessage contact_auto_merge_and_spilt_test_100: auto_merge error = " + error); 92 } 93 } 94 95 async function ContactSplit(dataShareHelper, rawContactId1) 96 { 97 var condition2 = new dataShare.DataSharePredicates(); 98 var array = [ rawContactId1.toString() ]; 99 condition2.in("raw_contact_id", array); 100 var updateValues2 = {}; 101 try { 102 var splitCode = await dataShareHelper.update(splitUri, updateValues2, condition2); 103 sleep(sleep_three); 104 console.info('logMessage contact_auto_merge_and_spilt_test_100 splitCode = ' + splitCode); 105 expect(splitCode == 0).assertTrue(); 106 var map = new Map(); 107 map.set("id", rawContactId1.toString()); 108 await ContactMergeQuery(map, "contact_auto_merge_and_spilt_test_100", 1); 109 } catch (error) { 110 console.info('logMessage contact_auto_merge_and_spilt_test_100 split error = ' + error); 111 } 112 } 113 114 async function deleteAll(uri, tag) 115 { 116 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 117 let condition = new dataShare.DataSharePredicates(); 118 condition.greaterThan("id", "0"); 119 var deleteCode = await dataShareHelper.delete(uri, condition); 120 console.info(tag + ': deleteAll deleteCode = ' + deleteCode); 121 expect(deleteCode == 0).assertTrue(); 122 } 123 124 async function ContactMergeQuery(map, tag, size) 125 { 126 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 127 console.info(tag + ' : ContactMergeQuery start ! dataShareHelper = ' + dataShareHelper); 128 var resultColumns = [ "contact_id" ]; 129 let condition = new dataShare.DataSharePredicates(); 130 console.info(tag + ' : map_id = ' + map.get("id")); 131 condition.equalTo("id", map.get("id")); 132 try { 133 var resultSetID = await dataShareHelper.query(rawContactUri, resultColumns, condition); 134 sleep(sleep_one); 135 var conatctID; 136 if (resultSetID.goToFirstRow()) { 137 do { 138 conatctID = resultSetID.getString(resultSetID.getColumnIndex("contact_id")); 139 console.info(tag + ' : contact_id = ' + conatctID); 140 } while (resultSetID.goToNextRow()); 141 } 142 resultSetID.close(); 143 var pre = new dataShare.DataSharePredicates(); 144 pre.equalTo("contact_id", conatctID); 145 var newResultColumns = []; 146 var resultSet = await dataShareHelper.query(rawContactUri, newResultColumns, pre); 147 sleep(sleep_one); 148 console.info(tag + ' : ContactMergeQuery start ! rowCount = ' + resultSet.rowCount); 149 expect(resultSet.rowCount == size).assertEqual(true); 150 resultSet.close(); 151 } catch (error) { 152 console.info(tag + " : logMessage ContactMergeQuery: error = " + error); 153 } 154 } 155 156 async function updateContactData(updateDataValue, contactDataId, testName) 157 { 158 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 159 var updateValues = {"detail_info" : updateDataValue}; 160 let condition = new dataShare.DataSharePredicates(); 161 condition.equalTo("id", contactDataId.toString()); 162 var code = await dataShareHelper.update(contactDataUri, updateValues, condition); 163 console.info(testName + " updateContactData: code = " + code); 164 sleep(sleep_three); 165 } 166 167 async function insertContactData(dataShareHelper, rawContactId, detailInfo, types, tag) 168 { 169 var size = detailInfo.length; 170 for (var i = 0; i < size; i++) { 171 var contactDataValues = { 172 "raw_contact_id" : rawContactId.toString(), 173 "content_type" : types[i], 174 "detail_info" : detailInfo[i] 175 }; 176 try { 177 var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValues); 178 sleep(sleep_two); 179 expect(contactDataId > 0).assertTrue(); 180 console.info(tag + ' logMessage : insert contactDataId = ' + contactDataId); 181 } catch (error) { 182 console.info('logMessage : contact_data_1 insert error = ' + error); 183 } 184 } 185 } 186 187 async function insertContactDataSingle(dataShareHelper, rawContactId, detailInfo, type) 188 { 189 var size = detailInfo.length; 190 var contactDataValues = {"raw_contact_id" : rawContactId, "content_type" : type, "detail_info" : detailInfo}; 191 try { 192 var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues); 193 sleep(sleep_one); 194 expect(contactDataId1 > 0).assertTrue(); 195 } catch (error) { 196 console.info('logMessage : contact_data_1 insert error = ' + error); 197 } 198 return contactDataId1; 199 } 200 201 async function ManualMergeList(dataShareHelper, rawContactList, testName) 202 { 203 var condition2 = new dataShare.DataSharePredicates(); 204 condition2.in("raw_contact_id", rawContactList); 205 var updateValues2 = {}; 206 try { 207 var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2); 208 sleep(sleep_one); 209 console.info("logMessage " + testName + " ManualMergeCode = " + ManualMergeCode); 210 expect(ManualMergeCode == 0).assertTrue(); 211 var map = new Map(); 212 map.set("id", rawContactList[0].toString()); 213 await ContactMergeQuery(map, testName, rawContactList.length); 214 await deleteAll(rawContactUri, testName); 215 await deleteAll(contactDataUri, testName); 216 } catch (error) { 217 console.info("logMessage " + testName + " manual_merge error = " + error); 218 } 219 } 220 221 /** 222 * @tc.number contact_autoMerge_and_spilt_test_100 223 * @tc.name Two contacts without mobile phone number with the same name are automatically merged and split 224 * @tc.desc Function test 225 */ 226 it("contact_autoMerge_and_spilt_test_100", 0, async function(done) { 227 console.info("------logMessage contact_autoMerge_and_spilt_test_100 is starting!-----"); 228 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 229 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 230 231 var insertRawContactValues1 = {"display_name" : "xiaoli"}; 232 try { 233 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 234 sleep(sleep_one); 235 console.info("logMessage contact_autoMerge_and_spilt_test_100: rawContactId1 = " + rawContactId1); 236 expect(rawContactId1 > 0).assertTrue(); 237 await ContactDataInsert1(dataShareHelper, rawContactId1); 238 } catch (error) { 239 console.info('logMessage contact_autoMerge_and_spilt_test_100: raw_contact_1 insert error = ' + error); 240 done(); 241 } 242 243 var insertRawContactValues2 = {"display_name" : "xiaoli"}; 244 try { 245 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 246 sleep(sleep_one); 247 console.info("logMessage contact_autoMerge_and_spilt_test_100: rawContactId2 = " + rawContactId2); 248 expect(rawContactId2 > 0).assertTrue(); 249 await ContactDataInsert2(dataShareHelper, rawContactId2); 250 } catch (error) { 251 console.info('logMessage contact_autoMerge_and_spilt_test_100: raw_contact_2 insert error = ' + error); 252 done(); 253 } 254 await AutoMerge(dataShareHelper, rawContactId1); 255 done(); 256 }); 257 258 /** 259 * @tc.number contact_manualMerge_test_200 260 * @tc.name Two contacts with the same name, one with a mobile phone number and the other without a mobile phone 261 * number, call the manual merge interface 262 * @tc.desc Function test 263 */ 264 it("contact_manualMerge_test_200", 0, async function(done) { 265 console.info("------logMessage contact_manualMerge_test_200 is starting!-----"); 266 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 267 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 268 269 var insertRawContactValues1 = {"display_name" : "xiaoming"}; 270 try { 271 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 272 sleep(sleep_one); 273 console.info("logMessage contact_manualMerge_test_200: rawContactId1 = " + rawContactId1); 274 expect(rawContactId1 > 0).assertTrue(); 275 await manualMergeDataInsert(dataShareHelper, rawContactId1); 276 } catch (error) { 277 console.info('logMessage contact_manualMerge_test_200: raw_contact_1 insert error = ' + error); 278 done(); 279 } 280 281 var insertRawContactValues2 = {"display_name" : "xiaoming"}; 282 try { 283 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 284 sleep(sleep_one); 285 console.info("logMessage contact_manualMerge_test_200: rawContactId2 = " + rawContactId2); 286 expect(rawContactId2 > 0).assertTrue(); 287 await manualMergeDataInsertTwo(dataShareHelper, rawContactId2); 288 } catch (error) { 289 console.info('logMessage contact_manualMerge_test_200: raw_contact_2 insert error = ' + error); 290 done(); 291 } 292 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 293 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_2000"); 294 done(); 295 }); 296 297 async function manualMergeDataInsert(dataShareHelper, rawContactId1) 298 { 299 var contactDataValuesOne = { 300 "raw_contact_id" : rawContactId1, 301 "content_type" : "name", 302 "detail_info" : "xiaoming" 303 }; 304 var contactDataValuesTwo = { 305 "raw_contact_id" : rawContactId1, 306 "content_type" : "phone", 307 "detail_info" : "123456789", 308 }; 309 var listAddBluk = []; 310 listAddBluk[0] = contactDataValuesOne; 311 listAddBluk[1] = contactDataValuesTwo; 312 try { 313 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 314 sleep(sleep_one); 315 console.info("logMessage contact_manualMerge_test_200: batchInsertCode = " + batchInsertCode); 316 expect(batchInsertCode == 0).assertTrue(); 317 } catch (error) { 318 console.info("logMessage contact_manualMerge_test_200: batch insert error = " + error) 319 } 320 } 321 322 async function manualMergeDataInsertTwo(dataShareHelper, rawContactId2) 323 { 324 var contactDataValues = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoming"}; 325 try { 326 var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValues); 327 sleep(sleep_one); 328 console.info("logMessage contact_manualMerge_test_200: contactDataId = " + contactDataId); 329 expect(contactDataId > 0).assertTrue(); 330 } catch (error) { 331 console.info("logMessage contact_manualMerge_test_200: contact_data_2 insert error = " + error) 332 } 333 } 334 335 /** 336 * @tc.number contact_autoMerge_test_300 337 * @tc.name Two contacts with the same name have a mobile phone number, and the mobile phone numbers are the 338 * same. Call the automatic merge interface 339 * @tc.desc Function test 340 */ 341 it("contact_autoMerge_test_300", 0, async function(done) { 342 console.info("------logMessage contact_autoMerge_test_300 is starting!-----"); 343 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 344 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 345 346 var insertRawContactValues1 = {"display_name" : "xiaohong"}; 347 try { 348 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 349 sleep(sleep_one); 350 console.info("logMessage contact_autoMerge_test_300: rawContactId1 = " + rawContactId1); 351 expect(rawContactId1 > 0).assertTrue(); 352 await autoMergeDataInsert(dataShareHelper, rawContactId1); 353 } catch (error) { 354 console.info('logMessage contact_autoMerge_test_300: raw_contact_1 insert error = ' + error); 355 done(); 356 } 357 358 var insertRawContactValues2 = {"display_name" : "xiaohong"}; 359 try { 360 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 361 sleep(sleep_one); 362 console.info("logMessage contact_autoMerge_test_300: rawContactId2 = " + rawContactId2); 363 expect(rawContactId2 > 0).assertTrue(); 364 await autoMergeDataInsertTwo(dataShareHelper, rawContactId2); 365 } catch (error) { 366 console.info('logMessage contact_autoMerge_test_300: raw_contact_2 insert error = ' + error); 367 done(); 368 } 369 370 await AutoMerger(dataShareHelper, rawContactId1, "contact_autoMerge_test_300"); 371 done(); 372 }); 373 374 async function autoMergeDataInsert(dataShareHelper, rawContactId1) 375 { 376 var contactDataValuesOne = { 377 "raw_contact_id" : rawContactId1, 378 "content_type" : "name", 379 "detail_info" : "xiaohong" 380 }; 381 var contactDataValuesTwo = { 382 "raw_contact_id" : rawContactId1, 383 "content_type" : "phone", 384 "detail_info" : "123465", 385 }; 386 var listAddBluk = []; 387 listAddBluk[0] = contactDataValuesOne; 388 listAddBluk[1] = contactDataValuesTwo; 389 try { 390 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 391 sleep(sleep_one); 392 console.info("logMessage contact_autoMerge_test_300: batchInsertCode = " + batchInsertCode); 393 expect(batchInsertCode == 0).assertTrue(); 394 } catch (error) { 395 console.info("logMessage contact_autoMerge_test_300: batch insert1 error = " + error) 396 } 397 } 398 399 async function autoMergeDataInsertTwo(dataShareHelper, rawContactId2) 400 { 401 var contactDataValuesThree = { 402 "raw_contact_id" : rawContactId2, 403 "content_type" : "name", 404 "detail_info" : "xiaohong" 405 }; 406 var contactDataValuesFour = { 407 "raw_contact_id" : rawContactId2, 408 "content_type" : "phone", 409 "detail_info" : "123465", 410 }; 411 var listAddBluk2 = []; 412 listAddBluk2[0] = contactDataValuesThree; 413 listAddBluk2[1] = contactDataValuesFour; 414 try { 415 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk2); 416 sleep(sleep_one); 417 console.info("logMessage contact_autoMerge_test_300: batchInsertCode = " + batchInsertCode); 418 expect(batchInsertCode == 0).assertTrue(); 419 } catch (error) { 420 console.info("logMessage contact_autoMerge_test_300: batch insert2 error = " + error) 421 } 422 } 423 424 async function AutoMerger(dataShareHelper, rawContactId1, testName) 425 { 426 let condition = new dataShare.DataSharePredicates(); 427 var updateValues = {}; 428 try { 429 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 430 sleep(sleep_one); 431 console.info("logMessage " + testName + "autoMergeCode = " + autoMergeCode); 432 expect(autoMergeCode == 0).assertTrue(); 433 var map = new Map(); 434 map.set("id", rawContactId1.toString()); 435 await ContactMergeQuery(map, testName, result_two); 436 await deleteAll(rawContactUri, testName); 437 await deleteAll(contactDataUri, testName); 438 } catch (error) { 439 console.info("logMessage " + testName + "auto_merge error =" + error); 440 } 441 } 442 443 async function AutoNotMerger(dataShareHelper, rawContactId1, testName) 444 { 445 let condition = new dataShare.DataSharePredicates(); 446 var updateValues = {}; 447 try { 448 sleep(sleep_two); 449 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 450 console.info("logMessage " + testName + "autoMergeCode = " + autoMergeCode); 451 expect(autoMergeCode == -1).assertTrue(); 452 var map = new Map(); 453 map.set("id", rawContactId1.toString()); 454 await ContactMergeQuery(map, testName, 1); 455 await deleteAll(rawContactUri, testName); 456 await deleteAll(contactDataUri, testName); 457 } catch (error) { 458 console.info("logMessage " + testName + "auto_merge error =" + error); 459 } 460 } 461 462 /** 463 * @tc.number contact_manualMerge_test_400 464 * @tc.name Two contacts with the same name have a mobile phone number, and the mobile phone numbers are 465 * different. Call the manual merge interface 466 * @tc.desc Function test 467 */ 468 it("contact_manualMerge_test_400", 0, async function(done) { 469 console.info("------logMessage contact_manualMerge_test_400 is starting!-----"); 470 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 471 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 472 473 var insertRawContactValues1 = {"display_name" : "xiaozhang"}; 474 try { 475 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 476 sleep(sleep_one); 477 console.info("logMessage contact_manualMerge_test_400: rawContactId1 = " + rawContactId1); 478 expect(rawContactId1 > 0).assertTrue(); 479 await noequalPhoneDataInsert(dataShareHelper, rawContactId1) 480 } catch (error) { 481 console.info('logMessage contact_manualMerge_test_400: raw_contact_1 insert error = ' + error); 482 done(); 483 } 484 485 var insertRawContactValues2 = {"display_name" : "xiaozhang"}; 486 try { 487 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 488 sleep(sleep_one); 489 console.info("logMessage contact_manualMerge_test_400: rawContactId2 = " + rawContactId2); 490 expect(rawContactId2 > 0).assertTrue(); 491 await noequalPhoneDataInsertTwo(dataShareHelper, rawContactId2) 492 } catch (error) { 493 console.info('logMessage contact_manualMerge_test_400: raw_contact_2 insert error = ' + error); 494 done(); 495 } 496 497 await noequalManualMerge(dataShareHelper, rawContactId1, rawContactId2); 498 done(); 499 }); 500 501 async function noequalPhoneDataInsert(dataShareHelper, rawContactId1) 502 { 503 var contactDataValuesOne = { 504 "raw_contact_id" : rawContactId1, 505 "content_type" : "name", 506 "detail_info" : "xiaozhang" 507 }; 508 var contactDataValuesTwo = { 509 "raw_contact_id" : rawContactId1, 510 "content_type" : "phone", 511 "detail_info" : "147852", 512 }; 513 var listAddBluk = []; 514 listAddBluk[0] = contactDataValuesOne; 515 listAddBluk[1] = contactDataValuesTwo; 516 try { 517 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 518 sleep(sleep_one); 519 console.info("logMessage contact_manualMerge_test_400: batchInsertCode = " + batchInsertCode); 520 expect(batchInsertCode == 0).assertTrue(); 521 } catch (error) { 522 console.info("logMessage contact_manualMerge_test_400: batch insert1 error = " + error) 523 } 524 } 525 526 async function noequalPhoneDataInsertTwo(dataShareHelper, rawContactId2) 527 { 528 var contactDataValuesThree = { 529 "raw_contact_id" : rawContactId2, 530 "content_type" : "name", 531 "detail_info" : "xiaozhang" 532 }; 533 var contactDataValuesFour = { 534 "raw_contact_id" : rawContactId2, 535 "content_type" : "phone", 536 "detail_info" : "996369", 537 }; 538 var listAddBluk2 = []; 539 listAddBluk2[0] = contactDataValuesThree; 540 listAddBluk2[1] = contactDataValuesFour; 541 try { 542 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk2); 543 sleep(sleep_one); 544 console.info("logMessage contact_manualMerge_test_400: batchInsertCode = " + batchInsertCode); 545 expect(batchInsertCode == 0).assertTrue(); 546 } catch (error) { 547 console.info("logMessage contact_manualMerge_test_400: batch insert2 error = " + error) 548 } 549 } 550 551 async function noequalManualMerge(dataShareHelper, rawContactId1, rawContactId2) 552 { 553 var condition2 = new dataShare.DataSharePredicates(); 554 var id = [ rawContactId1.toString(), rawContactId2.toString() ]; 555 condition2.in("raw_contact_id", id); 556 var updateValues2 = {}; 557 try { 558 var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2); 559 sleep(sleep_one); 560 console.info("logMessage contact_manualMerge_test_400 ManualMergeCode = " + ManualMergeCode); 561 expect(ManualMergeCode == 0).assertTrue(); 562 var map = new Map(); 563 map.set("id", rawContactId1.toString()); 564 await ContactMergeQuery(map, "contact_manualMerge_test_400", result_two); 565 await deleteAll(rawContactUri, "contact_manualMerge_test_400"); 566 await deleteAll(contactDataUri, "contact_manualMerge_test_400"); 567 } catch (error) { 568 console.info("logMessage contact_manualMerge_test_400 manual_merge error = " + error); 569 } 570 } 571 572 /** 573 * @tc.number contact_manualMerge_test_500 574 * @tc.name Two contacts with the same name, one with two mobile phone numbers and the other without mobile phone 575 * numbers, call the manual merge interface 576 * @tc.desc Function test 577 */ 578 it("contact_manualMerge_test_500", 0, async function(done) { 579 console.info("------logMessage contact_manualMerge_test_500 is starting!-----"); 580 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 581 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 582 583 var insertRawContactValues1 = {"display_name" : "xiaozhou"}; 584 try { 585 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 586 sleep(sleep_one); 587 console.info("logMessage contact_manualMerge_test_500: rawContactId1 = " + rawContactId1); 588 expect(rawContactId1 > 0).assertTrue(); 589 await manualDataInsert(dataShareHelper, rawContactId1) 590 } catch (error) { 591 console.info('logMessage contact_manualMerge_test_500: raw_contact_1 insert error = ' + error); 592 done(); 593 } 594 595 var insertRawContactValues2 = {"display_name" : "xiaozhou"}; 596 try { 597 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 598 sleep(sleep_one); 599 console.info("logMessage contact_manualMerge_test_500: rawContactId2 = " + rawContactId2); 600 expect(rawContactId2 > 0).assertTrue(); 601 await manualDataInsertTwo(dataShareHelper, rawContactId2) 602 } catch (error) { 603 console.info('logMessage contact_manualMerge_test_500: raw_contact_2 insert error = ' + error); 604 done(); 605 } 606 await hasOneNoPhoneManualMerge(dataShareHelper, rawContactId1, rawContactId2); 607 done(); 608 }); 609 610 async function manualDataInsert(dataShareHelper, rawContactId1) 611 { 612 var contactDataValuesOne = { 613 "raw_contact_id" : rawContactId1, 614 "content_type" : "name", 615 "detail_info" : "xiaozhou" 616 }; 617 var contactDataValuesTwo = { 618 "raw_contact_id" : rawContactId1, 619 "content_type" : "phone", 620 "detail_info" : "123456789", 621 }; 622 var contactDataValuesThree = { 623 "raw_contact_id" : rawContactId1, 624 "content_type" : "phone", 625 "detail_info" : "996632", 626 }; 627 var listAddBluk = []; 628 listAddBluk[0] = contactDataValuesOne; 629 listAddBluk[1] = contactDataValuesTwo; 630 listAddBluk[array_two] = contactDataValuesThree; 631 try { 632 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 633 sleep(sleep_one); 634 console.info("logMessage contact_manualMerge_test_500: batchInsertCode = " + batchInsertCode); 635 expect(batchInsertCode == 0).assertTrue(); 636 } catch (error) { 637 console.info("logMessage contact_manualMerge_test_500: batch insert1 error = " + error) 638 } 639 } 640 641 async function manualDataInsertTwo(dataShareHelper, rawContactId2) 642 { 643 var contactDataValuesFour = { 644 "raw_contact_id" : rawContactId2, 645 "content_type" : "name", 646 "detail_info" : "xiaozhou" 647 }; 648 try { 649 var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValuesFour); 650 sleep(sleep_one); 651 console.info("logMessage contact_manualMerge_test_500: contactDataId = " + contactDataId); 652 expect(contactDataId > 0).assertTrue(); 653 } catch (error) { 654 console.info("logMessage contact_manualMerge_test_500: contact_data insert error = " + error) 655 } 656 } 657 658 async function hasOneNoPhoneManualMerge(dataShareHelper, rawContactId1, rawContactId2) 659 { 660 var condition2 = new dataShare.DataSharePredicates(); 661 var id = [ rawContactId1.toString(), rawContactId2.toString() ]; 662 condition2.in("raw_contact_id", id); 663 var updateValues2 = {}; 664 try { 665 var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2); 666 sleep(sleep_one); 667 console.info("logMessage contact_manualMerge_test_500 ManualMergeCode = " + ManualMergeCode); 668 expect(ManualMergeCode == 0).assertTrue(); 669 var map = new Map(); 670 map.set("id", rawContactId1.toString()); 671 await ContactMergeQuery(map, "contact_manualMerge_test_500", result_two); 672 await deleteAll(rawContactUri, "contact_manualMerge_test_500"); 673 await deleteAll(contactDataUri, "contact_manualMerge_test_500"); 674 } catch (error) { 675 console.info("logMessage contact_manualMerge_test_500 manual_merge error = " + error); 676 } 677 } 678 679 /** 680 * @tc.number contact_autoMerge_test_600 681 * @tc.name Batch add contacts, then call auto merge interface. 682 * @tc.desc Function test 683 */ 684 it("contact_autoMerge_test_600", 0, async function(done) { 685 console.info("------logMessage contact_autoMerge_test_600 is starting!-----"); 686 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 687 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 688 try { 689 var insertRawContactValues1 = {"display_name" : "xiaoliu"}; 690 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 691 sleep(sleep_one); 692 console.info("logMessage contact_autoMerge_test_600: rawContactId1 = " + rawContactId1); 693 expect(rawContactId1 > 0).assertTrue(); 694 } catch (error) { 695 console.info('logMessage contact_autoMerge_test_600: raw_contact_1 insert error = ' + error); 696 done(); 697 } 698 699 try { 700 var insertRawContactValues2 = {"display_name" : "xiaoliu"}; 701 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 702 sleep(sleep_one); 703 console.info("logMessage contact_autoMerge_test_600: rawContactId2 = " + rawContactId2); 704 expect(rawContactId2 > 0).assertTrue(); 705 } catch (error) { 706 console.info('logMessage contact_autoMerge_test_600: raw_contact_2 insert error = ' + error); 707 done(); 708 } 709 710 try { 711 var insertRawContactValues3 = {"display_name" : "xiaoliu"}; 712 var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3); 713 sleep(sleep_one); 714 console.info("logMessage contact_autoMerge_test_600: rawContactId3 = " + rawContactId3); 715 expect(rawContactId3 > 0).assertTrue(); 716 } catch (error) { 717 console.info('logMessage contact_autoMerge_test_600: raw_contact_3 insert error = ' + error); 718 done(); 719 } 720 721 await ContactDataBatchInsert(); 722 done(); 723 }); 724 725 async function ContactDataBatchInsert(dataShareHelper, rawContactId1, rawContactId2, rawContactId3) 726 { 727 var contactDataValues1 = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaoliu"}; 728 var contactDataValues2 = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoliu"}; 729 var contactDataValues3 = {"raw_contact_id" : rawContactId3, "content_type" : "name", "detail_info" : "xiaoliu"}; 730 var listAddBluk = []; 731 listAddBluk[0] = contactDataValues1; 732 listAddBluk[1] = contactDataValues2; 733 listAddBluk[array_two] = contactDataValues3; 734 try { 735 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 736 sleep(sleep_two); 737 console.info("logMessage contact_autoMerge_test_600: batchInsertCode = " + batchInsertCode); 738 expect(batchInsertCode == 0).assertTrue(); 739 await threeAutoMerger(); 740 await deleteAll(rawContactUri, "contact_autoMerge_test_600"); 741 await deleteAll(contactDataUri, "contact_autoMerge_test_600"); 742 } catch (error) { 743 console.info('logMessage contact_autoMerge_test_600: raw_contact insert error = ' + error); 744 } 745 } 746 747 async function threeAutoMerger(dataShareHelper, rawContactId1) 748 { 749 let condition = new dataShare.DataSharePredicates(); 750 var updateValues = {}; 751 try { 752 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 753 sleep(sleep_one); 754 console.info("logMessage contact_autoMerge_test_600 autoMergeCode = " + autoMergeCode); 755 expect(autoMergeCode == 0).assertTrue(); 756 var map = new Map(); 757 map.set("id", rawContactId1.toString()); 758 await ContactMergeQuery(map, "contact_autoMerge_test_600", result_three); 759 } catch (error) { 760 console.info("logMessage contact_autoMerge_test_600 auto_merge error = " + error); 761 } 762 } 763 764 /** 765 * @tc.number contact_query_merge_list_test_700 766 * @tc.name Query contacts to be merged 767 * @tc.desc Function test 768 */ 769 it("contact_query_merge_list_test_700", 0, async function(done) { 770 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 771 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 772 console.info("------logMessage contact_query_merge_list_test_700 is starting!-----"); 773 var insertRawContactValues1 = {"display_name" : "xiaowu"}; 774 try { 775 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 776 sleep(sleep_one); 777 console.info("logMessage contact_query_merge_list_test_700: rawContactId1 = " + rawContactId1); 778 expect(rawContactId1 > 0).assertTrue(); 779 await queryContactDataInsert(dataShareHelper, rawContactId1); 780 } catch (error) { 781 console.info('logMessage contact_query_merge_list_test_700: raw_contact_1 insert error = ' + error); 782 done(); 783 } 784 785 var insertRawContactValues2 = {"display_name" : "xiaowu"}; 786 try { 787 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 788 sleep(sleep_one); 789 console.info("logMessage contact_query_merge_list_test_700: rawContactId2 = " + rawContactId2); 790 expect(rawContactId2 > 0).assertTrue(); 791 await queryContactDataInsertTwo(dataShareHelper, rawContactId2); 792 } catch (error) { 793 console.info('logMessage contact_query_merge_list_test_700: raw_contact_2 insert error = ' + error); 794 done(); 795 } 796 await queryMergeList(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_700"); 797 done(); 798 }); 799 800 async function queryContactDataInsert(dataShareHelper, rawContactId1) 801 { 802 var contactDataValues = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaowu"}; 803 try { 804 var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues); 805 sleep(sleep_one); 806 console.info("logMessage contact_query_merge_list_test_700: contactDataId1 = " + contactDataId1); 807 expect(contactDataId1 > 0).assertTrue(); 808 } catch (error) { 809 console.info('logMessage contact_query_merge_list_test_700: contact_data_1 insert error = ' + error); 810 } 811 } 812 813 async function queryContactDataInsertTwo(dataShareHelper, rawContactId2) 814 { 815 var contactDataValuesOne = { 816 "raw_contact_id" : rawContactId2, 817 "content_type" : "name", 818 "detail_info" : "xiaowu" 819 }; 820 var contactDataValuesTwo = { 821 "raw_contact_id" : rawContactId2, 822 "content_type" : "phone", 823 "detail_info" : "002563" 824 }; 825 var listAddBluk = []; 826 listAddBluk[0] = contactDataValuesOne; 827 listAddBluk[1] = contactDataValuesTwo; 828 try { 829 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 830 sleep(sleep_one); 831 console.info("logMessage contact_query_merge_list_test_700: batchInsertCode = " + batchInsertCode); 832 expect(batchInsertCode == 0).assertTrue(); 833 } catch (error) { 834 console.info('logMessage contact_query_merge_list_test_700: contact_data_2 insert error = ' + error); 835 } 836 } 837 838 async function queryMergeList(dataShareHelper, rawContactId1, rawContactId2, testName) 839 { 840 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 841 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 842 var columns = []; 843 var predicates = new dataShare.DataSharePredicates(); 844 try { 845 sleep(sleep_three); 846 var resultSet = await dataShareHelper.query(uriQueryMergeList, columns, predicates); 847 var array = [ rawContactId1, rawContactId2 ]; 848 var i = 0; 849 if (resultSet.rowCount > 0) { 850 if (resultSet.goToFirstRow()) { 851 do { 852 var rawContactId = resultSet.getInt(resultSet.getColumnIndex("raw_contact_id")); 853 console.info(testName + (array[i] == rawContactId)); 854 expect(array[i] == rawContactId).assertTrue(); 855 console.info(testName + rawContactId); 856 i++; 857 } while (resultSet.goToNextRow()) 858 } 859 } 860 resultSet.close(); 861 await deleteAll(rawContactUri, testName); 862 await deleteAll(contactDataUri, testName); 863 } catch (error) { 864 console.info(testName + ": query error = " + error); 865 } 866 } 867 868 /** 869 * @tc.number contact_query_merge_list_test_800 870 * @tc.name Insert contacts with the same name and different mobile phone numbers, 871 * and check whether the database can query contacts that can be merged 872 * @tc.desc Function test 873 */ 874 it("contact_query_merge_list_test_800", 0, async function(done) { 875 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 876 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 877 console.info("------logMessage contact_query_merge_list_test_800 is starting!-----"); 878 var insertRawContactValues1 = {"display_name" : "xiaowuu"}; 879 try { 880 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 881 sleep(sleep_one); 882 console.info("logMessage contact_query_merge_list_test_800: rawContactId1 = " + rawContactId1); 883 expect(rawContactId1 > 0).assertTrue(); 884 var detailInfo = [ "xiaowuu", "1854154" ]; 885 var types = [ "name", "phone" ]; 886 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_800"); 887 } catch (error) { 888 console.info('logMessage contact_query_merge_list_test_800: raw_contact_1 insert error = ' + error); 889 done(); 890 } 891 var insertRawContactValues2 = {"display_name" : "xiaowuu"}; 892 try { 893 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 894 sleep(sleep_one); 895 console.info("logMessage contact_query_merge_list_test_800: rawContactId2 = " + rawContactId2); 896 expect(rawContactId2 > 0).assertTrue(); 897 var detailInfo1 = [ "xiaowuu", "1854154414242" ]; 898 var types1 = [ "name", "phone" ]; 899 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_800"); 900 } catch (error) { 901 console.info('logMessage contact_query_merge_list_test_800: raw_contact_2 insert error = ' + error); 902 done(); 903 } 904 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 905 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_800"); 906 done(); 907 }); 908 909 /** 910 * @tc.number contact_query_merge_list_test_900 911 * @tc.name Insert two contacts with different names to see if the database can 912 * query contacts that can be merged 913 * @tc.desc Function test 914 */ 915 it("contact_query_merge_list_test_900", 0, async function(done) { 916 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 917 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 918 console.info("------logMessage contact_query_merge_list_test_900 is starting!-----"); 919 var insertRawContactValues1 = {"display_name" : "xiaowusu"}; 920 try { 921 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 922 sleep(sleep_one); 923 console.info("logMessage contact_query_merge_list_test_900: rawContactId1 = " + rawContactId1); 924 expect(rawContactId1 > 0).assertTrue(); 925 var detailInfo = [ "xiaowusu" ]; 926 var types = [ "name" ]; 927 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_900"); 928 } catch (error) { 929 console.info('logMessage contact_query_merge_list_test_900: raw_contact_1 insert error = ' + error); 930 done(); 931 } 932 var insertRawContactValues2 = {"display_name" : "kxiaowusu"}; 933 try { 934 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 935 sleep(sleep_one); 936 console.info("logMessage contact_query_merge_list_test_900: rawContactId2 = " + rawContactId2); 937 expect(rawContactId2 > 0).assertTrue(); 938 var detailInfo1 = [ "kxiaowusu" ]; 939 var types1 = [ "name" ]; 940 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_900"); 941 } catch (error) { 942 console.info('logMessage contact_query_merge_list_test_900: raw_contact_2 insert error = ' + error); 943 done(); 944 } 945 await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_900"); 946 done(); 947 }); 948 949 async function ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, tag) 950 { 951 var condition2 = new dataShare.DataSharePredicates(); 952 var id = [ rawContactId1.toString(), rawContactId2.toString() ]; 953 condition2.in("raw_contact_id", id); 954 var updateValues2 = {}; 955 try { 956 var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2); 957 sleep(sleep_one); 958 console.info(tag + "logMessage ManualMergeCode = " + ManualMergeCode); 959 expect(ManualMergeCode == -1).assertTrue(); 960 var map = new Map(); 961 map.set("id", rawContactId1.toString()); 962 await ContactMergeQuery(map, tag, 1); 963 await deleteAll(rawContactUri, tag); 964 await deleteAll(contactDataUri, tag); 965 } catch (error) { 966 console.info(tag + "logMessage manual_merge error = " + error); 967 } 968 } 969 970 /** 971 * @tc.number contact_query_merge_list_test_1000 972 * @tc.name Insert contacts with the same name and phone number, and check whether 973 * the database can query contacts that can be merged 974 * @tc.desc Function test 975 */ 976 it("contact_query_merge_list_test_1000", 0, async function(done) { 977 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 978 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 979 console.info("------logMessage contact_query_merge_list_test_1000 is starting!-----"); 980 var insertRawContactValues1 = {"display_name" : "xiaotiantian"}; 981 try { 982 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 983 sleep(sleep_one); 984 console.info("logMessage contact_query_merge_list_test_1000: rawContactId1 = " + rawContactId1); 985 expect(rawContactId1 > 0).assertTrue(); 986 var detailInfo = [ "xiaotiantian", "1854154414242441" ]; 987 var types = [ "name", "phone" ]; 988 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1000"); 989 } catch (error) { 990 console.info('logMessage contact_query_merge_list_test_1000: raw_contact_1 insert error = ' + error); 991 done(); 992 } 993 var insertRawContactValues2 = {"display_name" : "xiaotiantian"}; 994 try { 995 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 996 sleep(sleep_one); 997 console.info("logMessage contact_query_merge_list_test_1000: rawContactId2 = " + rawContactId2); 998 expect(rawContactId2 > 0).assertTrue(); 999 var detailInfo1 = [ "xiaotiantian", "1854154414242441" ]; 1000 var types1 = [ "name", "phone" ]; 1001 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1000"); 1002 sleep(sleep_two); 1003 } catch (error) { 1004 console.info('logMessage contact_query_merge_list_test_1000: raw_contact_2 insert error = ' + error); 1005 done(); 1006 } 1007 let condition = new dataShare.DataSharePredicates(); 1008 var updateValues = {}; 1009 try { 1010 sleep(sleep_three); 1011 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 1012 console.info("logMessage contact_query_merge_list_test_1000: autoMergeCode = " + autoMergeCode); 1013 expect(autoMergeCode == 0).assertTrue(); 1014 var map = new Map(); 1015 map.set("id", rawContactId1.toString()); 1016 await ContactMergeQuery(map, "contact_query_merge_list_test_1000", result_two); 1017 await deleteAll(rawContactUri, "contact_query_merge_list_test_1000"); 1018 await deleteAll(contactDataUri, "contact_query_merge_list_test_1000"); 1019 done(); 1020 } catch (error) { 1021 console.info("logMessage contact_query_merge_list_test_1000: auto_merge error = " + error); 1022 } 1023 }); 1024 1025 /** 1026 * @tc.number contact_query_merge_list_test_1100 1027 * @tc.name Insert contacts with different names and different mobile phone numbers, 1028 and check whether the database can query contacts that can be merged 1029 * @tc.desc Function test 1030 */ 1031 it("contact_query_merge_list_test_1100", 0, async function(done) { 1032 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1033 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1034 console.info("------logMessage contact_query_merge_list_test_1100 is starting!-----"); 1035 var insertRawContactValues1 = {"display_name" : "wsxiuklkk"}; 1036 try { 1037 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1038 sleep(sleep_one); 1039 console.info("logMessage contact_query_merge_list_test_1100: rawContactId1 = " + rawContactId1); 1040 expect(rawContactId1 > 0).assertTrue(); 1041 var detailInfo = [ "wsxiuklkk", "56465465" ]; 1042 var types = [ "name", "phone" ]; 1043 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1100"); 1044 } catch (error) { 1045 console.info('logMessage contact_query_merge_list_test_1100: raw_contact_1 insert error = ' + error); 1046 done(); 1047 } 1048 var insertRawContactValues2 = {"display_name" : "xiaolilili"}; 1049 try { 1050 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1051 sleep(sleep_one); 1052 console.info("logMessage contact_query_merge_list_test_1100: rawContactId2 = " + rawContactId2); 1053 expect(rawContactId2 > 0).assertTrue(); 1054 var detailInfo1 = [ "xiaolilili", "8954598595" ]; 1055 var types1 = [ "name", "phone" ]; 1056 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1100"); 1057 } catch (error) { 1058 console.info('logMessage contact_query_merge_list_test_1100: raw_contact_2 insert error = ' + error); 1059 done(); 1060 } 1061 await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_1100"); 1062 done(); 1063 }); 1064 1065 /** 1066 * @tc.number contact_query_merge_list_test_1200 1067 * @tc.name Insert two contacts with the same name. Contacts A and B have two 1068 same mobile phone numbers, and check whether the database can be merged 1069 * @tc.desc Function test 1070 */ 1071 it("contact_query_merge_list_test_1200", 0, async function(done) { 1072 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1073 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1074 console.info("------logMessage contact_query_merge_list_test_1200 is starting!-----"); 1075 var insertRawContactValues1 = {"display_name" : "lwsxiuklkk"}; 1076 try { 1077 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1078 sleep(sleep_one); 1079 console.info("logMessage contact_query_merge_list_test_1200: rawContactId1 = " + rawContactId1); 1080 expect(rawContactId1 > 0).assertTrue(); 1081 var detailInfo = [ "lwsxiuklkk", "122504", "122505" ]; 1082 var types = [ "name", "phone", "phone" ]; 1083 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1200"); 1084 } catch (error) { 1085 console.info('logMessage contact_query_merge_list_test_1200: raw_contact_1 insert error = ' + error); 1086 done(); 1087 } 1088 var insertRawContactValues2 = {"display_name" : "lwsxiuklkk"}; 1089 try { 1090 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1091 sleep(sleep_one); 1092 console.info("logMessage contact_query_merge_list_test_1200: rawContactId2 = " + rawContactId2); 1093 expect(rawContactId2 > 0).assertTrue(); 1094 var detailInfo1 = [ "lwsxiuklkk", "122504", "122505" ]; 1095 var types1 = [ "name", "phone", "phone" ]; 1096 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1200"); 1097 } catch (error) { 1098 console.info('logMessage contact_query_merge_list_test_1200: raw_contact_2 insert error = ' + error); 1099 done(); 1100 } 1101 await AutoMerger(dataShareHelper, rawContactId1, "contact_query_merge_list_test_1200"); 1102 done(); 1103 }); 1104 1105 /** 1106 * @tc.number contact_query_merge_list_test_1300 1107 * @tc.name Insert two contacts with the same name. Contacts A and B have two 1108 * identical mobile phone numbers. Check whether the database can be merged 1109 * @tc.desc Function test 1110 */ 1111 it("contact_query_merge_list_test_1300", 0, async function(done) { 1112 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1113 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1114 console.info("------logMessage contact_query_merge_list_test_1300 is starting!-----"); 1115 var insertRawContactValues1 = {"display_name" : "xiaowuuklkk"}; 1116 try { 1117 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1118 sleep(sleep_one); 1119 console.info("logMessage contact_query_merge_list_test_1300: rawContactId1 = " + rawContactId1); 1120 expect(rawContactId1 > 0).assertTrue(); 1121 var detailInfo = [ "xiaowuuklkk", "56465465", "122504" ]; 1122 var types = [ "name", "phone", "phone" ]; 1123 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1300"); 1124 } catch (error) { 1125 console.info('logMessage contact_query_merge_list_test_1300: raw_contact_1 insert error = ' + error); 1126 done(); 1127 } 1128 var insertRawContactValues2 = {"display_name" : "xiaowuuklkk"}; 1129 try { 1130 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1131 sleep(sleep_one); 1132 console.info("logMessage contact_query_merge_list_test_1300: rawContactId2 = " + rawContactId2); 1133 expect(rawContactId2 > 0).assertTrue(); 1134 var detailInfo1 = [ "xiaowuuklkk", "8954598595", "1225054" ]; 1135 var types1 = [ "name", "phone", "phone" ]; 1136 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1300"); 1137 } catch (error) { 1138 console.info('logMessage contact_query_merge_list_test_1300: raw_contact_2 insert error = ' + error); 1139 done(); 1140 } 1141 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 1142 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1300"); 1143 done(); 1144 }); 1145 1146 /** 1147 * @tc.number contact_query_merge_list_test_1400 1148 * @tc.name Insert two contacts with the same name. Contacts A and B have two mobile phone 1149 * numbers, one of which is the same. Check whether the database can be merged 1150 * @tc.desc Function test 1151 */ 1152 it("contact_query_merge_list_test_1400", 0, async function(done) { 1153 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1154 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1155 console.info("------logMessage contact_query_merge_list_test_1400 is starting!-----"); 1156 var insertRawContactValues1 = {"display_name" : "limingm"}; 1157 try { 1158 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1159 sleep(sleep_one); 1160 console.info("logMessage contact_query_merge_list_test_1400: rawContactId1 = " + rawContactId1); 1161 expect(rawContactId1 > 0).assertTrue(); 1162 var detailInfo = [ "limingm", "122504555", "1122505" ]; 1163 var types = [ "name", "phone", "phone" ]; 1164 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1400"); 1165 } catch (error) { 1166 console.info('logMessage contact_query_merge_list_test_1400: raw_contact_1 insert error = ' + error); 1167 done(); 1168 } 1169 var insertRawContactValues2 = {"display_name" : "limingm"}; 1170 try { 1171 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1172 sleep(sleep_one); 1173 console.info("logMessage contact_query_merge_list_test_1400: rawContactId2 = " + rawContactId2); 1174 expect(rawContactId2 > 0).assertTrue(); 1175 var detailInfo1 = [ "limingm", "122504555", "1225056" ]; 1176 var types1 = [ "name", "phone", "phone" ]; 1177 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1400"); 1178 } catch (error) { 1179 console.info('logMessage contact_query_merge_list_test_1400: raw_contact_2 insert error = ' + error); 1180 done(); 1181 } 1182 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 1183 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1400"); 1184 done(); 1185 }); 1186 1187 /** 1188 * @tc.number contact_query_merge_list_test_1500 1189 * @tc.name Insert two contacts with the same name, contact A has two mobile phone numbers, 1190 * and contact B has one mobile phone number which is the same as one of the mobile phone 1191 * numbers of A, and check whether the database can be merged 1192 * @tc.desc Function test 1193 */ 1194 it("contact_query_merge_list_test_1500", 0, async function(done) { 1195 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1196 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1197 console.info("------logMessage contact_query_merge_list_test_1500 is starting!-----"); 1198 var insertRawContactValues1 = {"display_name" : "kplimingm"}; 1199 try { 1200 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1201 sleep(sleep_one); 1202 console.info("logMessage contact_query_merge_list_test_1500: rawContactId1 = " + rawContactId1); 1203 expect(rawContactId1 > 0).assertTrue(); 1204 var detailInfo = [ "kplimingm", "7122504555", "1122505" ]; 1205 var types = [ "name", "phone", "phone" ]; 1206 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1500"); 1207 } catch (error) { 1208 console.info('logMessage contact_query_merge_list_test_1500: raw_contact_1 insert error = ' + error); 1209 done(); 1210 } 1211 var insertRawContactValues2 = {"display_name" : "kplimingm"}; 1212 try { 1213 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1214 sleep(sleep_one); 1215 console.info("logMessage contact_query_merge_list_test_1500: rawContactId2 = " + rawContactId2); 1216 expect(rawContactId2 > 0).assertTrue(); 1217 var detailInfo1 = [ "kplimingm", "7122504555" ]; 1218 var types1 = [ "name", "phone" ]; 1219 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1500"); 1220 } catch (error) { 1221 console.info('logMessage contact_query_merge_list_test_1500: raw_contact_2 insert error = ' + error); 1222 done(); 1223 } 1224 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 1225 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1500"); 1226 done(); 1227 }); 1228 1229 /** 1230 * @tc.number contact_query_merge_list_test_1600 1231 * @tc.name Insert two contacts with the same name, contact A has two mobile phone numbers, 1232 * and contact B has a mobile phone number different from that of A, check whether 1233 * the database can be merged 1234 * @tc.desc Function test 1235 */ 1236 it("contact_query_merge_list_test_1600", 0, async function(done) { 1237 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1238 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1239 console.info("------logMessage contact_query_merge_list_test_1600 is starting!-----"); 1240 var insertRawContactValues1 = {"display_name" : "pkplimingm"}; 1241 try { 1242 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1243 sleep(sleep_one); 1244 console.info("logMessage contact_query_merge_list_test_1600: rawContactId1 = " + rawContactId1); 1245 expect(rawContactId1 > 0).assertTrue(); 1246 var detailInfo = [ "pkplimingm", "87122504555", "11122505" ]; 1247 var types = [ "name", "phone", "phone" ]; 1248 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1600"); 1249 } catch (error) { 1250 console.info('logMessage contact_query_merge_list_test_1600: raw_contact_1 insert error = ' + error); 1251 done(); 1252 } 1253 var insertRawContactValues2 = {"display_name" : "pkplimingm"}; 1254 try { 1255 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1256 sleep(sleep_one); 1257 console.info("logMessage contact_query_merge_list_test_1600: rawContactId2 = " + rawContactId2); 1258 expect(rawContactId2 > 0).assertTrue(); 1259 var detailInfo1 = [ "pkplimingm", "7122554504555", "11122505" ]; 1260 var types1 = [ "name", "phone", "phone" ]; 1261 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1600"); 1262 } catch (error) { 1263 console.info('logMessage contact_query_merge_list_test_1600: raw_contact_2 insert error = ' + error); 1264 done(); 1265 } 1266 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 1267 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1600"); 1268 done(); 1269 }); 1270 1271 /** 1272 * @tc.number contact_query_merge_list_test_1700 1273 * @tc.name Insert multiple manually merged contacts to check whether the database can be merged 1274 * @tc.desc Function test 1275 */ 1276 it("contact_query_merge_list_test_1700", 0, async function(done) { 1277 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1278 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1279 console.info("------logMessage contact_query_merge_list_test_1700 is starting!-----"); 1280 var insertRawContactValues1 = {"display_name" : "llllllk"}; 1281 try { 1282 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1283 sleep(sleep_one); 1284 console.info("logMessage contact_query_merge_list_test_1700: rawContactId1 = " + rawContactId1); 1285 expect(rawContactId1 > 0).assertTrue(); 1286 var detailInfo = [ "llllllk", "87122504555", "11122505" ]; 1287 var types = [ "name", "phone", "phone" ]; 1288 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1700"); 1289 } catch (error) { 1290 console.info('logMessage contact_query_merge_list_test_1700: raw_contact_1 insert error = ' + error); 1291 done(); 1292 } 1293 var insertRawContactValues2 = {"display_name" : "llllllk"}; 1294 try { 1295 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1296 sleep(sleep_one); 1297 console.info("logMessage contact_query_merge_list_test_1700: rawContactId2 = " + rawContactId2); 1298 expect(rawContactId2 > 0).assertTrue(); 1299 var detailInfo1 = [ "llllllk", "7555", "02505" ]; 1300 var types1 = [ "name", "phone", "phone" ]; 1301 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1700"); 1302 } catch (error) { 1303 console.info('logMessage contact_query_merge_list_test_1700: raw_contact_2 insert error = ' + error); 1304 done(); 1305 } 1306 var insertRawContactValues3 = {"display_name" : "llllllk"}; 1307 try { 1308 var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3); 1309 sleep(sleep_one); 1310 console.info("logMessage contact_query_merge_list_test_1700: rawContactId2 = " + rawContactId3); 1311 expect(rawContactId3 > 0).assertTrue(); 1312 var detailInfo1 = [ "llllllk", "87555", "002505" ]; 1313 var types1 = [ "name", "phone", "phone" ]; 1314 await insertContactData(dataShareHelper, rawContactId3, detailInfo1, types1, "contact_query_merge_list_test_1700"); 1315 } catch (error) { 1316 console.info('logMessage contact_query_merge_list_test_1700: raw_contact_2 insert error = ' + error); 1317 done(); 1318 } 1319 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "", rawContactId3 + "" ]; 1320 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1700"); 1321 done(); 1322 }); 1323 1324 /** 1325 * @tc.number contact_query_merge_list_test_1800 1326 * @tc.name Import multiple automatically merged contacts to check whether the database can be merged 1327 * @tc.desc Function test 1328 */ 1329 it("contact_query_merge_list_test_1800", 0, async function(done) { 1330 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1331 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1332 console.info("------logMessage contact_query_merge_list_test_1800 is starting!-----"); 1333 var insertRawContactValues1 = {"display_name" : "jggbgbk"}; 1334 try { 1335 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1336 sleep(sleep_one); 1337 console.info("logMessage contact_query_merge_list_test_1800: rawContactId1 = " + rawContactId1); 1338 expect(rawContactId1 > 0).assertTrue(); 1339 var detailInfo = [ "jggbgbk", "85555", "996174" ]; 1340 var types = [ "name", "phone", "phone" ]; 1341 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1800"); 1342 } catch (error) { 1343 console.info('logMessage contact_query_merge_list_test_1800: raw_contact_1 insert error = ' + error); 1344 done(); 1345 } 1346 var insertRawContactValues2 = {"display_name" : "jggbgbk"}; 1347 try { 1348 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1349 sleep(sleep_one); 1350 console.info("logMessage contact_query_merge_list_test_1800: rawContactId2 = " + rawContactId2); 1351 expect(rawContactId2 > 0).assertTrue(); 1352 var detailInfo1 = [ "jggbgbk", "85555", "996174" ]; 1353 var types1 = [ "name", "phone", "phone" ]; 1354 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1800"); 1355 } catch (error) { 1356 console.info('logMessage contact_query_merge_list_test_1800: raw_contact_2 insert error = ' + error); 1357 done(); 1358 } 1359 var insertRawContactValues3 = {"display_name" : "jggbgbk"}; 1360 try { 1361 var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3); 1362 sleep(sleep_one); 1363 console.info("logMessage contact_query_merge_list_test_1800: rawContactId2 = " + rawContactId3); 1364 expect(rawContactId3 > 0).assertTrue(); 1365 var detailInfo1 = [ "jggbgbk", "85555", "996174" ]; 1366 var types1 = [ "name", "phone", "phone" ]; 1367 await insertContactData(dataShareHelper, rawContactId3, detailInfo1, types1, "contact_query_merge_list_test_1800"); 1368 } catch (error) { 1369 console.info('logMessage contact_query_merge_list_test_1800: raw_contact_2 insert error = ' + error); 1370 done(); 1371 } 1372 let condition = new dataShare.DataSharePredicates(); 1373 var updateValues = {}; 1374 try { 1375 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 1376 sleep(sleep_one); 1377 console.info("logMessage contact_query_merge_list_test_1800 autoMergeCode = " + autoMergeCode); 1378 expect(autoMergeCode == 0).assertTrue(); 1379 var map = new Map(); 1380 map.set("id", rawContactId1.toString()); 1381 await ContactMergeQuery(map, "contact_query_merge_list_test_1800", result_three); 1382 await deleteAll(rawContactUri, "contact_query_merge_list_test_1800"); 1383 await deleteAll(contactDataUri, "contact_query_merge_list_test_1800"); 1384 } catch (error) { 1385 console.info("contact_query_merge_list_test_1800 auto_merge error =" + error); 1386 } 1387 done(); 1388 }); 1389 1390 /** 1391 * @tc.number contact_query_merge_list_test_1900 1392 * @tc.name Insert two contacts with the same name, contact A has two mobile phone numbers, 1393 * and contact B has a mobile phone number different from that of A, check whether 1394 * the database can be merged 1395 * @tc.desc Function test 1396 */ 1397 it("contact_query_merge_list_test_1900", 0, async function(done) { 1398 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1399 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1400 console.info("------logMessage contact_query_merge_list_test_1900 is starting!-----"); 1401 var insertRawContactValues1 = {"display_name" : "owjiuh"}; 1402 try { 1403 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1404 sleep(sleep_one); 1405 console.info("logMessage contact_query_merge_list_test_1900: rawContactId1 = " + rawContactId1); 1406 expect(rawContactId1 > 0).assertTrue(); 1407 var dataId = insertContactDataSingle(dataShareHelper, rawContactId1, "owjiuh", "name"); 1408 } catch (error) { 1409 console.info('logMessage contact_query_merge_list_test_1900: raw_contact_1 insert error = ' + error); 1410 done(); 1411 } 1412 var insertRawContactValues2 = {"display_name" : "owjiuh"}; 1413 try { 1414 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1415 sleep(sleep_one); 1416 console.info("logMessage contact_query_merge_list_test_1900: rawContactId2 = " + rawContactId2); 1417 expect(rawContactId2 > 0).assertTrue(); 1418 var dataId = insertContactDataSingle(dataShareHelper, rawContactId1, "owjiuh", "name"); 1419 } catch (error) { 1420 console.info('logMessage contact_query_merge_list_test_1900: raw_contact_2 insert error = ' + error); 1421 done(); 1422 } 1423 await updateContactData("owjiuh111", dataId, "contact_query_merge_list_test_1900"); 1424 await AutoNotMerger(dataShareHelper, rawContactId1, "contact_query_merge_list_test_1900"); 1425 done(); 1426 }); 1427 1428 /** 1429 * @tc.number contact_query_merge_list_test_2000 1430 * @tc.name Insert two automatically merged contacts, modify the phone number of A, and then 1431 * merge the contacts manually to check whether the database can be merged 1432 * the database can be merged 1433 * @tc.desc Function test 1434 */ 1435 it("contact_query_merge_list_test_2000", 0, async function(done) { 1436 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1437 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1438 console.info("------logMessage contact_query_merge_list_test_2000 is starting!-----"); 1439 var insertRawContactValues1 = {"display_name" : "ollwjiuh"}; 1440 try { 1441 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1442 sleep(sleep_one); 1443 console.info("logMessage contact_query_merge_list_test_2000: rawContactId1 = " + rawContactId1); 1444 expect(rawContactId1 > 0).assertTrue(); 1445 await insertContactDataSingle(dataShareHelper, rawContactId1, "ollwjiuh", "name"); 1446 var dataIdTwo = await insertContactDataSingle(dataShareHelper, rawContactId1, "8554544", "phone"); 1447 } catch (error) { 1448 console.info('logMessage contact_query_merge_list_test_2000: raw_contact_1 insert error = ' + error); 1449 done(); 1450 } 1451 var insertRawContactValues2 = {"display_name" : "ollwjiuh"}; 1452 try { 1453 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1454 sleep(sleep_one); 1455 console.info("logMessage contact_query_merge_list_test_2000: rawContactId2 = " + rawContactId2); 1456 expect(rawContactId2 > 0).assertTrue(); 1457 await insertContactDataSingle(dataShareHelper, rawContactId2, "ollwjiuh", "name"); 1458 await insertContactDataSingle(dataShareHelper, rawContactId2, "8554544", "phone"); 1459 sleep(sleep_two); 1460 } catch (error) { 1461 console.info('logMessage contact_query_merge_list_test_2000: raw_contact_2 insert error = ' + error); 1462 done(); 1463 } 1464 await updateContactData("8554544444", dataIdTwo, "contact_query_merge_list_test_2000"); 1465 sleep(sleep_three); 1466 var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ]; 1467 await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_2000"); 1468 done(); 1469 }); 1470 1471 /** 1472 * @tc.number abnormal_merge_Update_test_2100 1473 * @tc.name Insert two contacts with different names for automatic and manual merging operations 1474 * @tc.desc Function test 1475 */ 1476 it("abnormal_merge_Update_test_2100", 0, async function(done) { 1477 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1478 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1479 console.info("------logMessage abnormal_merge_Update_test_2100 is starting!-----"); 1480 var insertRawContactValues1 = {"display_name" : "2100mergeTest"}; 1481 try { 1482 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1483 sleep(sleep_one); 1484 console.info("logMessage abnormal_merge_Update_test_2100: rawContactId1 = " + rawContactId1); 1485 expect(rawContactId1 > 0).assertTrue(); 1486 var detailInfo = [ "2100mergeTest" ]; 1487 var types = [ "name" ]; 1488 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2100"); 1489 } catch (error) { 1490 console.info('logMessage abnormal_merge_Update_test_2100: raw_contact_1 insert error = ' + error); 1491 done(); 1492 } 1493 var insertRawContactValues2 = {"display_name" : "2100mergeTestTwo"}; 1494 try { 1495 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1496 sleep(sleep_one); 1497 console.info("logMessage abnormal_merge_Update_test_2100: rawContactId2 = " + rawContactId2); 1498 expect(rawContactId2 > 0).assertTrue(); 1499 var detailInfo1 = [ "2100mergeTestTwo" ]; 1500 var types1 = [ "name" ]; 1501 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2100"); 1502 } catch (error) { 1503 console.info('logMessage abnormal_merge_Update_test_2100: raw_contact_2 insert error = ' + error); 1504 done(); 1505 } 1506 let condition = new dataShare.DataSharePredicates(); 1507 var updateValues = {}; 1508 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 1509 console.info("logMessage abnormal_merge_Update_test_2100 autoMergeCode = " + autoMergeCode); 1510 expect(autoMergeCode == -1).assertTrue(); 1511 await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "abnormal_merge_Update_test_2100"); 1512 done(); 1513 }); 1514 1515 /** 1516 * @tc.number abnormal_merge_Update_test_2200 1517 * @tc.name Insert two contacts with same names for automatic and manual merging operations 1518 * @tc.desc Function test 1519 */ 1520 it("abnormal_merge_Update_test_2200", 0, async function(done) { 1521 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1522 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1523 console.info("------logMessage abnormal_merge_Update_test_2200 is starting!-----"); 1524 var insertRawContactValues1 = {"display_name" : "2200mergeTest"}; 1525 try { 1526 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1527 sleep(sleep_one); 1528 console.info("logMessage abnormal_merge_Update_test_2200: rawContactId1 = " + rawContactId1); 1529 expect(rawContactId1 > 0).assertTrue(); 1530 var detailInfo = [ "2200mergeTest", "45544" ]; 1531 var types = [ "name", "phone" ]; 1532 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2200"); 1533 } catch (error) { 1534 console.info('logMessage abnormal_merge_Update_test_2200: raw_contact_1 insert error = ' + error); 1535 done(); 1536 } 1537 var insertRawContactValues2 = {"display_name" : "2200mergeTestTwo"}; 1538 try { 1539 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1540 sleep(sleep_one); 1541 console.info("logMessage abnormal_merge_Update_test_2200: rawContactId2 = " + rawContactId2); 1542 expect(rawContactId2 > 0).assertTrue(); 1543 var detailInfo1 = [ "2200mergeTestTwo", "55134865" ]; 1544 var types1 = [ "name", "phone" ]; 1545 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2200"); 1546 } catch (error) { 1547 console.info('logMessage abnormal_merge_Update_test_2200: raw_contact_2 insert error = ' + error); 1548 done(); 1549 } 1550 await queryMergeListError(dataShareHelper, rawContactId1, rawContactId2, "abnormal_merge_Update_test_2200"); 1551 done(); 1552 }); 1553 1554 async function queryMergeListError(dataShareHelper, rawContactId1, rawContactId2, testName) 1555 { 1556 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1557 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1558 var columns = [ "display_names" ]; 1559 var predicates = new dataShare.DataSharePredicates(); 1560 try { 1561 sleep(sleep_three); 1562 var resultSet = await dataShareHelper.query(uriQueryMergeList, columns, predicates); 1563 console.info(testName + 'resultSet.rowCount = ' + resultSet.rowCount); 1564 expect(resultSet.rowCount == 0).assertTrue(); 1565 resultSet.close(); 1566 await deleteAll(rawContactUri, testName); 1567 await deleteAll(contactDataUri, testName); 1568 } catch (error) { 1569 console.info(testName + ": query error = " + error); 1570 } 1571 } 1572 1573 /** 1574 * @tc.number abnormal_merge_Update_test_2300 1575 * @tc.name Insert two contacts with different names, and then automatically merge them to 1576 * see if the database can be merged 1577 * @tc.desc Function test 1578 */ 1579 it("abnormal_merge_Update_test_2300", 0, async function(done) { 1580 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1581 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1582 console.info("------logMessage abnormal_merge_Update_test_2300 is starting!-----"); 1583 var insertRawContactValues1 = {"display_name" : "2300mergeTest"}; 1584 try { 1585 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1586 sleep(sleep_one); 1587 console.info("logMessage abnormal_merge_Update_test_2300: rawContactId1 = " + rawContactId1); 1588 expect(rawContactId1 > 0).assertTrue(); 1589 var detailInfo = [ "2300mergeTest" ]; 1590 var types = [ "name" ]; 1591 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2300"); 1592 } catch (error) { 1593 console.info('logMessage abnormal_merge_Update_test_2300: raw_contact_1 insert error = ' + error); 1594 done(); 1595 } 1596 var insertRawContactValues2 = {"display_name" : "2300mergeTestName"}; 1597 try { 1598 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1599 sleep(sleep_one); 1600 console.info("logMessage abnormal_merge_Update_test_2300: rawContactId2 = " + rawContactId2); 1601 expect(rawContactId2 > 0).assertTrue(); 1602 var detailInfo1 = [ "2300mergeTestName" ]; 1603 var types1 = [ "name" ]; 1604 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2300"); 1605 } catch (error) { 1606 console.info('logMessage abnormal_merge_Update_test_2300: raw_contact_2 insert error = ' + error); 1607 done(); 1608 } 1609 await AutoNotMerger(dataShareHelper, rawContactId1, "abnormal_merge_Update_test_2300"); 1610 done(); 1611 }); 1612 1613 /** 1614 * @tc.number abnormal_merge_Update_test_2400 1615 * @tc.name Insert two contacts with different names, and then automatically merge them to 1616 * see if the database can be merged 1617 * @tc.desc Function test 1618 */ 1619 it("abnormal_merge_Update_test_2400", 0, async function(done) { 1620 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1621 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1622 console.info("------logMessage abnormal_merge_Update_test_2400 is starting!-----"); 1623 var insertRawContactValues1 = {"display_name" : "2400mergeTest"}; 1624 try { 1625 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1626 sleep(sleep_one); 1627 console.info("logMessage abnormal_merge_Update_test_2400: rawContactId1 = " + rawContactId1); 1628 expect(rawContactId1 > 0).assertTrue(); 1629 var detailInfo = [ "2400mergeTest" ]; 1630 var types = [ "namee" ]; 1631 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2400"); 1632 } catch (error) { 1633 console.info('logMessage abnormal_merge_Update_test_2400: raw_contact_1 insert error = ' + error); 1634 done(); 1635 } 1636 var insertRawContactValues2 = {"display_name" : "2400mergeTest"}; 1637 try { 1638 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1639 sleep(sleep_one); 1640 console.info("logMessage abnormal_merge_Update_test_2400: rawContactId2 = " + rawContactId2); 1641 expect(rawContactId2 > 0).assertTrue(); 1642 var detailInfo1 = [ "2400mergeTest" ]; 1643 var types1 = [ "name" ]; 1644 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2400"); 1645 } catch (error) { 1646 console.info('logMessage abnormal_merge_Update_test_2400: raw_contact_2 insert error = ' + error); 1647 done(); 1648 } 1649 await AutoNotMerger(dataShareHelper, rawContactId1, "abnormal_merge_Update_test_2400"); 1650 done(); 1651 }); 1652 1653 /** 1654 * @tc.number abnormal_merge_Update_test_2500 1655 * @tc.name Pass 0 after merging to split 1656 * @tc.desc Function test 1657 */ 1658 it("abnormal_merge_Update_test_2500", 0, async function(done) { 1659 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1660 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1661 console.info("------logMessage abnormal_merge_Update_test_2500 is starting!-----"); 1662 var insertRawContactValues1 = {"display_name" : "2500mergeTest"}; 1663 try { 1664 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1665 sleep(sleep_one); 1666 console.info("logMessage abnormal_merge_Update_test_2500: rawContactId1 = " + rawContactId1); 1667 expect(rawContactId1 > 0).assertTrue(); 1668 var detailInfo = [ "2500mergeTest" ]; 1669 var types = [ "name" ]; 1670 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2500"); 1671 } catch (error) { 1672 console.info('logMessage abnormal_merge_Update_test_2500: raw_contact_1 insert error = ' + error); 1673 done(); 1674 } 1675 var insertRawContactValues2 = {"display_name" : "2500mergeTest"}; 1676 try { 1677 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1678 sleep(sleep_one); 1679 console.info("logMessage abnormal_merge_Update_test_2500: rawContactId2 = " + rawContactId2); 1680 expect(rawContactId2 > 0).assertTrue(); 1681 var detailInfo1 = [ "2500mergeTest" ]; 1682 var types1 = [ "name" ]; 1683 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2500"); 1684 } catch (error) { 1685 console.info('logMessage abnormal_merge_Update_test_2500: raw_contact_2 insert error = ' + error); 1686 done(); 1687 } 1688 let condition = new dataShare.DataSharePredicates(); 1689 var updateValues = {}; 1690 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 1691 sleep(sleep_one); 1692 console.info("logMessage abnormal_merge_Update_test_2500 autoMergeCode = " + autoMergeCode); 1693 expect(autoMergeCode == 0).assertTrue(); 1694 var map = new Map(); 1695 map.set("id", rawContactId1.toString()); 1696 await ContactNotSplit(dataShareHelper, 0, "abnormal_merge_Update_test_2500"); 1697 await ContactMergeQuery(map, "abnormal_merge_Update_test_2500", result_two); 1698 await deleteAll(rawContactUri, "abnormal_merge_Update_test_2500"); 1699 await deleteAll(contactDataUri, "abnormal_merge_Update_test_2500"); 1700 done(); 1701 }); 1702 1703 /** 1704 * @tc.number abnormal_merge_Update_test_2600 1705 * @tc.name Pass -1 after merging to split 1706 * @tc.desc Function test 1707 */ 1708 it("abnormal_merge_Update_test_2600", 0, async function(done) { 1709 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1710 console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper); 1711 console.info("------logMessage abnormal_merge_Update_test_2600 is starting!-----"); 1712 var insertRawContactValues1 = {"display_name" : "2600mergeTest"}; 1713 try { 1714 var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1); 1715 sleep(sleep_one); 1716 console.info("logMessage abnormal_merge_Update_test_2600: rawContactId1 = " + rawContactId1); 1717 expect(rawContactId1 > 0).assertTrue(); 1718 var detailInfo = [ "2600mergeTest" ]; 1719 var types = [ "name" ]; 1720 await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2600"); 1721 } catch (error) { 1722 console.info('logMessage abnormal_merge_Update_test_2600: raw_contact_1 insert error = ' + error); 1723 done(); 1724 } 1725 var insertRawContactValues2 = {"display_name" : "2600mergeTest"}; 1726 try { 1727 var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2); 1728 sleep(sleep_one); 1729 console.info("logMessage abnormal_merge_Update_test_2600: rawContactId2 = " + rawContactId2); 1730 expect(rawContactId2 > 0).assertTrue(); 1731 var detailInfo1 = [ "2600mergeTest" ]; 1732 var types1 = [ "name" ]; 1733 await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2600"); 1734 } catch (error) { 1735 console.info('logMessage abnormal_merge_Update_test_2600: raw_contact_2 insert error = ' + error); 1736 done(); 1737 } 1738 let condition = new dataShare.DataSharePredicates(); 1739 var updateValues = {}; 1740 var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition); 1741 sleep(sleep_one); 1742 console.info("logMessage abnormal_merge_Update_test_2600 autoMergeCode = " + autoMergeCode); 1743 expect(autoMergeCode == 0).assertTrue(); 1744 var map = new Map(); 1745 map.set("id", rawContactId1.toString()); 1746 await ContactNotSplit(dataShareHelper, -1, "abnormal_merge_Update_test_2600"); 1747 await ContactMergeQuery(map, "abnormal_merge_Update_test_2600", result_two); 1748 await deleteAll(rawContactUri, "abnormal_merge_Update_test_2600"); 1749 await deleteAll(contactDataUri, "abnormal_merge_Update_test_2600"); 1750 done(); 1751 }); 1752 1753 async function ContactNotSplit(dataShareHelper, rawContactId1, testName) 1754 { 1755 var condition2 = new dataShare.DataSharePredicates(); 1756 var array = [ rawContactId1.toString() ]; 1757 condition2.in("raw_contact_id", array); 1758 var updateValues2 = {}; 1759 try { 1760 var splitCode = await dataShareHelper.update(splitUri, updateValues2, condition2); 1761 sleep(4000); 1762 console.info(testName + 'logMessage splitCode = ' + splitCode); 1763 expect(splitCode == -1).assertTrue(); 1764 } catch (error) { 1765 console.info(testName + 'logMessage split error = ' + error); 1766 } 1767 } 1768 1769 afterAll(async function() { 1770 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 1771 console.info('merge afterAll delete_All: start ! dataShareHelper = ' + dataShareHelper); 1772 let condition = new dataShare.DataSharePredicates(); 1773 var deletedAll = await dataShareHelper.delete(deletedUri, condition); 1774 sleep(4000); 1775 console.info('merge afterAll delete_All : deletedAll ! dataShareHelper = ' + deletedAll); 1776 }); 1777}); 1778