1 /* 2 * Copyright (C) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "cs_test.h" 17 18 #define private public 19 #define protected public 20 #include "cellular_call_callback.h" 21 #include "cellular_call_handler.h" 22 #include "cellular_call_proxy.h" 23 #include "cellular_call_register.h" 24 #include "cellular_call_service.h" 25 #include "cellular_call_supplement.h" 26 #include "config_request.h" 27 #include "core_service_client.h" 28 #include "cs_control.h" 29 #include "tel_ril_call_parcel.h" 30 #include "operator_config_types.h" 31 #include "radio_event.h" 32 #include "securec.h" 33 #include "sim_state_type.h" 34 35 namespace OHOS { 36 namespace Telephony { 37 using namespace testing::ext; 38 const int32_t SIM1_SLOTID = 0; 39 const int32_t SIM2_SLOTID = 1; 40 const int32_t INVALID_SLOTID = 0xFF; 41 const std::string PHONE_NUMBER = "0000000"; 42 const std::string PHONE_NUMBER_SECOND = "1111111"; 43 const std::string PHONE_NUMBER_THIRD = "2222222"; 44 45 /** 46 * @tc.number cellular_call_cs_test_001 47 * @tc.name Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc 48 * @tc.desc Function test 49 */ 50 HWTEST_F(CsTest, cellular_call_cs_test_001, Function | MediumTest | Level0) 51 { 52 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 53 ASSERT_TRUE(systemAbilityMgr != nullptr); 54 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 55 ASSERT_TRUE(remote != nullptr); 56 auto telephonyService = iface_cast<CellularCallInterface>(remote); 57 ASSERT_TRUE(telephonyService != nullptr); 58 std::cout << "HWTEST_F cellular_call_cs_test_001"; 59 } 60 61 /** 62 * @tc.number cellular_call_cs_test_002 63 * @tc.name Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc 64 * @tc.desc Function test 65 */ 66 HWTEST_F(CsTest, cellular_call_cs_test_002, Function | MediumTest | Level1) 67 { 68 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 69 ASSERT_TRUE(systemAbilityMgr != nullptr); 70 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 71 ASSERT_TRUE(remote != nullptr); 72 auto telephonyService = iface_cast<CellularCallInterface>(remote); 73 ASSERT_TRUE(telephonyService != nullptr); 74 std::cout << "HWTEST_F cellular_call_cs_test_002"; 75 } 76 77 /** 78 * @tc.number Telephony_CallManager_SetEmergencyCallList_0101 79 * @tc.name SetEmergencyCallList "443,356,789",test SetEmergencyCallList(),return success 80 * @tc.desc Function test 81 */ 82 HWTEST_F(CsTest, cellular_call_SetEmergencyCallList_0101, Function | MediumTest | Level3) 83 { 84 AccessToken token; 85 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 86 ASSERT_TRUE(systemAbilityMgr != nullptr); 87 auto emergencyRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 88 ASSERT_TRUE(emergencyRemote != nullptr); 89 auto telephonyService = iface_cast<CellularCallInterface>(emergencyRemote); 90 ASSERT_TRUE(telephonyService != nullptr); 91 92 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 93 return; 94 } 95 96 std::vector<EmergencyCall> eccVec; 97 EmergencyCall temp0 = { "499", "460", EccType::TYPE_CATEGORY, SimpresentType::TYPE_NO_CARD, 98 AbnormalServiceType::TYPE_ALL }; 99 EmergencyCall temp1 = { "443", "460", EccType::TYPE_POLICE, SimpresentType::TYPE_NO_CARD, 100 AbnormalServiceType::TYPE_ALL }; 101 EmergencyCall temp2 = { "356", "460", EccType::TYPE_AMBULANCE, SimpresentType::TYPE_NO_CARD, 102 AbnormalServiceType::TYPE_ALL }; 103 EmergencyCall temp3 = { "783", "460", EccType::TYPE_FIRE, SimpresentType::TYPE_NO_CARD, 104 AbnormalServiceType::TYPE_ALL }; 105 EmergencyCall temp4 = { "975", "460", EccType::TYPE_SEA, SimpresentType::TYPE_HAS_CARD, 106 AbnormalServiceType::TYPE_ONLY_CS }; 107 EmergencyCall temp5 = { "350", "460", EccType::TYPE_MOUNTAIN, SimpresentType::TYPE_HAS_CARD, 108 AbnormalServiceType::TYPE_ALL }; 109 eccVec.push_back(temp0); 110 eccVec.push_back(temp1); 111 eccVec.push_back(temp2); 112 eccVec.push_back(temp3); 113 eccVec.push_back(temp4); 114 eccVec.push_back(temp5); 115 if (HasSimCard(SIM1_SLOTID)) { 116 EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM1_SLOTID, eccVec), 0); 117 } 118 if (HasSimCard(SIM2_SLOTID)) { 119 EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM2_SLOTID, eccVec), 0); 120 } 121 JudgeIsEmergencyPhoneNumber(); 122 } 123 124 HWTEST_F(CsTest, cellular_call_IsOperatorConfigEmergencyCallList_0001, Function | MediumTest | Level3) 125 { 126 AccessToken token; 127 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 128 ASSERT_TRUE(systemAbilityMgr != nullptr); 129 auto operatorRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 130 ASSERT_TRUE(operatorRemote != nullptr); 131 auto telephonyService = iface_cast<CellularCallInterface>(operatorRemote); 132 ASSERT_TRUE(telephonyService != nullptr); 133 134 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 135 return; 136 } 137 OperatorConfig opc; 138 if (HasSimCard(SIM1_SLOTID)) { 139 DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM1_SLOTID, opc); 140 if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) { 141 for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) { 142 bool enabled = false; 143 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, number, enabled); 144 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode); 145 } 146 } 147 } 148 if (HasSimCard(SIM2_SLOTID)) { 149 DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM2_SLOTID, opc); 150 if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) { 151 for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) { 152 bool enabled = false; 153 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, number, enabled); 154 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode); 155 } 156 } 157 } 158 } 159 160 /** 161 * @tc.number cellular_call_DialCall_0001 162 * @tc.name Test for SetClip function by cs 163 * @tc.desc Function test 164 */ 165 HWTEST_F(CsTest, cellular_call_DialCall_0001, Function | MediumTest | Level2) 166 { 167 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 168 return; 169 } 170 if (HasSimCard(SIM1_SLOTID)) { 171 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*30#"); 172 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 173 } 174 if (HasSimCard(SIM2_SLOTID)) { 175 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*30#"); 176 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 177 } 178 } 179 180 /** 181 * @tc.number cellular_call_DialCall_0002 182 * @tc.name Test for SetClip function by cs 183 * @tc.desc Function test 184 */ 185 HWTEST_F(CsTest, cellular_call_DialCall_0002, Function | MediumTest | Level2) 186 { 187 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 188 return; 189 } 190 if (HasSimCard(SIM1_SLOTID)) { 191 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#30#"); 192 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 193 } 194 if (HasSimCard(SIM2_SLOTID)) { 195 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#30#"); 196 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 197 } 198 } 199 200 /** 201 * @tc.number cellular_call_DialCall_0003 202 * @tc.name Test for getClip function by cs 203 * @tc.desc Function test 204 */ 205 HWTEST_F(CsTest, cellular_call_DialCall_0003, Function | MediumTest | Level2) 206 { 207 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 208 return; 209 } 210 if (HasSimCard(SIM1_SLOTID)) { 211 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#30#"); 212 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 213 } 214 if (HasSimCard(SIM2_SLOTID)) { 215 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#30#"); 216 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 217 } 218 } 219 220 /** 221 * @tc.number cellular_call_DialCall_0004 222 * @tc.name Test for SetClir function by cs 223 * @tc.desc Function test 224 */ 225 HWTEST_F(CsTest, cellular_call_DialCall_0004, Function | MediumTest | Level2) 226 { 227 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 228 return; 229 } 230 if (HasSimCard(SIM1_SLOTID)) { 231 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*31#"); 232 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 233 } 234 if (HasSimCard(SIM2_SLOTID)) { 235 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*31#"); 236 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 237 } 238 } 239 240 /** 241 * @tc.number cellular_call_DialCall_0005 242 * @tc.name Test for SetClir function by cs 243 * @tc.desc Function test 244 */ 245 HWTEST_F(CsTest, cellular_call_DialCall_0005, Function | MediumTest | Level2) 246 { 247 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 248 return; 249 } 250 if (HasSimCard(SIM1_SLOTID)) { 251 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#31#"); 252 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 253 } 254 if (HasSimCard(SIM2_SLOTID)) { 255 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#31#"); 256 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 257 } 258 } 259 260 /** 261 * @tc.number cellular_call_DialCall_0006 262 * @tc.name Test for GetClir function by cs 263 * @tc.desc Function test 264 */ 265 HWTEST_F(CsTest, cellular_call_DialCall_0006, Function | MediumTest | Level2) 266 { 267 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 268 return; 269 } 270 if (HasSimCard(SIM1_SLOTID)) { 271 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#31#"); 272 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 273 } 274 if (HasSimCard(SIM2_SLOTID)) { 275 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#31#"); 276 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 277 } 278 } 279 280 /** 281 * @tc.number cellular_call_DialCall_0007 282 * @tc.name Test for SetCallTransfer function by cs 283 * @tc.desc Function test 284 */ 285 HWTEST_F(CsTest, cellular_call_DialCall_0007, Function | MediumTest | Level2) 286 { 287 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 288 return; 289 } 290 if (HasSimCard(SIM1_SLOTID)) { 291 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*21#"); 292 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 293 } 294 if (HasSimCard(SIM2_SLOTID)) { 295 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*21#"); 296 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 297 } 298 } 299 300 /** 301 * @tc.number cellular_call_DialCall_0008 302 * @tc.name Test for SetCallTransfer function by cs 303 * @tc.desc Function test 304 */ 305 HWTEST_F(CsTest, cellular_call_DialCall_0008, Function | MediumTest | Level2) 306 { 307 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 308 return; 309 } 310 if (HasSimCard(SIM1_SLOTID)) { 311 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#21#"); 312 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 313 } 314 if (HasSimCard(SIM2_SLOTID)) { 315 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#21#"); 316 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 317 } 318 } 319 320 /** 321 * @tc.number cellular_call_DialCall_0009 322 * @tc.name Test for GetCallTransfer function by cs 323 * @tc.desc Function test 324 */ 325 HWTEST_F(CsTest, cellular_call_DialCall_0009, Function | MediumTest | Level2) 326 { 327 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 328 return; 329 } 330 if (HasSimCard(SIM1_SLOTID)) { 331 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#21#"); 332 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 333 } 334 if (HasSimCard(SIM2_SLOTID)) { 335 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#21#"); 336 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 337 } 338 } 339 340 /** 341 * @tc.number cellular_call_DialCall_0010 342 * @tc.name Test for SetCallRestriction function by cs 343 * @tc.desc Function test 344 */ 345 HWTEST_F(CsTest, cellular_call_DialCall_0010, Function | MediumTest | Level2) 346 { 347 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 348 return; 349 } 350 if (HasSimCard(SIM1_SLOTID)) { 351 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*33#"); 352 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 353 } 354 if (HasSimCard(SIM2_SLOTID)) { 355 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*33#"); 356 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 357 } 358 } 359 360 /** 361 * @tc.number cellular_call_DialCall_0011 362 * @tc.name Test for SetCallRestriction function by cs 363 * @tc.desc Function test 364 */ 365 HWTEST_F(CsTest, cellular_call_DialCall_0011, Function | MediumTest | Level2) 366 { 367 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 368 return; 369 } 370 if (HasSimCard(SIM1_SLOTID)) { 371 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#33#"); 372 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 373 } 374 if (HasSimCard(SIM2_SLOTID)) { 375 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#33#"); 376 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 377 } 378 } 379 380 /** 381 * @tc.number cellular_call_DialCall_0012 382 * @tc.name Test for GetCallRestriction function by cs 383 * @tc.desc Function test 384 */ 385 HWTEST_F(CsTest, cellular_call_DialCall_0012, Function | MediumTest | Level2) 386 { 387 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 388 return; 389 } 390 if (HasSimCard(SIM1_SLOTID)) { 391 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#33#"); 392 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 393 } 394 if (HasSimCard(SIM2_SLOTID)) { 395 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#33#"); 396 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 397 } 398 } 399 400 /** 401 * @tc.number cellular_call_DialCall_0013 402 * @tc.name Test for SetCallWaiting function by cs 403 * @tc.desc Function test 404 */ 405 HWTEST_F(CsTest, cellular_call_DialCall_0013, Function | MediumTest | Level2) 406 { 407 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 408 return; 409 } 410 if (HasSimCard(SIM1_SLOTID)) { 411 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*43#"); 412 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 413 } 414 if (HasSimCard(SIM2_SLOTID)) { 415 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*43#"); 416 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 417 } 418 } 419 420 /** 421 * @tc.number cellular_call_DialCall_0014 422 * @tc.name Test for SetCallWaiting function by cs 423 * @tc.desc Function test 424 */ 425 HWTEST_F(CsTest, cellular_call_DialCall_0014, Function | MediumTest | Level2) 426 { 427 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 428 return; 429 } 430 if (HasSimCard(SIM1_SLOTID)) { 431 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#43#"); 432 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 433 } 434 if (HasSimCard(SIM2_SLOTID)) { 435 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#43#"); 436 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 437 } 438 } 439 440 /** 441 * @tc.number cellular_call_DialCall_0015 442 * @tc.name Test for GetCallWaiting function by cs 443 * @tc.desc Function test 444 */ 445 HWTEST_F(CsTest, cellular_call_DialCall_0015, Function | MediumTest | Level2) 446 { 447 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 448 return; 449 } 450 if (HasSimCard(SIM1_SLOTID)) { 451 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#43#"); 452 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 453 } 454 if (HasSimCard(SIM2_SLOTID)) { 455 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#43#"); 456 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 457 } 458 } 459 460 /** 461 * @tc.number cellular_call_DialCall_0016 462 * @tc.name Test for AlterPinPassword function by cs 463 * @tc.desc Function test 464 */ 465 HWTEST_F(CsTest, cellular_call_DialCall_0016, Function | MediumTest | Level2) 466 { 467 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 468 return; 469 } 470 if (HasSimCard(SIM1_SLOTID)) { 471 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*04#"); 472 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 473 } 474 if (HasSimCard(SIM2_SLOTID)) { 475 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*04#"); 476 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 477 } 478 } 479 480 /** 481 * @tc.number cellular_call_DialCall_0017 482 * @tc.name Test for UnlockPuk function by cs 483 * @tc.desc Function test 484 */ 485 HWTEST_F(CsTest, cellular_call_DialCall_0017, Function | MediumTest | Level2) 486 { 487 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 488 return; 489 } 490 if (HasSimCard(SIM1_SLOTID)) { 491 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*05#"); 492 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 493 } 494 if (HasSimCard(SIM2_SLOTID)) { 495 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*05#"); 496 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 497 } 498 } 499 500 /** 501 * @tc.number cellular_call_DialCall_0018 502 * @tc.name Test for AlterPin2Password function by cs 503 * @tc.desc Function test 504 */ 505 HWTEST_F(CsTest, cellular_call_DialCall_0018, Function | MediumTest | Level2) 506 { 507 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 508 return; 509 } 510 if (HasSimCard(SIM1_SLOTID)) { 511 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*042#"); 512 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 513 } 514 if (HasSimCard(SIM2_SLOTID)) { 515 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*042#"); 516 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 517 } 518 } 519 520 /** 521 * @tc.number cellular_call_DialCall_0019 522 * @tc.name Test for UnlockPuk2 function by cs 523 * @tc.desc Function test 524 */ 525 HWTEST_F(CsTest, cellular_call_DialCall_0019, Function | MediumTest | Level2) 526 { 527 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 528 return; 529 } 530 if (HasSimCard(SIM1_SLOTID)) { 531 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*052#"); 532 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 533 } 534 if (HasSimCard(SIM2_SLOTID)) { 535 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*052#"); 536 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 537 } 538 } 539 540 /** 541 * @tc.number cellular_call_DialCall_0020 542 * @tc.name Test for SendUssd function by cs 543 * @tc.desc Function test 544 */ 545 HWTEST_F(CsTest, cellular_call_DialCall_0020, Function | MediumTest | Level2) 546 { 547 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 548 return; 549 } 550 if (HasSimCard(SIM1_SLOTID)) { 551 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*4444#"); 552 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 553 } 554 if (HasSimCard(SIM2_SLOTID)) { 555 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*4444#"); 556 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 557 } 558 } 559 560 /** 561 * @tc.number cellular_call_DialCall_0021 562 * @tc.name Test for dial function with invalid slot by cs 563 * @tc.desc Function test 564 */ 565 HWTEST_F(CsTest, cellular_call_DialCall_0021, Function | MediumTest | Level2) 566 { 567 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 568 return; 569 } 570 if (HasSimCard(SIM1_SLOTID)) { 571 int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER); 572 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 573 } 574 if (HasSimCard(SIM2_SLOTID)) { 575 int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER); 576 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 577 } 578 } 579 580 /** 581 * @tc.number cellular_call_HangUpCall_0001 582 * @tc.name Test for HangUp function by cs 583 * @tc.desc Function test 584 */ 585 HWTEST_F(CsTest, cellular_call_HangUpCall_0001, Function | MediumTest | Level2) 586 { 587 AccessToken token; 588 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 589 ASSERT_TRUE(systemAbilityMgr != nullptr); 590 auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 591 ASSERT_TRUE(hangUpCallRemote != nullptr); 592 auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote); 593 ASSERT_TRUE(telephonyService != nullptr); 594 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 595 return; 596 } 597 CellularCallInfo hangUpCallInfo; 598 if (HasSimCard(SIM1_SLOTID)) { 599 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, hangUpCallInfo); 600 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 601 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT); 602 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 603 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE); 604 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 605 } 606 if (HasSimCard(SIM2_SLOTID)) { 607 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, hangUpCallInfo); 608 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 609 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT); 610 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 611 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE); 612 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 613 } 614 } 615 616 /** 617 * @tc.number cellular_call_HangUpCall_0002 618 * @tc.name Test for HangUp function with invalid slot by cs 619 * @tc.desc Function test 620 */ 621 HWTEST_F(CsTest, cellular_call_HangUpCall_0002, Function | MediumTest | Level2) 622 { 623 AccessToken token; 624 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 625 return; 626 } 627 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 628 ASSERT_TRUE(systemAbilityMgr != nullptr); 629 auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 630 ASSERT_TRUE(hangUpCallRemote != nullptr); 631 auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote); 632 ASSERT_TRUE(telephonyService != nullptr); 633 if (HasSimCard(SIM1_SLOTID)) { 634 CellularCallInfo hangUpCallInfo; 635 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo); 636 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 637 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT); 638 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 639 } 640 if (HasSimCard(SIM2_SLOTID)) { 641 CellularCallInfo hangUpCallInfo; 642 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo); 643 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 644 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT); 645 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 646 } 647 } 648 649 /** 650 * @tc.number cellular_call_AnswerCall_0001 651 * @tc.name Test for answer function by cs 652 * @tc.desc Function test 653 */ 654 HWTEST_F(CsTest, cellular_call_AnswerCall_0001, Function | MediumTest | Level2) 655 { 656 AccessToken token; 657 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 658 ASSERT_TRUE(systemAbilityMgr != nullptr); 659 auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 660 ASSERT_TRUE(answerCallRemote != nullptr); 661 auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote); 662 ASSERT_TRUE(telephonyService != nullptr); 663 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 664 return; 665 } 666 if (HasSimCard(SIM1_SLOTID)) { 667 CellularCallInfo answerCallInfo; 668 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, answerCallInfo); 669 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 670 ret = telephonyService->Answer(answerCallInfo); 671 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 672 } 673 if (HasSimCard(SIM2_SLOTID)) { 674 CellularCallInfo answerCallInfo; 675 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, answerCallInfo); 676 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 677 ret = telephonyService->Answer(answerCallInfo); 678 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 679 } 680 } 681 682 /** 683 * @tc.number cellular_call_AnswerCall_0002 684 * @tc.name Test for answer function with invalid slot by cs 685 * @tc.desc Function test 686 */ 687 HWTEST_F(CsTest, cellular_call_AnswerCall_0002, Function | MediumTest | Level2) 688 { 689 AccessToken token; 690 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 691 return; 692 } 693 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 694 ASSERT_TRUE(systemAbilityMgr != nullptr); 695 auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 696 ASSERT_TRUE(answerCallRemote != nullptr); 697 auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote); 698 ASSERT_TRUE(telephonyService != nullptr); 699 if (HasSimCard(SIM1_SLOTID)) { 700 CellularCallInfo answerCallInfo; 701 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo); 702 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 703 ret = telephonyService->Answer(answerCallInfo); 704 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 705 } 706 if (HasSimCard(SIM2_SLOTID)) { 707 CellularCallInfo answerCallInfo; 708 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo); 709 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 710 ret = telephonyService->Answer(answerCallInfo); 711 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 712 } 713 } 714 715 /** 716 * @tc.number cellular_call_RejectCall_0001 717 * @tc.name Test for reject function by cs 718 * @tc.desc Function test 719 */ 720 HWTEST_F(CsTest, cellular_call_RejectCall_0001, Function | MediumTest | Level2) 721 { 722 AccessToken token; 723 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 724 ASSERT_TRUE(systemAbilityMgr != nullptr); 725 auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 726 ASSERT_TRUE(rejectCallRemote != nullptr); 727 auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote); 728 ASSERT_TRUE(telephonyService != nullptr); 729 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 730 return; 731 } 732 if (HasSimCard(SIM1_SLOTID)) { 733 CellularCallInfo rejectCallInfo; 734 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, rejectCallInfo); 735 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 736 ret = telephonyService->Reject(rejectCallInfo); 737 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 738 } 739 if (HasSimCard(SIM2_SLOTID)) { 740 CellularCallInfo rejectCallInfo; 741 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, rejectCallInfo); 742 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 743 ret = telephonyService->Reject(rejectCallInfo); 744 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST); 745 } 746 } 747 748 /** 749 * @tc.number cellular_call_RejectCall_0002 750 * @tc.name Test for reject function with invalid slot by cs 751 * @tc.desc Function test 752 */ 753 HWTEST_F(CsTest, cellular_call_RejectCall_0002, Function | MediumTest | Level2) 754 { 755 AccessToken token; 756 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 757 return; 758 } 759 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 760 ASSERT_TRUE(systemAbilityMgr != nullptr); 761 auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 762 ASSERT_TRUE(rejectCallRemote != nullptr); 763 auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote); 764 ASSERT_TRUE(telephonyService != nullptr); 765 if (HasSimCard(SIM1_SLOTID)) { 766 CellularCallInfo rejectCallInfo; 767 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo); 768 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 769 ret = telephonyService->Reject(rejectCallInfo); 770 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 771 } 772 if (HasSimCard(SIM2_SLOTID)) { 773 CellularCallInfo rejectCallInfo; 774 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo); 775 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 776 ret = telephonyService->Reject(rejectCallInfo); 777 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 778 } 779 } 780 781 /** 782 * @tc.number cellular_call_HoldCall_0001 783 * @tc.name Test for hold call function by cs 784 * @tc.desc Function test 785 */ 786 HWTEST_F(CsTest, cellular_call_HoldCall_0001, Function | MediumTest | Level2) 787 { 788 AccessToken token; 789 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 790 ASSERT_TRUE(systemAbilityMgr != nullptr); 791 auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 792 ASSERT_TRUE(holdCallRemote != nullptr); 793 auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote); 794 ASSERT_TRUE(telephonyService != nullptr); 795 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 796 return; 797 } 798 if (HasSimCard(SIM1_SLOTID)) { 799 CellularCallInfo holdCallInfo; 800 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, holdCallInfo); 801 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 802 ret = telephonyService->HoldCall(holdCallInfo); 803 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 804 } 805 if (HasSimCard(SIM2_SLOTID)) { 806 CellularCallInfo holdCallInfo; 807 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, holdCallInfo); 808 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 809 ret = telephonyService->HoldCall(holdCallInfo); 810 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 811 } 812 } 813 814 /** 815 * @tc.number cellular_call_HoldCall_0002 816 * @tc.name Test for hold function with invalid slot by cs 817 * @tc.desc Function test 818 */ 819 HWTEST_F(CsTest, cellular_call_HoldCall_0002, Function | MediumTest | Level2) 820 { 821 AccessToken token; 822 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 823 return; 824 } 825 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 826 ASSERT_TRUE(systemAbilityMgr != nullptr); 827 auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 828 ASSERT_TRUE(holdCallRemote != nullptr); 829 auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote); 830 ASSERT_TRUE(telephonyService != nullptr); 831 if (HasSimCard(SIM1_SLOTID)) { 832 CellularCallInfo holdCallInfo; 833 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo); 834 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 835 ret = telephonyService->HoldCall(holdCallInfo); 836 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 837 } 838 if (HasSimCard(SIM2_SLOTID)) { 839 CellularCallInfo holdCallInfo; 840 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo); 841 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 842 ret = telephonyService->HoldCall(holdCallInfo); 843 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 844 } 845 } 846 847 /** 848 * @tc.number cellular_call_UnHoldCall_0001 849 * @tc.name Test for unhold call function by cs 850 * @tc.desc Function test 851 */ 852 HWTEST_F(CsTest, cellular_call_UnHoldCall_0001, Function | MediumTest | Level2) 853 { 854 AccessToken token; 855 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 856 ASSERT_TRUE(systemAbilityMgr != nullptr); 857 auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 858 ASSERT_TRUE(unHoldCallRemote != nullptr); 859 auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote); 860 ASSERT_TRUE(telephonyService != nullptr); 861 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 862 return; 863 } 864 if (HasSimCard(SIM1_SLOTID)) { 865 CellularCallInfo unHoldCallInfo; 866 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, unHoldCallInfo); 867 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 868 ret = telephonyService->UnHoldCall(unHoldCallInfo); 869 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 870 } 871 if (HasSimCard(SIM2_SLOTID)) { 872 CellularCallInfo unHoldCallInfo; 873 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, unHoldCallInfo); 874 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 875 ret = telephonyService->UnHoldCall(unHoldCallInfo); 876 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 877 } 878 } 879 880 /** 881 * @tc.number cellular_call_UnHoldCall_0002 882 * @tc.name Test for unhold function with invalid slot by cs 883 * @tc.desc Function test 884 */ 885 HWTEST_F(CsTest, cellular_call_UnHoldCall_0002, Function | MediumTest | Level2) 886 { 887 AccessToken token; 888 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 889 return; 890 } 891 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 892 ASSERT_TRUE(systemAbilityMgr != nullptr); 893 auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 894 ASSERT_TRUE(unHoldCallRemote != nullptr); 895 auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote); 896 ASSERT_TRUE(telephonyService != nullptr); 897 if (HasSimCard(SIM1_SLOTID)) { 898 CellularCallInfo unHoldCallInfo; 899 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo); 900 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 901 ret = telephonyService->UnHoldCall(unHoldCallInfo); 902 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 903 } 904 if (HasSimCard(SIM2_SLOTID)) { 905 CellularCallInfo unHoldCallInfo; 906 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo); 907 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 908 ret = telephonyService->UnHoldCall(unHoldCallInfo); 909 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 910 } 911 } 912 913 /** 914 * @tc.number cellular_call_SwitchCall_0001 915 * @tc.name Test for switch call function by cs 916 * @tc.desc Function test 917 */ 918 HWTEST_F(CsTest, cellular_call_SwitchCall_0001, Function | MediumTest | Level2) 919 { 920 AccessToken token; 921 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 922 ASSERT_TRUE(systemAbilityMgr != nullptr); 923 auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 924 ASSERT_TRUE(switchCallRemote != nullptr); 925 auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote); 926 ASSERT_TRUE(telephonyService != nullptr); 927 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 928 return; 929 } 930 if (HasSimCard(SIM1_SLOTID)) { 931 CellularCallInfo switchCallInfo; 932 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, switchCallInfo); 933 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 934 ret = telephonyService->SwitchCall(switchCallInfo); 935 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 936 } 937 if (HasSimCard(SIM2_SLOTID)) { 938 CellularCallInfo switchCallInfo; 939 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, switchCallInfo); 940 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 941 ret = telephonyService->SwitchCall(switchCallInfo); 942 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 943 } 944 } 945 946 /** 947 * @tc.number cellular_call_SwitchCall_0002 948 * @tc.name Test for switch function with invalid slot by cs 949 * @tc.desc Function test 950 */ 951 HWTEST_F(CsTest, cellular_call_SwitchCall_0002, Function | MediumTest | Level2) 952 { 953 AccessToken token; 954 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { 955 return; 956 } 957 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 958 ASSERT_TRUE(systemAbilityMgr != nullptr); 959 auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID); 960 ASSERT_TRUE(switchCallRemote != nullptr); 961 auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote); 962 ASSERT_TRUE(telephonyService != nullptr); 963 if (HasSimCard(SIM1_SLOTID)) { 964 CellularCallInfo switchCallInfo; 965 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo); 966 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 967 ret = telephonyService->SwitchCall(switchCallInfo); 968 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 969 } 970 if (HasSimCard(SIM2_SLOTID)) { 971 CellularCallInfo switchCallInfo; 972 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo); 973 EXPECT_EQ(ret, TELEPHONY_SUCCESS); 974 ret = telephonyService->SwitchCall(switchCallInfo); 975 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID); 976 } 977 } 978 } // namespace Telephony 979 } // namespace OHOS 980