1115cd2caSopenharmony_ci/* 2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License. 5115cd2caSopenharmony_ci * You may obtain a copy of the License at 6115cd2caSopenharmony_ci * 7115cd2caSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8115cd2caSopenharmony_ci * 9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and 13115cd2caSopenharmony_ci * limitations under the License. 14115cd2caSopenharmony_ci */ 15115cd2caSopenharmony_ci 16115cd2caSopenharmony_ci#include "contactquery_test.h" 17115cd2caSopenharmony_ci 18115cd2caSopenharmony_ci#include "construction_name.h" 19115cd2caSopenharmony_ci#include "test_common.h" 20115cd2caSopenharmony_ci 21115cd2caSopenharmony_cinamespace Contacts { 22115cd2caSopenharmony_cinamespace Test { 23115cd2caSopenharmony_ciContactQueryTest::ContactQueryTest() 24115cd2caSopenharmony_ci{ 25115cd2caSopenharmony_ci} 26115cd2caSopenharmony_ci 27115cd2caSopenharmony_ciContactQueryTest::~ContactQueryTest() 28115cd2caSopenharmony_ci{ 29115cd2caSopenharmony_ci} 30115cd2caSopenharmony_ci 31115cd2caSopenharmony_ciint64_t ContactQueryTest::RawContactInsert(std::string displayName, 32115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket &rawContactValues) 33115cd2caSopenharmony_ci{ 34115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 35115cd2caSopenharmony_ci rawContactValues.Put("display_name", displayName); 36115cd2caSopenharmony_ci int64_t code = contactsDataAbility.Insert(uriRawContact, rawContactValues); 37115cd2caSopenharmony_ci return code; 38115cd2caSopenharmony_ci} 39115cd2caSopenharmony_ci 40115cd2caSopenharmony_ciint64_t ContactQueryTest::ContactDataInsert(int64_t rawContactId, std::string contentType, std::string detailInfo, 41115cd2caSopenharmony_ci std::string position, OHOS::DataShare::DataShareValuesBucket &contactDataValues) 42115cd2caSopenharmony_ci{ 43115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 44115cd2caSopenharmony_ci contactDataValues.Put("raw_contact_id", rawContactId); 45115cd2caSopenharmony_ci contactDataValues.Put("content_type", contentType); 46115cd2caSopenharmony_ci contactDataValues.Put("detail_info", detailInfo); 47115cd2caSopenharmony_ci contactDataValues.Put("position", position); 48115cd2caSopenharmony_ci int64_t code = contactsDataAbility.Insert(uriContactData, contactDataValues); 49115cd2caSopenharmony_ci return code; 50115cd2caSopenharmony_ci} 51115cd2caSopenharmony_ci 52115cd2caSopenharmony_cistd::shared_ptr<OHOS::DataShare::DataShareResultSet> ContactQueryTest::ContactQuery( 53115cd2caSopenharmony_ci const std::string &tableName, std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates) 54115cd2caSopenharmony_ci{ 55115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet; 56115cd2caSopenharmony_ci if (tableName == ContactTabName::RAW_CONTACT) { 57115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 58115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriRawContact, predicates, columns); 59115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_DATA) { 60115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 61115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriContactData, predicates, columns); 62115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT) { 63115cd2caSopenharmony_ci OHOS::Uri uriContact(ContactsUri::CONTACT); 64115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriContact, predicates, columns); 65115cd2caSopenharmony_ci } else if (tableName == ContactTabName::GROUPS) { 66115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 67115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriGroups, predicates, columns); 68115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) { 69115cd2caSopenharmony_ci OHOS::Uri uriBlocklist(ContactsUri::BLOCKLIST); 70115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriBlocklist, predicates, columns); 71115cd2caSopenharmony_ci } else if (tableName == ContactTabName::DELETED_RAW_CONTACT) { 72115cd2caSopenharmony_ci OHOS::Uri uriDeletedRawContact(ContactsUri::RAW_CONTACT); 73115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriDeletedRawContact, predicates, columns); 74115cd2caSopenharmony_ci } else if (tableName == ContactTabName::SEARCH_CONTACT) { 75115cd2caSopenharmony_ci OHOS::Uri uriSearchContact(ContactsUri::SEARCH); 76115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriSearchContact, predicates, columns); 77115cd2caSopenharmony_ci } else { 78115cd2caSopenharmony_ci HILOG_ERROR("ContactsDataAbility ====>no match uri action"); 79115cd2caSopenharmony_ci } 80115cd2caSopenharmony_ci return resultSet; 81115cd2caSopenharmony_ci} 82115cd2caSopenharmony_ci 83115cd2caSopenharmony_civoid ContactQueryTest::ClearData() 84115cd2caSopenharmony_ci{ 85115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 86115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 87115cd2caSopenharmony_ci predicates.NotEqualTo("id", "0"); 88115cd2caSopenharmony_ci predicates.And(); 89115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 90115cd2caSopenharmony_ci contactsDataAbility.Delete(uriRawContact, predicates); 91115cd2caSopenharmony_ci int time = 2000; 92115cd2caSopenharmony_ci std::chrono::milliseconds dura(time); 93115cd2caSopenharmony_ci std::this_thread::sleep_for(dura); 94115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 95115cd2caSopenharmony_ci OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT); 96115cd2caSopenharmony_ci predicates2.NotEqualTo("id", "0"); 97115cd2caSopenharmony_ci contactsDataAbility.Delete(uriRawContactComplete, predicates2); 98115cd2caSopenharmony_ci} 99115cd2caSopenharmony_ci 100115cd2caSopenharmony_ci/* 101115cd2caSopenharmony_ci* @tc.number contact_data_Insert_test_100 102115cd2caSopenharmony_ci* @tc.name Insert contact details, including 103115cd2caSopenharmony_ci (name, company, position, mobile phone number, nickname, email, home, remarks, aim) 104115cd2caSopenharmony_ci* @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 105115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 106115cd2caSopenharmony_ci* @tc.level Level1 107115cd2caSopenharmony_ci* @tc.size MediumTest 108115cd2caSopenharmony_ci* @tc.type Function 109115cd2caSopenharmony_ci*/ 110115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, contact_data_Insert_test_100, testing::ext::TestSize.Level1) 111115cd2caSopenharmony_ci{ 112115cd2caSopenharmony_ci HILOG_INFO("-----contact_data_Insert_test_100-----"); 113115cd2caSopenharmony_ci OHOS::Contacts::ConstructionName::local = "zh-CN"; 114115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 115115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesOne; 116115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesTwo; 117115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesThree; 118115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesFour; 119115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesFive; 120115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesSix; 121115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesSeven; 122115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesEight; 123115cd2caSopenharmony_ci std::string searchContact = ContactTabName::SEARCH_CONTACT; 124115cd2caSopenharmony_ci int64_t rawContactId = RawContactInsert("买键盘", values); 125115cd2caSopenharmony_ci EXPECT_GT(rawContactId, 0); 126115cd2caSopenharmony_ci 127115cd2caSopenharmony_ci int64_t contactDataIdOne = ContactDataInsert(rawContactId, "name", "买键盘", "", valuesOne); 128115cd2caSopenharmony_ci EXPECT_GT(contactDataIdOne, 0); 129115cd2caSopenharmony_ci 130115cd2caSopenharmony_ci int64_t contactDataIdTwo = 131115cd2caSopenharmony_ci ContactDataInsert(rawContactId, "organization", "你好天天向上hsk", "安全测试", valuesTwo); 132115cd2caSopenharmony_ci EXPECT_GT(contactDataIdTwo, 0); 133115cd2caSopenharmony_ci 134115cd2caSopenharmony_ci int64_t contactDataIdThree = ContactDataInsert(rawContactId, "phone", "18552504058", "", valuesThree); 135115cd2caSopenharmony_ci EXPECT_GT(contactDataIdThree, 0); 136115cd2caSopenharmony_ci 137115cd2caSopenharmony_ci int64_t contactDataIdFour = ContactDataInsert(rawContactId, "nickname", "买键盘", "", valuesFour); 138115cd2caSopenharmony_ci EXPECT_GT(contactDataIdFour, 0); 139115cd2caSopenharmony_ci 140115cd2caSopenharmony_ci int64_t contactDataIdFive = ContactDataInsert(rawContactId, "email", "1667894561@163.com", "", valuesFive); 141115cd2caSopenharmony_ci EXPECT_GT(contactDataIdFive, 0); 142115cd2caSopenharmony_ci 143115cd2caSopenharmony_ci int64_t contactDataIdSix = ContactDataInsert(rawContactId, "postal_address", "南京市", "", valuesSix); 144115cd2caSopenharmony_ci EXPECT_GT(contactDataIdSix, 0); 145115cd2caSopenharmony_ci 146115cd2caSopenharmony_ci int64_t contactDataIdSeven = ContactDataInsert(rawContactId, "note", "LanguagemjavaC++", "", valuesSeven); 147115cd2caSopenharmony_ci EXPECT_GT(contactDataIdSeven, 0); 148115cd2caSopenharmony_ci 149115cd2caSopenharmony_ci int64_t contactDataIdEight = ContactDataInsert(rawContactId, "im", "14487956@1.com", "", valuesEight); 150115cd2caSopenharmony_ci EXPECT_GT(contactDataIdEight, 0); 151115cd2caSopenharmony_ci ClearData(); 152115cd2caSopenharmony_ci} 153115cd2caSopenharmony_ci 154115cd2caSopenharmony_ci/* 155115cd2caSopenharmony_ci * @tc.number query_by_name_test_200 156115cd2caSopenharmony_ci * @tc.name Fuzzy search by name 157115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 158115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 159115cd2caSopenharmony_ci * @tc.level Level1 160115cd2caSopenharmony_ci * @tc.size MediumTest 161115cd2caSopenharmony_ci * @tc.type Function 162115cd2caSopenharmony_ci */ 163115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_name_test_200, testing::ext::TestSize.Level1) 164115cd2caSopenharmony_ci{ 165115cd2caSopenharmony_ci HILOG_INFO("-----query_by_name_test_200 is starting!-----"); 166115cd2caSopenharmony_ci std::string tag("query_by_name_test_200"); 167115cd2caSopenharmony_ci std::vector<std::string> columns; 168115cd2caSopenharmony_ci columns.push_back("display_name"); 169115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 170115cd2caSopenharmony_ci predicates.Like("display_name", "%买%"); 171115cd2caSopenharmony_ci std::string searchContact = ContactTabName::SEARCH_CONTACT; 172115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates); 173115cd2caSopenharmony_ci 174115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 175115cd2caSopenharmony_ci values.Put("display_name", "买键盘"); 176115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_name_test_200"); 177115cd2caSopenharmony_ci ClearData(); 178115cd2caSopenharmony_ci} 179115cd2caSopenharmony_ci 180115cd2caSopenharmony_ci/* 181115cd2caSopenharmony_ci * @tc.number query_by_pinyin_test_300 182115cd2caSopenharmony_ci * @tc.name Fuzzy search based on name Pinyin 183115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 184115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 185115cd2caSopenharmony_ci * @tc.level Level1 186115cd2caSopenharmony_ci * @tc.size MediumTest 187115cd2caSopenharmony_ci * @tc.type Function 188115cd2caSopenharmony_ci */ 189115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_pinyin_test_300, testing::ext::TestSize.Level1) 190115cd2caSopenharmony_ci{ 191115cd2caSopenharmony_ci HILOG_INFO("-----query_by_pinyin_test_300 is starting!-----"); 192115cd2caSopenharmony_ci std::string tag("query_by_pinyin_test_300"); 193115cd2caSopenharmony_ci std::vector<std::string> columns; 194115cd2caSopenharmony_ci columns.push_back("id"); 195115cd2caSopenharmony_ci columns.push_back("search_name"); 196115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 197115cd2caSopenharmony_ci predicates.Like("search_name", "%mai%"); 198115cd2caSopenharmony_ci std::string searchContact = ContactTabName::SEARCH_CONTACT; 199115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates); 200115cd2caSopenharmony_ci 201115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 202115cd2caSopenharmony_ci values.Put("search_name", "买键盘||maijianpan||mjp"); 203115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_pinyin_test_300"); 204115cd2caSopenharmony_ci ClearData(); 205115cd2caSopenharmony_ci} 206115cd2caSopenharmony_ci 207115cd2caSopenharmony_ci/* 208115cd2caSopenharmony_ci * @tc.number query_by_pinyin_test_400 209115cd2caSopenharmony_ci * @tc.name Fuzzy search based on Pinyin name 210115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 211115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 212115cd2caSopenharmony_ci * @tc.level Level1 213115cd2caSopenharmony_ci * @tc.size MediumTest 214115cd2caSopenharmony_ci * @tc.type Function 215115cd2caSopenharmony_ci */ 216115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_pinyin_test_400, testing::ext::TestSize.Level1) 217115cd2caSopenharmony_ci{ 218115cd2caSopenharmony_ci HILOG_INFO("-----query_by_pinyin_test_400 is starting!-----"); 219115cd2caSopenharmony_ci std::string tag("query_by_pinyin_test_400"); 220115cd2caSopenharmony_ci std::vector<std::string> columns; 221115cd2caSopenharmony_ci columns.push_back("id"); 222115cd2caSopenharmony_ci columns.push_back("search_name"); 223115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 224115cd2caSopenharmony_ci predicates.Like("search_name", "%mjp%"); 225115cd2caSopenharmony_ci std::string searchContact = ContactTabName::SEARCH_CONTACT; 226115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates); 227115cd2caSopenharmony_ci 228115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 229115cd2caSopenharmony_ci values.Put("search_name", "买键盘||maijianpan||mjp"); 230115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_pinyin_test_400"); 231115cd2caSopenharmony_ci ClearData(); 232115cd2caSopenharmony_ci} 233115cd2caSopenharmony_ci 234115cd2caSopenharmony_ci/* 235115cd2caSopenharmony_ci * @tc.number query_by_company_test_500 236115cd2caSopenharmony_ci * @tc.name Fuzzy search by company 237115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 238115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 239115cd2caSopenharmony_ci * @tc.level Level1 240115cd2caSopenharmony_ci * @tc.size MediumTest 241115cd2caSopenharmony_ci * @tc.type Function 242115cd2caSopenharmony_ci */ 243115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_company_test_500, testing::ext::TestSize.Level1) 244115cd2caSopenharmony_ci{ 245115cd2caSopenharmony_ci HILOG_INFO("-----query_by_company_test_500 is starting!-----"); 246115cd2caSopenharmony_ci std::string tag("query_by_company_test_500"); 247115cd2caSopenharmony_ci std::vector<std::string> columns; 248115cd2caSopenharmony_ci columns.push_back("detail_info"); 249115cd2caSopenharmony_ci columns.push_back("position"); 250115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 251115cd2caSopenharmony_ci predicates.Like("detail_info", "%天天向上%"); 252115cd2caSopenharmony_ci predicates.And(); 253115cd2caSopenharmony_ci predicates.EqualTo("type_id", "4"); 254115cd2caSopenharmony_ci std::string contactData = "contact_data"; 255115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 256115cd2caSopenharmony_ci 257115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 258115cd2caSopenharmony_ci values.Put("detail_info", "你好天天向上hsk"); 259115cd2caSopenharmony_ci values.Put("position", "安全测试"); 260115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_company_test_500"); 261115cd2caSopenharmony_ci ClearData(); 262115cd2caSopenharmony_ci} 263115cd2caSopenharmony_ci 264115cd2caSopenharmony_ci/* 265115cd2caSopenharmony_ci * @tc.number query_by_position_test_600 266115cd2caSopenharmony_ci * @tc.name Fuzzy search by position 267115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 268115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 269115cd2caSopenharmony_ci * @tc.level Level1 270115cd2caSopenharmony_ci * @tc.size MediumTest 271115cd2caSopenharmony_ci * @tc.type Function 272115cd2caSopenharmony_ci */ 273115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_position_test_600, testing::ext::TestSize.Level1) 274115cd2caSopenharmony_ci{ 275115cd2caSopenharmony_ci HILOG_INFO("-----query_by_position_test_600 is starting!-----"); 276115cd2caSopenharmony_ci std::string tag("query_by_position_test_600"); 277115cd2caSopenharmony_ci std::vector<std::string> columns; 278115cd2caSopenharmony_ci columns.push_back("detail_info"); 279115cd2caSopenharmony_ci columns.push_back("position"); 280115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 281115cd2caSopenharmony_ci predicates.Like("position", "%测试%"); 282115cd2caSopenharmony_ci predicates.And(); 283115cd2caSopenharmony_ci predicates.EqualTo("type_id", "4"); 284115cd2caSopenharmony_ci std::string contactData = "contact_data"; 285115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 286115cd2caSopenharmony_ci 287115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 288115cd2caSopenharmony_ci values.Put("detail_info", "你好天天向上hsk"); 289115cd2caSopenharmony_ci values.Put("position", "安全测试"); 290115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_position_test_600"); 291115cd2caSopenharmony_ci ClearData(); 292115cd2caSopenharmony_ci} 293115cd2caSopenharmony_ci 294115cd2caSopenharmony_ci/* 295115cd2caSopenharmony_ci * @tc.number query_by_phone_test_700 296115cd2caSopenharmony_ci * @tc.name Fuzzy search according to mobile phone number 297115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 298115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 299115cd2caSopenharmony_ci * @tc.level Level1 300115cd2caSopenharmony_ci * @tc.size MediumTest 301115cd2caSopenharmony_ci * @tc.type Function 302115cd2caSopenharmony_ci */ 303115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_phone_test_700, testing::ext::TestSize.Level1) 304115cd2caSopenharmony_ci{ 305115cd2caSopenharmony_ci HILOG_INFO("-----query_by_phone_test_700 is starting!-----"); 306115cd2caSopenharmony_ci std::string tag("query_by_phone_test_700"); 307115cd2caSopenharmony_ci std::vector<std::string> columns; 308115cd2caSopenharmony_ci columns.push_back("detail_info"); 309115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 310115cd2caSopenharmony_ci predicates.Like("detail_info", "1855250%"); 311115cd2caSopenharmony_ci predicates.And(); 312115cd2caSopenharmony_ci predicates.EqualTo("type_id", "5"); 313115cd2caSopenharmony_ci std::string contactData = "contact_data"; 314115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 315115cd2caSopenharmony_ci 316115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 317115cd2caSopenharmony_ci values.Put("detail_info", "18552504058"); 318115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_phone_test_700"); 319115cd2caSopenharmony_ci ClearData(); 320115cd2caSopenharmony_ci} 321115cd2caSopenharmony_ci 322115cd2caSopenharmony_ci/* 323115cd2caSopenharmony_ci * @tc.number query_by_nick_name_test_800 324115cd2caSopenharmony_ci * @tc.name Fuzzy search by nickname 325115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 326115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 327115cd2caSopenharmony_ci * @tc.level Level1 328115cd2caSopenharmony_ci * @tc.size MediumTest 329115cd2caSopenharmony_ci * @tc.type Function 330115cd2caSopenharmony_ci */ 331115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_nick_name_test_800, testing::ext::TestSize.Level1) 332115cd2caSopenharmony_ci{ 333115cd2caSopenharmony_ci HILOG_INFO("-----query_by_nick_name_test_800 is starting!-----"); 334115cd2caSopenharmony_ci std::string tag("query_by_nick_name_test_800"); 335115cd2caSopenharmony_ci std::vector<std::string> columns; 336115cd2caSopenharmony_ci columns.push_back("detail_info"); 337115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 338115cd2caSopenharmony_ci predicates.Like("detail_info", "%买%"); 339115cd2caSopenharmony_ci predicates.And(); 340115cd2caSopenharmony_ci predicates.EqualTo("type_id", "3"); 341115cd2caSopenharmony_ci std::string contactData = "contact_data"; 342115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 343115cd2caSopenharmony_ci 344115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 345115cd2caSopenharmony_ci values.Put("detail_info", "买键盘"); 346115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_nick_name_test_800"); 347115cd2caSopenharmony_ci ClearData(); 348115cd2caSopenharmony_ci} 349115cd2caSopenharmony_ci 350115cd2caSopenharmony_ci/* 351115cd2caSopenharmony_ci * @tc.number query_by_email_test_900 352115cd2caSopenharmony_ci * @tc.name Fuzzy search by mailbox 353115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 354115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 355115cd2caSopenharmony_ci * @tc.level Level1 356115cd2caSopenharmony_ci * @tc.size MediumTest 357115cd2caSopenharmony_ci * @tc.type Function 358115cd2caSopenharmony_ci */ 359115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_email_test_900, testing::ext::TestSize.Level1) 360115cd2caSopenharmony_ci{ 361115cd2caSopenharmony_ci HILOG_INFO("-----query_by_email_test_900 is starting!-----"); 362115cd2caSopenharmony_ci std::string tag("query_by_email_test_900"); 363115cd2caSopenharmony_ci std::vector<std::string> columns; 364115cd2caSopenharmony_ci columns.push_back("detail_info"); 365115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 366115cd2caSopenharmony_ci predicates.Like("detail_info", "166%"); 367115cd2caSopenharmony_ci predicates.And(); 368115cd2caSopenharmony_ci predicates.EqualTo("type_id", "1"); 369115cd2caSopenharmony_ci predicates.And(); 370115cd2caSopenharmony_ci predicates.EqualTo("is_deleted", "0"); 371115cd2caSopenharmony_ci std::string contactData = "contact_data"; 372115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 373115cd2caSopenharmony_ci 374115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 375115cd2caSopenharmony_ci values.Put("detail_info", "1667894561@163.com"); 376115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_email_test_900"); 377115cd2caSopenharmony_ci ClearData(); 378115cd2caSopenharmony_ci} 379115cd2caSopenharmony_ci 380115cd2caSopenharmony_ci/* 381115cd2caSopenharmony_ci * @tc.number query_by_address_test_1000 382115cd2caSopenharmony_ci * @tc.name Fuzzy search based on house 383115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 384115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 385115cd2caSopenharmony_ci * @tc.level Level1 386115cd2caSopenharmony_ci * @tc.size MediumTest 387115cd2caSopenharmony_ci * @tc.type Function 388115cd2caSopenharmony_ci */ 389115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_address_test_1000, testing::ext::TestSize.Level1) 390115cd2caSopenharmony_ci{ 391115cd2caSopenharmony_ci HILOG_INFO("-----query_by_address_test_1000 is starting!-----"); 392115cd2caSopenharmony_ci std::string tag("query_by_address_test_1000"); 393115cd2caSopenharmony_ci std::vector<std::string> columns; 394115cd2caSopenharmony_ci columns.push_back("detail_info"); 395115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 396115cd2caSopenharmony_ci predicates.Like("detail_info", "%南京%"); 397115cd2caSopenharmony_ci predicates.And(); 398115cd2caSopenharmony_ci predicates.EqualTo("type_id", "7"); 399115cd2caSopenharmony_ci std::string contactData = "contact_data"; 400115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 401115cd2caSopenharmony_ci 402115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 403115cd2caSopenharmony_ci values.Put("detail_info", "南京市"); 404115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_address_test_1000"); 405115cd2caSopenharmony_ci ClearData(); 406115cd2caSopenharmony_ci} 407115cd2caSopenharmony_ci 408115cd2caSopenharmony_ci/* 409115cd2caSopenharmony_ci * @tc.number query_by_note_test_1100 410115cd2caSopenharmony_ci * @tc.name Fuzzy search based on comments 411115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 412115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 413115cd2caSopenharmony_ci * @tc.level Level1 414115cd2caSopenharmony_ci * @tc.size MediumTest 415115cd2caSopenharmony_ci * @tc.type Function 416115cd2caSopenharmony_ci */ 417115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_note_test_1100, testing::ext::TestSize.Level1) 418115cd2caSopenharmony_ci{ 419115cd2caSopenharmony_ci HILOG_INFO("-----query_by_note_test_1100 is starting!-----"); 420115cd2caSopenharmony_ci std::string tag("query_by_note_test_1100"); 421115cd2caSopenharmony_ci std::vector<std::string> columns; 422115cd2caSopenharmony_ci columns.push_back("detail_info"); 423115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 424115cd2caSopenharmony_ci predicates.Like("detail_info", "%mjava%"); 425115cd2caSopenharmony_ci predicates.And(); 426115cd2caSopenharmony_ci predicates.EqualTo("type_id", "10"); 427115cd2caSopenharmony_ci std::string contactData = "contact_data"; 428115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 429115cd2caSopenharmony_ci 430115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 431115cd2caSopenharmony_ci values.Put("detail_info", "LanguagemjavaC++"); 432115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_note_test_1100"); 433115cd2caSopenharmony_ci ClearData(); 434115cd2caSopenharmony_ci} 435115cd2caSopenharmony_ci 436115cd2caSopenharmony_ci/* 437115cd2caSopenharmony_ci * @tc.number query_by_aim_test_1200 438115cd2caSopenharmony_ci * @tc.name Fuzzy search according to aim 439115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 440115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 441115cd2caSopenharmony_ci * @tc.level Level1 442115cd2caSopenharmony_ci * @tc.size MediumTest 443115cd2caSopenharmony_ci * @tc.type Function 444115cd2caSopenharmony_ci */ 445115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, query_by_aim_test_1200, testing::ext::TestSize.Level1) 446115cd2caSopenharmony_ci{ 447115cd2caSopenharmony_ci HILOG_INFO("-----query_by_aim_test_1200 is starting!-----"); 448115cd2caSopenharmony_ci std::string tag("query_by_aim_test_1200"); 449115cd2caSopenharmony_ci std::vector<std::string> columns; 450115cd2caSopenharmony_ci columns.push_back("id"); 451115cd2caSopenharmony_ci columns.push_back("raw_contact_id"); 452115cd2caSopenharmony_ci columns.push_back("detail_info"); 453115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 454115cd2caSopenharmony_ci predicates.Like("detail_info", "144%"); 455115cd2caSopenharmony_ci predicates.And(); 456115cd2caSopenharmony_ci predicates.EqualTo("type_id", "2"); 457115cd2caSopenharmony_ci std::string contactData = "contact_data"; 458115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates); 459115cd2caSopenharmony_ci 460115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 461115cd2caSopenharmony_ci values.Put("detail_info", "14487956@1.com"); 462115cd2caSopenharmony_ci CheckResultSet(values, resultSet, "query_by_aim_test_1200"); 463115cd2caSopenharmony_ci ClearData(); 464115cd2caSopenharmony_ci} 465115cd2caSopenharmony_ci 466115cd2caSopenharmony_ci/* 467115cd2caSopenharmony_ci * @tc.number abnormal_contact_Query_test_1300 468115cd2caSopenharmony_ci * @tc.name An incorrect field name was passed in during retrieval 469115cd2caSopenharmony_ci * @tc.desc Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname, 470115cd2caSopenharmony_ci email address, residence, remarks, AIM fuzzy search capabilities 471115cd2caSopenharmony_ci * @tc.level Level1 472115cd2caSopenharmony_ci * @tc.size MediumTest 473115cd2caSopenharmony_ci * @tc.type Function 474115cd2caSopenharmony_ci */ 475115cd2caSopenharmony_ciHWTEST_F(ContactQueryTest, abnormal_contact_Query_test_1300, testing::ext::TestSize.Level1) 476115cd2caSopenharmony_ci{ 477115cd2caSopenharmony_ci HILOG_INFO("-----abnormal_contact_Query_test_1300 is starting!-----"); 478115cd2caSopenharmony_ci std::string tag("abnormal_contact_Query_test_1300"); 479115cd2caSopenharmony_ci std::vector<std::string> columns; 480115cd2caSopenharmony_ci columns.push_back("id"); 481115cd2caSopenharmony_ci columns.push_back("search_name"); 482115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 483115cd2caSopenharmony_ci predicates.Like("search_namesss", "%mjp%"); 484115cd2caSopenharmony_ci std::string searchContact = ContactTabName::SEARCH_CONTACT; 485115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates); 486115cd2caSopenharmony_ci // resultSet count 1 487115cd2caSopenharmony_ci int rowCount = 0; 488115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 489115cd2caSopenharmony_ci EXPECT_EQ(-1, rowCount); 490115cd2caSopenharmony_ci ClearData(); 491115cd2caSopenharmony_ci} 492115cd2caSopenharmony_ci} // namespace Test 493115cd2caSopenharmony_ci} // namespace Contacts