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, describe, expect, it} from 'deccjsunit/index' 18 19const URI_CALLLOG = "datashare:///com.ohos.calllogability"; 20const calllogUri = "datashare:///com.ohos.calllogability/calls/calllog"; 21import common from './common.js'; 22 23describe('CalllogTest', function() { 24 console.log("----------CalllogTest is starting!----------"); 25 26 async function calllogQueryForALL(map, tag) 27 { 28 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 29 console.info(tag + ': calllogQueryByInsert start ! dataShareHelper = ' + dataShareHelper); 30 let resultColumns = common.getCallLogResultColumns(); 31 let condition = new dataShare.DataSharePredicates(); 32 condition.equalTo("id", map.get("id")); 33 try { 34 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 35 if (resultSet.rowCount > 0) { 36 if (resultSet.goToFirstRow()) { 37 do { 38 for (var [key, value] of map) { 39 let dbresult = resultSet.getString(resultSet.getColumnIndex(key)); 40 console.info(tag + ' : logMessage calllogQueryByInsert key = ' + key + 41 ' dbResult :' + dbresult + ' value : ' + value); 42 console.info(tag + ' : logMessage calllogQueryByInsert value ' + (value == dbresult)); 43 expect(value == dbresult).assertEqual(true); 44 } 45 } while (resultSet.goToNextRow()); 46 } 47 } 48 console.info(tag + " :logMessage calllogQueryByInsert: end"); 49 resultSet.close(); 50 } catch (error) { 51 console.info(tag + " :logMessage calllogQueryByInsert: error = " + error); 52 } 53 } 54 55 async function calllogQueryForDelete(map, tag) 56 { 57 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 58 console.info(tag + ': calllogQueryForDelete start ! dataShareHelper = ' + dataShareHelper); 59 let resultColumns = common.getCallLogResultColumns(); 60 let condition = new dataShare.DataSharePredicates(); 61 condition.equalTo("id", map.get("id")); 62 try { 63 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 64 expect(resultSet.goToFirstRow() == false).assertTrue(); 65 console.info(tag + " :logMessage calllogQueryForDelete: goToFirstRow " + resultSet.goToFirstRow()); 66 resultSet.close(); 67 } catch (error) { 68 console.info(tag + " :logMessage calllogQueryForDelete: error = " + error); 69 } 70 } 71 72 async function calllogQueryForBatchInsert(array, tag) 73 { 74 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 75 console.info(tag + ': calllogQueryForBatchInsert start ! dataShareHelper = ' + dataShareHelper); 76 let resultColumns = common.getCallLogResultColumns(); 77 let condition = new dataShare.DataSharePredicates(); 78 condition.equalTo("phone_number", array[0].get("phone_number")); 79 try { 80 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 81 var size = array.size(); 82 console.info(tag + ' : logMessage calllogQueryForBatchInsert: size' + size); 83 expect(resultSet.rowCount == size).assertEqual(true); 84 var i = 0; 85 if (resultSet.rowCount > 0) { 86 if (resultSet.goToFirstRow()) { 87 do { 88 for (var [key, value] of array[i]) { 89 let dbresult = resultSet.getString(resultSet.getColumnIndex(key)); 90 console.info(tag + ' : logMessage calllogQueryForBatchInsert dbresult :' + dbresult + 91 ' value : ' + value); 92 console.info(tag + ' : logMessage calllogQueryForBatchInsert value ' + (value == dbresult)); 93 expect(value == dbresult).assertTrue(); 94 } 95 i++; 96 } while (resultSet.goToNextRow()); 97 } 98 } 99 resultSet.close(); 100 } catch (error) { 101 console.info(tag + " :logMessage calllogQueryByInsert: error = " + error); 102 } 103 } 104 105 async function calllogDelete(tag) 106 { 107 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 108 let condition = new dataShare.DataSharePredicates(); 109 condition.greaterThan("id", "0"); 110 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 111 console.info(tag + ': calllogDelete deleteCode = ' + deleteCode); 112 expect(deleteCode == 0).assertTrue(); 113 } 114 115 /** 116 * @tc.number calllog_insert_test_100 117 * @tc.name Insert call log 118 * @tc.desc Function test 119 */ 120 it("calllog_insert_test_100", 0, async function(done) { 121 console.info("--------logMessage calllog_insert_test_100 is starting!------------"); 122 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 123 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 124 try { 125 var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert()); 126 console.info("logMessage calllog_insert_test_100: calllogId = " + calllogId); 127 expect(calllogId > 0).assertTrue(); 128 var map = common.getCallLogInsertMap() 129 map.set("id", calllogId.toString()); 130 await calllogQueryForALL(map, "calllog_insert_test_100"); 131 await calllogDelete("calllog_insert_test_100"); 132 done(); 133 } catch (error) { 134 console.info("logMessage calllog_insert_test_100: calllog insert error = " + error); 135 done(); 136 } 137 }); 138 139 /** 140 * @tc.number calllog_update_test_400 141 * @tc.name Single call log update 142 * @tc.desc Function test 143 */ 144 it("calllog_update_test_400", 0, async function(done) { 145 console.info("--------logMessage calllog_update_test_400 is starting!------------"); 146 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 147 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 148 149 try { 150 var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert()); 151 console.info("logMessage calllog_update_test_400: calllogId = " + calllogId); 152 expect(calllogId > 0).assertTrue(); 153 await UpdateOneCalllog(); 154 done(); 155 } catch (error) { 156 console.info("logMessage calllog_update_test_400: calllog insert error = " + error); 157 done(); 158 } 159 160 async function UpdateOneCalllog() 161 { 162 try { 163 let condition = new dataShare.DataSharePredicates(); 164 condition.equalTo("id", calllogId.toString()); 165 var updateCode = await dataShareHelper.update(calllogUri, common.getCallLogUpdate(), condition); 166 console.info("logMessage calllog_update_test_400: updateCode = " + updateCode); 167 expect(updateCode == 0).assertTrue(); 168 var map = common.getCallLogUpdateMap(); 169 map.set("id", calllogId.toString()); 170 await calllogQueryForALL(map, "calllog_update_test_400"); 171 await calllogDelete("calllog_update_test_400"); 172 } catch (error) { 173 console.info("logMessage calllog_update_test_400: update error = " + error); 174 done(); 175 } 176 } 177 }); 178 179 /** 180 * @tc.number calllog_update_test_500 181 * @tc.name Update all call logs 182 * @tc.desc Function test 183 */ 184 it("calllog_update_test_500", 0, async function(done) { 185 console.info("--------logMessage calllog_update_test_500 is starting!------------"); 186 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 187 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 188 var phoneNumber = randomNum(12); 189 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "500"}; 190 try { 191 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 192 console.info("logMessage calllog_update_test_500: calllogId = " + calllogId); 193 expect(calllogId > 0).assertTrue(); 194 await UpdateAllCalllog(); 195 done(); 196 } catch (error) { 197 console.info("logMessage calllog_update_test_500: calllog insert error = " + error); 198 done(); 199 } 200 async function UpdateAllCalllog() 201 { 202 var updateValues = {"answer_state" : "1"}; 203 let condition = new dataShare.DataSharePredicates(); 204 condition.greaterThan("id", "0"); 205 try { 206 var updateCode = await dataShareHelper.update(calllogUri, updateValues, condition) 207 console.info("logMessage calllog_update_test_500: updateCode = " + updateCode); 208 expect(updateCode == 0).assertTrue(); 209 var map = new Map([ [ "phone_number", phoneNumber ], [ "ring_duration", "500" ] ]) 210 map.set("id", calllogId.toString()); 211 map.set("answer_state", "1"); 212 await calllogQueryForALL(map, "calllog_update_test_500"); 213 await calllogDelete("calllog_update_test_500"); 214 } catch (error) { 215 console.info("logMessage calllog_update_test_500: update error = " + error); 216 done(); 217 } 218 } 219 }); 220 221 /** 222 * @tc.number calllog_delete_test_1300 223 * @tc.name Delete call log 224 * @tc.desc Function test 225 */ 226 it("calllog_delete_test_1300", 0, async function(done) { 227 console.info("--------logMessage calllog_delete_test_1300 is starting!------------"); 228 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 229 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 230 var phoneNumber = randomNum(5); 231 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"}; 232 try { 233 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 234 console.info("logMessage calllog_delete_test_1300: calllogId = " + calllogId); 235 expect(calllogId > 0).assertTrue(); 236 await DeleteOneCalllog(); 237 done(); 238 } catch (error) { 239 console.info("logMessage calllog_delete_test_1300: calllog insert error = " + error); 240 done(); 241 } 242 243 async function DeleteOneCalllog() 244 { 245 try { 246 let condition = new dataShare.DataSharePredicates(); 247 condition.equalTo("id", calllogId.toString()); 248 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 249 console.info("logMessage calllog_delete_test_1300: deleteCode = " + deleteCode); 250 expect(deleteCode == 0).assertTrue(); 251 var map = new Map(); 252 map.set("id", calllogId.toString()); 253 await calllogQueryForDelete(map, "calllog_delete_test_1300"); 254 } catch (error) { 255 console.info("logMessage calllog_delete_test_1300: delete error = " + error); 256 done(); 257 } 258 } 259 }); 260 261 /** 262 * @tc.number calllog_batchInset_test_1600 263 * @tc.name Insert call logs in batches 264 * @tc.desc Function test 265 */ 266 it("calllog_batchInset_test_1600", 0, async function(done) { 267 console.info("--------logMessage calllog_batchInset_test_1600 is starting!------------"); 268 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 269 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 270 var phoneNumber = randomNum(13); 271 var addBulk_value1 = {"phone_number" : phoneNumber, "ring_duration" : "333"}; 272 var addBulk_value2 = {"phone_number" : phoneNumber, "ring_duration" : "600"}; 273 var addBulk_value3 = {"phone_number" : phoneNumber, "ring_duration" : "600"}; 274 var addBulk_value4 = {"phone_number" : phoneNumber, "ring_duration" : "600"}; 275 var addBulk_value5 = {"phone_number" : phoneNumber, "ring_duration" : "600"}; 276 var listAddBluk = []; 277 listAddBluk[0] = addBulk_value1; 278 listAddBluk[1] = addBulk_value2; 279 listAddBluk[2] = addBulk_value3; 280 listAddBluk[3] = addBulk_value4; 281 listAddBluk[4] = addBulk_value5; 282 try { 283 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 284 console.info("logMessage calllog_batchInset_test_1600: batchInsertCode = " + batchInsertCode); 285 expect(batchInsertCode == 0).assertTrue(); 286 await calllogQueryForBatchInsert(common.getCallLogBatchInsert(), "calllog_batchInset_test_1600"); 287 await calllogDelete("calllog_batchInset_test_1600"); 288 done(); 289 } catch (error) { 290 console.info("logMessage calllog_batchInset_test_1600: error = " + error); 291 done(); 292 } 293 }); 294 295 /** 296 * @tc.number calllog_query_test_1200 297 * @tc.name Query all call logs 298 * @tc.desc Function test 299 */ 300 it("calllog_query_test_1200", 0, async function(done) { 301 console.info("------------calllog_query_test_1200 is starting!-----------"); 302 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 303 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 304 var phoneNumber = randomNum(5); 305 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"}; 306 try { 307 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 308 console.info("logMessage calllog_query_test_1200: calllogId = " + calllogId); 309 expect(calllogId > 0).assertTrue(); 310 var map = new Map([ [ "phone_number", phoneNumber ], [ "ring_duration", "200" ] ]); 311 map.set("id", calllogId.toString()); 312 await calllogQueryForALL(map, "calllog_query_test_1200"); 313 await calllogDelete("calllog_query_test_1200"); 314 done(); 315 } catch (error) { 316 console.info("logMessage calllog_query_test_1200: calllog insert error = " + error); 317 } 318 }); 319 320 /** 321 * @tc.number calllog_query_test_1100 322 * @tc.name Query call logs of combined conditions 323 * @tc.desc Function test 324 */ 325 it("calllog_query_test_1100", 0, async function(done) { 326 console.info("------------calllog_query_test_1100 is starting!-----------"); 327 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 328 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 329 var phoneNumber = randomNum(7); 330 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "100"}; 331 try { 332 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 333 console.info("logMessage calllog_query_test_1100: calllogId = " + calllogId); 334 expect(calllogId > 0).assertTrue(); 335 await QueryCalllog(); 336 await calllogDelete("calllog_query_test_1100"); 337 done() 338 } catch (error) { 339 console.info("logMessage calllog_query_test_1100: calllog insert error = " + error); 340 done(); 341 } 342 343 async function QueryCalllog() 344 { 345 var resultColumns = [ "id", "phone_number" ]; 346 let condition = new dataShare.DataSharePredicates(); 347 condition.greaterThan("id", "0"); 348 condition.and(); 349 condition.lessThan("ring_duration", "200").orderByAsc("id"); 350 try { 351 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 352 if (resultSet.goToFirstRow()) { 353 do { 354 console.info("logMessage calllog_query_test_1100: columnNames:" + resultSet.columnNames); 355 console.info("logMessage calllog_query_test_1100: columnCount:" + resultSet.columnCount); 356 console.info('logMessage calllog_query_test_1100: id = ' + resultSet.getString(0)); 357 expect(resultSet.getString(0) == calllogId.toString()).assertTrue(); 358 console.info('logMessage calllog_query_test_1100: phone_number = ' + resultSet.getString(1)); 359 expect(resultSet.getString(1) == phoneNumber).assertTrue(); 360 } while (resultSet.goToNextRow()); 361 } 362 resultSet.close(); 363 } catch (error) { 364 console.info("logMessage calllog_query_test_1100: query error:" + error); 365 done(); 366 } 367 } 368 }); 369 370 /** 371 * @tc.number calllog_query_test_800 372 * @tc.name Query a single call log 373 * @tc.desc Function test 374 */ 375 it("calllog_query_test_800", 0, async function(done) { 376 console.info("------------calllog_query_test_800 is starting!-----------"); 377 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 378 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 379 var phoneNumber = randomNum(10); 380 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "100"}; 381 try { 382 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 383 console.info("logMessage calllog_query_test_800: calllogId = " + calllogId); 384 expect(calllogId > 0).assertTrue(); 385 await QueryOneCalllog(); 386 await calllogDelete("calllog_query_test_800"); 387 done(); 388 } catch (error) { 389 console.info("logMessage calllog_query_test_800: calllog insert error = " + error); 390 done(); 391 } 392 393 async function QueryOneCalllog() 394 { 395 var resultColumns = [ "id", "phone_number" ]; 396 let condition = new dataShare.DataSharePredicates(); 397 condition.equalTo("id", calllogId.toString()); 398 try { 399 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 400 if (resultSet.goToFirstRow()) { 401 do { 402 console.info("logMessage calllog_query_test_800: columnNames:" + resultSet.columnNames); 403 console.info("logMessage calllog_query_test_800: columnCount:" + resultSet.columnCount); 404 console.info('logMessage calllog_query_test_800: id = ' + resultSet.getString(0)); 405 expect(resultSet.getString(0) == calllogId.toString()).assertTrue(); 406 console.info('logMessage calllog_query_test_800: phone_number = ' + resultSet.getString(1)); 407 expect(resultSet.getString(1) == phoneNumber).assertTrue(); 408 } while (resultSet.goToNextRow()); 409 } 410 resultSet.close(); 411 } catch (error) { 412 console.info("logMessage calllog_query_test_800: query error = " + error); 413 done(); 414 } 415 } 416 }); 417 418 /** 419 * @tc.number calllog_fuzzyquery_test_100 420 * @tc.name Fuzzy query ability based on mobile phone number (beginning of a certain field) 421 * @tc.desc Function test 422 */ 423 it("calllog_fuzzyquery_test_100", 0, async function(done) { 424 console.info("------------calllog_fuzzyquery_test_100 is starting!-----------"); 425 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 426 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 427 var phoneNumber = randomNum(8); 428 var phoneNumber_Test = phoneNumber.substring(0,3); 429 var insertValues = {"phone_number" : phoneNumber}; 430 try { 431 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 432 console.info("logMessage calllog_fuzzyquery_test_100: calllogId = " + calllogId); 433 expect(calllogId > 0).assertTrue(); 434 await QueryByStartsWithPhoneNumber(); 435 await calllogDelete("calllog_fuzzyquery_test_100"); 436 done(); 437 } catch (error) { 438 console.info("logMessage calllog_fuzzyquery_test_100: calllog insert error = " + error); 439 done(); 440 } 441 442 async function QueryByStartsWithPhoneNumber() 443 { 444 var resultColumns = [ "id", "phone_number" ]; 445 let condition = new dataShare.DataSharePredicates(); 446 condition.like("phone_number", phoneNumber_Test + "%"); 447 try { 448 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 449 if (resultSet.goToFirstRow()) { 450 do { 451 console.info("logMessage calllog_fuzzyquery_test_100: columnNames:" + resultSet.columnNames); 452 console.info("logMessage calllog_fuzzyquery_test_100: columnCount:" + resultSet.columnCount); 453 console.info('logMessage calllog_fuzzyquery_test_100: id = ' + resultSet.getString(0)); 454 expect(resultSet.getString(0) == calllogId.toString()).assertTrue(); 455 console.info( 456 'logMessage calllog_fuzzyquery_test_100: phone_number = ' + resultSet.getString(1)); 457 expect(resultSet.getString(1) == phoneNumber).assertTrue(); 458 } while (resultSet.goToNextRow()); 459 } 460 resultSet.close(); 461 } catch (error) { 462 console.info("logMessage calllog_fuzzyquery_test_100: query error = " + error); 463 done(); 464 } 465 } 466 }); 467 468 /** 469 * @tc.number calllog_fuzzyquery_test_200 470 * @tc.name Fuzzy query ability based on mobile phone number (at the end of a certain field) 471 * @tc.desc Function test 472 */ 473 it("calllog_fuzzyquery_test_200", 0, async function(done) { 474 console.info("------------calllog_fuzzyquery_test_200 is starting!-----------"); 475 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 476 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 477 var phoneNumber = randomNum(8); 478 var phoneNumber_Test = phoneNumber.substring(6,9); 479 var insertValues = {"phone_number" : phoneNumber}; 480 try { 481 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 482 console.info("logMessage calllog_fuzzyquery_test_200: calllogId = " + calllogId); 483 expect(calllogId > 0).assertTrue(); 484 await QueryByEndWithPhoneNumber(); 485 await calllogDelete("calllog_fuzzyquery_test_200"); 486 done(); 487 } catch (error) { 488 console.info("logMessage calllog_fuzzyquery_test_200: calllog insert error = " + error); 489 done(); 490 } 491 492 async function QueryByEndWithPhoneNumber() 493 { 494 var resultColumns = [ "id", "phone_number" ]; 495 let condition = new dataShare.DataSharePredicates(); 496 condition.like("phone_number", "%" + phoneNumber_Test); 497 try { 498 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 499 if (resultSet.goToFirstRow()) { 500 do { 501 console.info("logMessage calllog_fuzzyquery_test_200: columnNames:" + resultSet.columnNames); 502 console.info("logMessage calllog_fuzzyquery_test_200: columnCount:" + resultSet.columnCount); 503 console.info('logMessage calllog_fuzzyquery_test_200: id = ' + resultSet.getString(0)); 504 expect(resultSet.getString(0) == calllogId.toString()).assertTrue(); 505 console.info( 506 'logMessage calllog_fuzzyquery_test_200: phone_number = ' + resultSet.getString(1)); 507 expect(resultSet.getString(1) == phoneNumber).assertTrue(); 508 } while (resultSet.goToNextRow()); 509 } 510 resultSet.close(); 511 } catch (error) { 512 console.info("logMessage calllog_fuzzyquery_test_200: query error = " + error); 513 done(); 514 } 515 } 516 }); 517 518 /** 519 * @tc.number calllog_fuzzyquery_test_300 520 * @tc.name Fuzzy query ability based on mobile phone number (including a certain field) 521 * @tc.desc Function test 522 */ 523 it("calllog_fuzzyquery_test_300", 0, async function(done) { 524 console.info("------------calllog_fuzzyquery_test_300 is starting!-----------"); 525 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 526 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 527 var phoneNumber = randomNum(15); 528 var insertValues = {"phone_number" : phoneNumber}; 529 try { 530 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 531 console.info("logMessage calllog_fuzzyquery_test_300: calllogId = " + calllogId); 532 expect(calllogId > 0).assertTrue(); 533 await QueryByPhoneNumberContainsField(); 534 await calllogDelete("calllog_fuzzyquery_test_300"); 535 done(); 536 } catch (error) { 537 console.info("logMessage calllog_fuzzyquery_test_300: calllog insert error = " + error); 538 done(); 539 } 540 541 async function QueryByPhoneNumberContainsField() 542 { 543 var resultColumns = [ "id", "phone_number" ]; 544 let condition = new dataShare.DataSharePredicates(); 545 var phoneNumber_Test = phoneNumber.substring(7,10); 546 condition.like("phone_number", "%" + phoneNumber_Test + "%"); 547 try { 548 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 549 if (resultSet.goToFirstRow()) { 550 do { 551 console.info("logMessage calllog_fuzzyquery_test_300: columnNames:" + resultSet.columnNames); 552 console.info("logMessage calllog_fuzzyquery_test_300: columnCount:" + resultSet.columnCount); 553 console.info('logMessage calllog_fuzzyquery_test_300: id = ' + resultSet.getString(0)); 554 expect(resultSet.getString(0) == calllogId.toString()).assertTrue(); 555 console.info( 556 'logMessage calllog_fuzzyquery_test_300: phone_number = ' + resultSet.getString(1)); 557 expect(resultSet.getString(1) == phoneNumber).assertTrue(); 558 } while (resultSet.goToNextRow()); 559 } 560 resultSet.close(); 561 } catch (error) { 562 console.info("logMessage calllog_fuzzyquery_test_300: query error = " + error); 563 done(); 564 } 565 } 566 }); 567 568 /** 569 * @tc.number abnormal_calllog_insert_test_200 570 * @tc.name Abnormal use case, an incorrect field is passed in when inserting data 571 * @tc.desc Function test 572 */ 573 it("abnormal_calllog_insert_test_200", 0, async function(done) { 574 console.info("------------abnormal_calllog_insert_test_200 is starting!-----------"); 575 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 576 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 577 var phoneNumber = randomNum(9); 578 var insertValues = {"phone_numbers" : phoneNumber}; 579 try { 580 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 581 console.info("logMessage abnormal_calllog_insert_test_200: calllogId = " + calllogId); 582 expect(calllogId == -1).assertTrue(); 583 done(); 584 } catch (error) { 585 console.info("logMessage abnormal_calllog_insert_test_200: calllog insert error = " + error); 586 done(); 587 } 588 }); 589 590 /** 591 * @tc.number abnormal_calllog_insert_test_300 592 * @tc.name Abnormal use case, an incorrect table name is passed in when inserting data 593 * @tc.desc Function test 594 */ 595 it("abnormal_calllog_insert_test_300", 0, async function(done) { 596 console.info("------------abnormal_calllog_insert_test_300 is starting!-----------"); 597 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 598 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 599 var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs"; 600 var phoneNumber = randomNum(8); 601 var insertValues = {"phone_number" : phoneNumber}; 602 try { 603 var calllogId = await dataShareHelper.insert(errorUri, insertValues); 604 console.info("logMessage abnormal_calllog_insert_test_300: calllogId = " + calllogId); 605 expect(calllogId == -1).assertTrue(); 606 done(); 607 } catch (error) { 608 console.info("logMessage abnormal_calllog_insert_test_300: calllog insert error = " + error); 609 done(); 610 } 611 }); 612 613 /** 614 * @tc.number abnormal_calllog_update_test_600 615 * @tc.name Abnormal use case, passing in a wrong field when updating data 616 * @tc.desc Function test 617 */ 618 it("abnormal_calllog_update_test_600", 0, async function(done) { 619 console.info("------------abnormal_calllog_update_test_600 is starting!-----------"); 620 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 621 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 622 var phoneNumber = randomNum(9); 623 var insertValues = {"phone_number" : phoneNumber}; 624 try { 625 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 626 console.info("logMessage abnormal_calllog_update_test_600: calllogId = " + calllogId); 627 expect(calllogId > 0).assertTrue(); 628 await abnormalUpdate(); 629 await calllogDelete("abnormal_calllog_update_test_600"); 630 done(); 631 } catch (error) { 632 console.info("logMessage abnormal_calllog_update_test_600: calllog insert error = " + error); 633 done(); 634 } 635 636 async function abnormalUpdate() 637 { 638 var phoneNumber_Test = randomNum(7); 639 var updateValues = {"phone_numbers" : phoneNumber_Test}; 640 let condition = new dataShare.DataSharePredicates(); 641 condition.equalTo("ids", calllogId.toString()); 642 try { 643 var updataCode = await dataShareHelper.update(calllogUri, updateValues, condition); 644 console.info("logMessage abnormal_calllog_update_test_600: updataCode = " + updataCode); 645 expect(updataCode == -1).assertTrue(); 646 var map = new Map(); 647 map.set("id", calllogId.toString()); 648 map.set("phone_number", phoneNumber); 649 await calllogQueryForALL(map, "abnormal_calllog_update_test_600"); 650 } catch (error) { 651 console.info("logMessage abnormal_calllog_update_test_600: update error = " + error); 652 done(); 653 } 654 } 655 }); 656 657 /** 658 * @tc.number abnormal_calllog_update_test_700 659 * @tc.name Abnormal use case, an incorrect table name is passed in when updating data 660 * @tc.desc Function test 661 */ 662 it("abnormal_calllog_update_test_700", 0, async function(done) { 663 console.info("------------abnormal_calllog_update_test_700 is starting!-----------"); 664 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 665 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 666 var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs"; 667 var phoneNumber = randomNum(6); 668 var insertValues = {"phone_number" : phoneNumber}; 669 try { 670 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 671 console.info("logMessage abnormal_calllog_update_test_700: calllogId = " + calllogId); 672 expect(calllogId > 0).assertTrue(); 673 await abnormalUpdate(); 674 await calllogDelete("abnormal_calllog_update_test_700"); 675 done(); 676 } catch (error) { 677 console.info("logMessage abnormal_calllog_update_test_700: calllog insert error = " + error); 678 done(); 679 } 680 681 async function abnormalUpdate() 682 { 683 var phoneNumber_Test = randomNum(7); 684 var updateValues = {"phone_numbers" : phoneNumber_Test}; 685 let condition = new dataShare.DataSharePredicates(); 686 condition.equalTo("id", calllogId.toString()); 687 try { 688 var updataCode = await dataShareHelper.update(errorUri, updateValues, condition); 689 console.info("logMessage abnormal_calllog_update_test_700: updataCode = " + updataCode); 690 expect(updataCode == -1).assertTrue(); 691 var map = new Map(); 692 map.set("id", calllogId.toString()); 693 map.set("phone_number", phoneNumber); 694 await calllogQueryForALL(map, "abnormal_calllog_update_test_700"); 695 done(); 696 } catch (error) { 697 console.info("logMessage abnormal_calllog_update_test_700: update error = " + error); 698 done(); 699 } 700 } 701 }); 702 703 /** 704 * @tc.number abnormal_calllog_delete_test_1400 705 * @tc.name Abnormal use case, passing in a wrong field when deleting data 706 * @tc.desc Function test 707 */ 708 it("abnormal_calllog_delete_test_1400", 0, async function(done) { 709 console.info("------------abnormal_calllog_delete_test_1400 is starting!-----------"); 710 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 711 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 712 var phoneNumber = randomNum(5); 713 var insertValues = {"phone_number" : phoneNumber}; 714 try { 715 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 716 console.info("logMessage abnormal_calllog_delete_test_1400: calllogId = " + calllogId); 717 expect(calllogId > 0).assertTrue(); 718 await abnormalDelete(); 719 await calllogDelete("abnormal_calllog_delete_test_1400"); 720 done(); 721 } catch (error) { 722 console.info("logMessage abnormal_calllog_delete_test_1400: calllog insert error = " + error); 723 done(); 724 } 725 726 async function abnormalDelete() 727 { 728 let condition = new dataShare.DataSharePredicates(); 729 condition.equalTo("ids", calllogId.toString()); 730 try { 731 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 732 console.info("logMessage abnormal_calllog_delete_test_1400: deleteCode = " + deleteCode); 733 expect(deleteCode == -1).assertTrue(); 734 var map = new Map(); 735 map.set("id", calllogId.toString()); 736 map.set("phone_number", phoneNumber); 737 await calllogQueryForALL(map, "abnormal_calllog_delete_test_1400"); 738 } catch (error) { 739 console.info("logMessage abnormal_calllog_delete_test_1400: delete error = " + error); 740 done(); 741 } 742 } 743 }); 744 745 /** 746 * @tc.number abnormal_calllog_delete_test_1500 747 * @tc.name Abnormal use case, passing in an incorrect table name when deleting data 748 * @tc.desc Function test 749 */ 750 it("abnormal_calllog_delete_test_1500", 0, async function(done) { 751 console.info("------------abnormal_calllog_delete_test_1500 is starting!-----------"); 752 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 753 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 754 var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs"; 755 var phoneNumber = randomNum(6); 756 var insertValues = {"phone_number" : phoneNumber}; 757 try { 758 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 759 console.info("logMessage abnormal_calllog_delete_test_1500: calllogId = " + calllogId); 760 expect(calllogId > 0).assertTrue(); 761 await abnormalDelete(); 762 await calllogDelete("abnormal_calllog_delete_test_1500"); 763 done(); 764 } catch (error) { 765 console.info("logMessage abnormal_calllog_delete_test_1500: calllog insert error = " + error); 766 done(); 767 } 768 769 async function abnormalDelete() 770 { 771 let condition = new dataShare.DataSharePredicates(); 772 condition.equalTo("id", calllogId.toString()); 773 try { 774 var deleteCode = await dataShareHelper.delete(errorUri, condition); 775 console.info("logMessage abnormal_calllog_delete_test_1500: deleteCode = " + deleteCode); 776 expect(deleteCode == -1).assertTrue(); 777 done() 778 var map = new Map(); 779 map.set("id", calllogId.toString()); 780 map.set("phone_number", phoneNumber); 781 await calllogQueryForALL(map, "abnormal_calllog_delete_test_1500"); 782 } catch (error) { 783 console.info("logMessage abnormal_calllog_delete_test_1500: delete error = " + error); 784 done(); 785 } 786 } 787 }); 788 789 /** 790 * @tc.number abnormal_calllog_query_test_900 791 * @tc.name Abnormal use case, an incorrect field is passed in when querying 792 * @tc.desc Function test 793 */ 794 it("abnormal_calllog_query_test_900", 0, async function(done) { 795 console.info("------------abnormal_calllog_query_test_900 is starting!-----------"); 796 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 797 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 798 var phoneNumber = randomNum(6); 799 var insertValues = {"phone_number" : phoneNumber}; 800 try { 801 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 802 console.info("logMessage abnormal_calllog_query_test_900: calllogId = " + calllogId); 803 expect(calllogId > 0).assertTrue(); 804 await abnormalQuery(); 805 await calllogDelete("abnormal_calllog_query_test_900"); 806 done(); 807 } catch (error) { 808 console.info("logMessage abnormal_calllog_query_test_900: calllog insert error = " + error); 809 done(); 810 } 811 812 async function abnormalQuery() 813 { 814 var resultColumns = [ "id", "phone_number" ]; 815 let condition = new dataShare.DataSharePredicates(); 816 condition.equalTo("ids", calllogId.toString()); 817 try { 818 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 819 console.info('logMessage abnormal_calllog_query_test_900: goToFirstRow' + resultSet.goToFirstRow()); 820 expect(resultSet.goToFirstRow()).assertEqual(false); 821 resultSet.close(); 822 } catch (error) { 823 console.info("logMessage abnormal_calllog_query_test_900:query error = " + error); 824 done(); 825 } 826 } 827 }); 828 829 /** 830 * @tc.number abnormal_calllog_batchinsert_test_1700 831 * @tc.name abnormal_batchinsert 832 * @tc.desc Function test 833 */ 834 it("abnormal_calllog_batchinsert_test_1700", 0, async function(done) { 835 console.info("--------logMessage abnormal_calllog_batchinsert_test_1700 is starting!------------"); 836 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 837 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 838 var phoneNumber = randomNum(9); 839 var phoneNumber_Test = randomNum(6); 840 var addBulk_value1 = {"phone_number" : phoneNumber, "ring_duration" : "500"}; 841 var addBulk_value2 = {"phone_number" : phoneNumber_Test, "ring_duration" : "100"}; 842 var addBulk_value3 = {"phone_numbers" : phoneNumber_Test, "ring_duration" : "100"}; 843 var addBulk_value4 = {"phone_number" : phoneNumber_Test, "ring_durations" : "100"}; 844 var addBulk_value5 = {"phone_number" : phoneNumber_Test, "ring_duration" : "100"}; 845 var listAddBluk = []; 846 listAddBluk[0] = addBulk_value1; 847 listAddBluk[1] = addBulk_value2; 848 listAddBluk[2] = addBulk_value3; 849 listAddBluk[3] = addBulk_value4; 850 listAddBluk[4] = addBulk_value5; 851 try { 852 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 853 console.info("logMessage abnormal_calllog_batchinsert_test_1700: batchInsertCode = " + batchInsertCode); 854 expect(batchInsertCode == -1).assertTrue(); 855 done(); 856 } catch (error) { 857 console.info("logMessage abnormal_calllog_batchinsert_test_1700: batchInsert error = " + error); 858 done(); 859 } 860 }); 861 862 /** 863 * @tc.number calllog_delete_test_1800 864 * @tc.name batchDelete 865 * @tc.desc Function test 866 */ 867 it("calllog_delete_test_1800", 0, async function(done) { 868 console.info("--------logMessage calllog_delete_test_1800 is starting!------------"); 869 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 870 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 871 try { 872 var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert()); 873 console.info("logMessage calllog_delete_test_1800: calllogId = " + calllogId); 874 expect(calllogId > 0).assertTrue(); 875 var map = common.getCallLogInsertMap() 876 map.set("id", calllogId.toString()); 877 await calllogQueryForALL(map, "calllog_delete_test_1800"); 878 await executeBatch(); 879 } catch (error) { 880 console.info("logMessage calllog_delete_test_1800: calllog insert error = " + error); 881 done(); 882 } 883 884 async function executeBatch() 885 { 886 console.info("logMessage calllog_delete_test_1800: executeBatch start "); 887 let condition = new dataShare.DataSharePredicates(); 888 condition.equalTo("id", calllogId.toString()); 889 dataShareHelper.executeBatch(URI_CALLLOG, [ { 890 uri : calllogUri, 891 type : featureAbility.DataAbilityOperationType.TYPE_DELETE, 892 predicates : condition, 893 expectedCount : 0, 894 PredicatesBackReferences : {}, 895 interrupted : true, 896 } ], 897 (error, data) => { 898 console.info("logMessage calllog_delete_test_1800: executeBatch data = " + JSON.stringify(data)); 899 console.info("logMessage calllog_delete_test_1800: data_3 = " + data); 900 console.info("logMessage calllog_delete_test_1800: data_1= " + data[0].count); 901 expect(data[0].count == 0).assertTrue(); 902 done(); 903 }); 904 } 905 }); 906 907 /** 908 * @tc.number calllog_update_test_1900 909 * @tc.name batchUpdate 910 * @tc.desc Function test 911 */ 912 it("calllog_update_test_1900", 0, async function(done) { 913 console.info("--------logMessage calllog_update_test_1900 is starting!------------"); 914 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 915 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 916 try { 917 var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert()); 918 console.info("logMessage calllog_update_test_1900: calllogId = " + calllogId); 919 expect(calllogId > 0).assertTrue(); 920 var map = common.getCallLogInsertMap() 921 map.set("id", calllogId.toString()); 922 await calllogQueryForALL(map, "calllog_update_test_1900"); 923 await executeBatch(); 924 } catch (error) { 925 console.info("logMessage calllog_update_test_1900: calllog insert error = " + error); 926 done(); 927 } 928 929 async function executeBatch() 930 { 931 var phoneNumber = randomNum(8); 932 var updateValues = {"phone_number" : phoneNumber}; 933 let condition = new dataShare.DataSharePredicates(); 934 condition.equalTo("id", calllogId.toString()); 935 dataShareHelper.executeBatch(URI_CALLLOG, [ { 936 uri : calllogUri, 937 type : featureAbility.DataAbilityOperationType.TYPE_UPDATE, 938 valuesBucket : updateValues, 939 predicates : condition, 940 expectedCount : 0, 941 PredicatesBackReferences : {}, 942 interrupted : true, 943 } ], 944 (error, data) => { 945 console.info("logMessage calllog_update_test_1900: executeBatch data = " + JSON.stringify(data)); 946 console.info("logMessage calllog_update_test_1900: data_3 = " + data); 947 console.info("logMessage calllog_update_test_1900: data_1= " + data[0].count); 948 expect(data[0].count == 0).assertTrue(); 949 done(); 950 }); 951 } 952 }); 953 954 /** 955 * @tc.number calllog_Delete_test_2000 956 * @tc.name calllog Delete 957 * @tc.desc Function test 958 */ 959 it("calllog_Delete_test_2000", 0, async function(done) { 960 console.info("--------logMessage calllog_Delete_test_2000 is starting!------------"); 961 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 962 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 963 var phoneNumber = randomNum(5); 964 var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"}; 965 try { 966 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 967 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 968 var calllogIdThree = await dataShareHelper.insert(calllogUri, insertValues); 969 expect(calllogId > 0).assertTrue(); 970 expect(calllogIdTwo > 0).assertTrue(); 971 expect(calllogIdThree > 0).assertTrue(); 972 await DeleteCalllog(); 973 done(); 974 } catch (error) { 975 console.info("logMessage calllog_Delete_test_2000: calllog insert error = " + error); 976 done(); 977 } 978 979 async function DeleteCalllog() 980 { 981 try { 982 let condition = new dataShare.DataSharePredicates(); 983 condition.equalTo("id", calllogId.toString()); 984 condition.or(); 985 condition.equalTo("id", calllogIdTwo.toString()); 986 condition.or(); 987 condition.equalTo("id", calllogIdThree.toString()); 988 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 989 console.info("logMessage calllog_Delete_test_2000: deleteCode = " + deleteCode); 990 expect(deleteCode == 0).assertTrue(); 991 var resultColumns = []; 992 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 993 expect(resultSet.rowCount == 0).assertTrue(); 994 resultSet.close(); 995 } catch (error) { 996 console.info("logMessage calllog_Delete_test_2000: delete error = " + error); 997 done(); 998 } 999 } 1000 }); 1001 1002 /** 1003 * @tc.number calllog_Delete_test_2100 1004 * @tc.name calllog Delete 1005 * @tc.desc Function test 1006 */ 1007 it("calllog_Delete_test_2100", 0, async function(done) { 1008 console.info("--------logMessage calllog_Delete_test_2100 is starting!------------"); 1009 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1010 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1011 try { 1012 var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert()); 1013 console.info("logMessage calllog_Delete_test_2100: calllogId = " + calllogId); 1014 expect(calllogId > 0).assertTrue(); 1015 var map = common.getCallLogInsertMap() 1016 map.set("id", calllogId.toString()); 1017 await calllogQueryForALL(map, "calllog_Delete_test_2100"); 1018 await calllogDelete("calllog_Delete_test_2100"); 1019 let condition = new dataShare.DataSharePredicates(); 1020 condition.equalTo("id", calllogId); 1021 var resultColumns = []; 1022 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1023 expect(resultSet.rowCount == 0).assertTrue(); 1024 resultSet.close(); 1025 done(); 1026 } catch (error) { 1027 console.info("logMessage calllog_Delete_test_2100: calllog insert error = " + error); 1028 done(); 1029 } 1030 }); 1031 1032 /** 1033 * @tc.number calllog_queryContains_test_2200 1034 * @tc.name calllog Delete 1035 * @tc.desc Function test 1036 */ 1037 it("calllog_queryContains_test_2200", 0, async function(done) { 1038 console.info("--------logMessage calllog_queryContains_test_2200 is starting!------------"); 1039 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1040 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1041 var phoneNumber = randomNum(17); 1042 var phoneNumber_Test = phoneNumber.substring(13,18); 1043 var insertValues = {"phone_number" : phoneNumber} 1044 try { 1045 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1046 console.info("logMessage calllog_queryContains_test_2200: calllogId = " + calllogId); 1047 expect(calllogId > 0).assertTrue(); 1048 1049 var resultColumns = [ "phone_number" ]; 1050 let condition = new dataShare.DataSharePredicates(); 1051 condition.contains("phone_number", phoneNumber_Test); 1052 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1053 if (resultSet.rowCount > 0) { 1054 if (resultSet.goToFirstRow()) { 1055 do { 1056 var phone = resultSet.getString(resultSet.getColumnIndex("phone_number")); 1057 console.info("logMessage calllog_queryContains_test_2200: phone is = " + phone); 1058 expect(phone == phoneNumber).assertEqual(true); 1059 } while (resultSet.goToNextRow()); 1060 } 1061 } 1062 resultSet.close(); 1063 await calllogDelete(); 1064 done(); 1065 } catch (error) { 1066 console.info("logMessage calllog_queryContains_test_2200: calllog insert error = " + error); 1067 done(); 1068 } 1069 }); 1070 1071 /** 1072 * @tc.number abnormal_calllog_update_test_2300 1073 * @tc.name Update all call records, pass in a field that does not exist 1074 * @tc.desc Function test 1075 */ 1076 it("abnormal_calllog_update_test_2300", 0, async function(done) { 1077 console.info("--------logMessage abnormal_calllog_update_test_2300 is starting!------------"); 1078 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1079 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1080 var phoneNumber = randomNum(10); 1081 var insertValues = {phone_number : phoneNumber, display_name : "name2300"} 1082 try { 1083 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1084 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 1085 expect(calllogId > 0).assertTrue(); 1086 expect(calllogIdTwo > 0).assertTrue(); 1087 await UpdateOneCalllog(); 1088 done(); 1089 } catch (error) { 1090 console.info("logMessage abnormal_calllog_update_test_2300: calllog insert error = " + error); 1091 done(); 1092 } 1093 async function UpdateOneCalllog() 1094 { 1095 try { 1096 var insertValues = {phone_number : phoneNumber, display_names : "nameUpdateError2300"}; 1097 var condition = 1098 new dataShare.DataSharePredicates(); 1099 var updateCode = await dataShareHelper.update(calllogUri, insertValues, condition); 1100 console.info("logMessage abnormal_calllog_update_test_2300: updateCode = " + updateCode); 1101 expect(updateCode == -1).assertTrue(); 1102 var map = new Map(); 1103 map.set("id", calllogId.toString()); 1104 map.set("display_name", "name2300"); 1105 await calllogQueryForALL(map, "abnormal_calllog_update_test_2300"); 1106 map.set("id", calllogIdTwo.toString()); 1107 await calllogQueryForALL(map, "abnormal_calllog_update_test_2300"); 1108 await calllogDelete("calllog_update_test_2300"); 1109 } catch (error) { 1110 console.info("logMessage abnormal_calllog_update_test_2300: update error = " + error); 1111 done(); 1112 } 1113 } 1114 }); 1115 1116 /** 1117 * @tc.number abnormal_calllog_query_test_2400 1118 * @tc.name When querying call records based on combined conditions, incorrect field 1119 * names and non-existent data are passed in 1120 * @tc.desc Function test 1121 */ 1122 it("abnormal_calllog_query_test_2400", 0, async function(done) { 1123 console.info("--------logMessage abnormal_calllog_query_test_2400 is starting!------------"); 1124 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1125 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1126 var phoneNumber = randomNum(10); 1127 var insertValues = {phone_number : phoneNumber, display_name : "name2300"} 1128 try { 1129 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1130 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 1131 expect(calllogId > 0).assertTrue(); 1132 expect(calllogIdTwo > 0).assertTrue(); 1133 let condition = new dataShare.DataSharePredicates(); 1134 condition.equalTo("id", calllogId.toString() + "ksks"); 1135 var resultColumns = [ "display_names" ]; 1136 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1137 console.info("abnormal_calllog_query_test_2400: resultSet.rowCount = " + resultSet.rowCount); 1138 expect(resultSet.rowCount == -1).assertTrue(); 1139 resultSet.close(); 1140 await calllogDelete("abnormal_calllog_query_test_2400"); 1141 done(); 1142 } catch (error) { 1143 console.info("logMessage abnormal_calllog_query_test_2400: calllog insert error = " + error); 1144 done(); 1145 } 1146 }); 1147 1148 /** 1149 * @tc.number abnormal_calllog_query_test_2500 1150 * @tc.name When querying all call records based on combined conditions, incorrect field 1151 * names and non-existent data are passed in 1152 * @tc.desc Function test 1153 */ 1154 it("abnormal_calllog_query_test_2500", 0, async function(done) { 1155 console.info("--------logMessage abnormal_calllog_query_test_2500 is starting!------------"); 1156 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1157 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1158 var phoneNumber = randomNum(10); 1159 var insertValues = {phone_number : phoneNumber, display_name : "name2300"} 1160 try { 1161 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1162 console.info('abnormal_calllog_query_test_2500 calllogId = ' + calllogId); 1163 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 1164 console.info('abnormal_calllog_query_test_2500 calllogIdTwo = ' + calllogIdTwo); 1165 expect(calllogId > 0).assertTrue(); 1166 expect(calllogIdTwo > 0).assertTrue(); 1167 let condition = new dataShare.DataSharePredicates(); 1168 var resultColumns = [ "display_names" ]; 1169 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1170 console.info('abnormal_calllog_query_test_2500 resultSet.goToFirstRow() = ' + resultSet.goToFirstRow()); 1171 console.info('abnormal_calllog_query_test_2500 resultSet.rowCount = ' + resultSet.rowCount); 1172 expect(resultSet.goToFirstRow() == false).assertTrue(); 1173 resultSet.close(); 1174 await calllogDelete("abnormal_calllog_query_test_2500"); 1175 done(); 1176 } catch (error) { 1177 console.info("logMessage abnormal_calllog_query_test_2500: calllog insert error = " + error); 1178 done(); 1179 } 1180 }); 1181 1182 /** 1183 * @tc.number abnormal_calllog_delete_test_2600 1184 * @tc.name Batch call records are added, and some of them fail, depending on the processing logic 1185 * @tc.desc Function test 1186 */ 1187 it("abnormal_calllog_delete_test_2600", 0, async function(done) { 1188 console.info("--------logMessage abnormal_calllog_delete_test_2600 is starting!------------"); 1189 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1190 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1191 var phoneNumber = randomNum(10); 1192 var insertValues = {phone_number : phoneNumber, display_name : "name2300"} 1193 try { 1194 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1195 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 1196 expect(calllogId > 0).assertTrue(); 1197 expect(calllogIdTwo > 0).assertTrue(); 1198 } catch (error) { 1199 console.info("logMessage abnormal_calllog_delete_test_2600: calllog insert error = " + error); 1200 done(); 1201 } 1202 let condition = new dataShare.DataSharePredicates(); 1203 condition.equalTo("ids", calllogIdTwo.toString()); 1204 condition.or(); 1205 condition.equalTo("id", calllogId.toString()); 1206 var code = await dataShareHelper.delete(calllogUri, condition); 1207 console.info("logMessage abnormal_calllog_delete_test_2600: code = " + code); 1208 expect(code == -1).assertTrue(); 1209 condition.clear(); 1210 var resultColumns = []; 1211 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1212 var count = 2; 1213 expect(resultSet.rowCount == count).assertTrue(); 1214 resultSet.close(); 1215 await calllogDelete("abnormal_calllog_delete_test_2600"); 1216 done(); 1217 }); 1218 1219 /** 1220 * @tc.number abnormal_calllog_delete_test_2700 1221 * @tc.name When batch call records are modified, the wrong field or table name is passed in 1222 * @tc.desc Function test 1223 */ 1224 it("abnormal_calllog_delete_test_2700", 0, async function(done) { 1225 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1226 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1227 var phoneNumber = randomNum(14); 1228 var insertValues = {phone_number : phoneNumber, display_name : "name2700"} 1229 try { 1230 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1231 var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues); 1232 expect(calllogId > 0).assertTrue(); 1233 expect(calllogIdTwo > 0).assertTrue(); 1234 await UpdateOneCalllog(); 1235 done(); 1236 } catch (error) { 1237 console.info("logMessage abnormal_calllog_delete_test_2700: calllog insert error = " + error); 1238 done(); 1239 } 1240 async function UpdateOneCalllog() 1241 { 1242 try { 1243 var insertValues = {phone_number : phoneNumber, display_names : "nameUpdateError2700"}; 1244 let condition = new dataShare.DataSharePredicates(); 1245 condition.equalTo("ids", calllogIdTwo.toString()); 1246 condition.or(); 1247 condition.equalTo("id", calllogId.toString()); 1248 var updateCode = await dataShareHelper.update(calllogUri, insertValues, condition); 1249 console.info("logMessage abnormal_calllog_delete_test_2700: updateCode = " + updateCode); 1250 expect(updateCode == -1).assertTrue(); 1251 var map = new Map(); 1252 map.set("id", calllogId.toString()); 1253 map.set("display_name", "name2700"); 1254 await calllogQueryForALL(map, "abnormal_calllog_delete_test_2700"); 1255 map.set("id", calllogIdTwo.toString()); 1256 await calllogQueryForALL(map, "abnormal_calllog_delete_test_2700"); 1257 await calllogDelete("abnormal_calllog_delete_test_2700"); 1258 } catch (error) { 1259 console.info("logMessage abnormal_calllog_delete_test_2700: update error = " + error); 1260 done(); 1261 } 1262 } 1263 }); 1264 1265 /** 1266 * @tc.number abnormal_calllog_query_test_2800 1267 * @tc.name Fuzzy search query based on mobile phone number 1268 * @tc.desc Function test 1269 */ 1270 it("abnormal_calllog_query_test_2800", 0, async function(done) { 1271 console.info("------------abnormal_calllog_query_test_2800 is starting!-----------"); 1272 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1273 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1274 var phoneNumber = randomNum(8); 1275 var phoneNumber_Test = phoneNumber.substring(0,3); 1276 var insertValues = {"phone_number" : phoneNumber}; 1277 try { 1278 var calllogId = await dataShareHelper.insert(calllogUri, insertValues); 1279 console.info("logMessage abnormal_calllog_query_test_2800: calllogId = " + calllogId); 1280 expect(calllogId > 0).assertTrue(); 1281 await QueryByStartsWithPhoneNumberError(); 1282 await calllogDelete("abnormal_calllog_query_test_2800"); 1283 done(); 1284 } catch (error) { 1285 console.info("logMessage abnormal_calllog_query_test_2800: calllog insert error = " + error); 1286 done(); 1287 } 1288 1289 async function QueryByStartsWithPhoneNumberError() 1290 { 1291 var resultColumns = [ "id", "phone_number" ]; 1292 let condition = new dataShare.DataSharePredicates(); 1293 condition.like("phone_numbers", phoneNumber_Test + "%"); 1294 try { 1295 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 1296 console.info("logMessage abnormal_calllog_query_test_2800: resultSet.rowCount = " + resultSet.rowCount); 1297 expect(resultSet.rowCount == -1).assertTrue(); 1298 resultSet.close(); 1299 } catch (error) { 1300 console.info("logMessage abnormal_calllog_query_test_2800: query error = " + error); 1301 done(); 1302 } 1303 } 1304 }); 1305 1306 afterAll(async function() { 1307 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 1308 console.info('callllog afterAll logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 1309 let condition = new dataShare.DataSharePredicates(); 1310 condition.greaterThan("id", "0"); 1311 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 1312 console.info('callllog afterAll end logMessage deleteCode = ' + deleteCode); 1313 }); 1314 1315 function randomNum (num) { 1316 let number = toString(Math.floor(Math.random() * (9 * Math.pow(10, num))) + (1 * Math.pow(10, num))); 1317 return number ; 1318 } 1319}) 1320