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 "hril_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 int32_t INVALID_HANG_UP_TYPE = -1;
42 const int32_t SUCCESS_RESULT = 0;
43 const int32_t ERROR_RESULT = 1;
44 const std::string PHONE_NUMBER = "0000000";
45 const std::string PHONE_NUMBER_SECOND = "1111111";
46 const std::string PHONE_NUMBER_THIRD = "2222222";
47 const int32_t CELLULAR_CALL_SUCCESS = 0;
48 const int32_t CELLULAR_CALL_ERROR = -1;
49 const int32_t USSD_MODE_NOTIFY = 0;
50
HasSimCard(int32_t slotId)51 bool CsTest::HasSimCard(int32_t slotId)
52 {
53 bool hasSimCard = false;
54 DelayedRefSingleton<CoreServiceClient>::GetInstance().HasSimCard(slotId, hasSimCard);
55 return hasSimCard;
56 }
57
SetUpTestCase(void)58 void CsTest::SetUpTestCase(void)
59 {
60 // step 3: Set Up Test Case
61 }
62
TearDownTestCase(void)63 void CsTest::TearDownTestCase(void)
64 {
65 // step 3: Tear Down Test Case
66 }
67
SetUp(void)68 void CsTest::SetUp(void)
69 {
70 // step 3: input testcase setup step
71 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::DIAL)] = &CsTest::Dial;
72 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HANG_UP)] = &CsTest::HangUp;
73 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::REJECT)] = &CsTest::Reject;
74 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::ANSWER)] = &CsTest::Answer;
75 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HOLD_CALL)] = &CsTest::HoldCall;
76 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::UN_HOLD_CALL)] = &CsTest::UnHoldCall;
77 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SWITCH_CALL)] = &CsTest::SwitchCall;
78 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::EMERGENCY_CALL)] = &CsTest::IsEmergencyPhoneNumber;
79 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::COMBINE_CONFERENCE)] = &CsTest::CombineConference;
80 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SEPARATE_CONFERENCE)] = &CsTest::SeparateConference;
81 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::INVITE_TO_CONFERENCE)] =
82 &CsTest::InviteToConference;
83 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::KICK_OUT_CONFERENCE)] =
84 &CsTest::KickOutFromConference;
85 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HANG_UP_ALL_CONNECTION)] =
86 &CsTest::HangUpAllConnection;
87 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::REGISTER_CALLBACK)] =
88 &CsTest::RegisterCallBack;
89 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::UNREGISTER_CALLBACK)] =
90 &CsTest::UnRegisterCallBack;
91 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::START_DTMF)] = &CsTest::StartDtmf;
92 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::STOP_DTMF)] = &CsTest::StopDtmf;
93 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SEND_DTMF)] = &CsTest::SendDtmf;
94 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::START_RTT)] = &CsTest::StartRtt;
95 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::STOP_RTT)] = &CsTest::StopRtt;
96 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_TRANSFER)] =
97 &CsTest::SetCallTransferInfo;
98 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_TRANSFER)] =
99 &CsTest::GetCallTransferInfo;
100 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_WAITING)] =
101 &CsTest::SetCallWaiting;
102 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_WAITING)] =
103 &CsTest::GetCallWaiting;
104 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_RESTRICTION)] =
105 &CsTest::SetCallRestriction;
106 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_RESTRICTION)] =
107 &CsTest::GetCallRestriction;
108 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_RESTRICTION_PWD)] =
109 &CsTest::SetCallRestrictionPassword;
110 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_MUTE)] = &CsTest::SetMute;
111 requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_MUTE)] = &CsTest::GetMute;
112 }
113
TearDown(void)114 void CsTest::TearDown(void)
115 {
116 // step 3: input testcase teardown step
117 }
118
Dial(const sptr<CellularCallInterface> & telephonyService) const119 int32_t CsTest::Dial(const sptr<CellularCallInterface> &telephonyService) const
120 {
121 std::cout << "test Dial entry.\n";
122 CellularCallInfo callInfo;
123 if (memset_s(&callInfo, sizeof(callInfo), 0, sizeof(callInfo)) != EOK) {
124 std::cout << "CellularCallService return, memset_s failed. \n";
125 return TELEPHONY_ERR_ARGUMENT_INVALID;
126 }
127 std::cout << "please enter the phone number:";
128 std::cin >> callInfo.phoneNum;
129 callInfo.videoState = 1;
130 int32_t slotId = 0;
131 std::cout << "please enter the slotId:(0 1)";
132 std::cin >> slotId;
133 callInfo.slotId = slotId;
134 return telephonyService->Dial(callInfo);
135 }
136
HangUp(const sptr<CellularCallInterface> & telephonyService) const137 int32_t CsTest::HangUp(const sptr<CellularCallInterface> &telephonyService) const
138 {
139 std::cout << "test HangUp entry.\n";
140 CellularCallInfo callInfo;
141 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
142 return TELEPHONY_ERR_ARGUMENT_INVALID;
143 }
144 std::cout << "please enter the connect index:";
145 std::cin >> callInfo.index;
146 std::cout << "please enter the type:";
147 int32_t type;
148 std::cin >> type;
149 return telephonyService->HangUp(callInfo, static_cast<CallSupplementType>(type));
150 }
151
Answer(const sptr<CellularCallInterface> & telephonyService) const152 int32_t CsTest::Answer(const sptr<CellularCallInterface> &telephonyService) const
153 {
154 std::cout << "test Answer entry.\n";
155 CellularCallInfo callInfo;
156 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
157 return TELEPHONY_ERR_ARGUMENT_INVALID;
158 }
159 return telephonyService->Answer(callInfo);
160 }
161
Reject(const sptr<CellularCallInterface> & telephonyService) const162 int32_t CsTest::Reject(const sptr<CellularCallInterface> &telephonyService) const
163 {
164 std::cout << "test Reject entry.\n";
165 CellularCallInfo callInfo;
166 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
167 return TELEPHONY_ERR_ARGUMENT_INVALID;
168 }
169 std::cout << "please enter the connect index:";
170 std::cin >> callInfo.index;
171 return telephonyService->Reject(callInfo);
172 }
173
HoldCall(const sptr<CellularCallInterface> & telephonyService) const174 int32_t CsTest::HoldCall(const sptr<CellularCallInterface> &telephonyService) const
175 {
176 std::cout << "test HoldCall entry.\n";
177 CellularCallInfo callInfo;
178 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
179 return TELEPHONY_ERR_ARGUMENT_INVALID;
180 }
181 return telephonyService->HoldCall(callInfo);
182 }
183
UnHoldCall(const sptr<CellularCallInterface> & telephonyService) const184 int32_t CsTest::UnHoldCall(const sptr<CellularCallInterface> &telephonyService) const
185 {
186 std::cout << "test UnHoldCall entry.\n";
187 CellularCallInfo callInfo;
188 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
189 return TELEPHONY_ERR_ARGUMENT_INVALID;
190 }
191 return telephonyService->UnHoldCall(callInfo);
192 }
193
SwitchCall(const sptr<CellularCallInterface> & telephonyService) const194 int32_t CsTest::SwitchCall(const sptr<CellularCallInterface> &telephonyService) const
195 {
196 std::cout << "test SwitchCall entry.\n";
197 CellularCallInfo callInfo;
198 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
199 return TELEPHONY_ERR_ARGUMENT_INVALID;
200 }
201 return telephonyService->SwitchCall(callInfo);
202 }
203
IsEmergencyPhoneNumber(const sptr<CellularCallInterface> & telephonyService) const204 int32_t CsTest::IsEmergencyPhoneNumber(const sptr<CellularCallInterface> &telephonyService) const
205 {
206 std::cout << "test IsEmergencyPhoneNumber entry.\n";
207 std::string phoneNum;
208 std::cout << "input phoneNum: ";
209 std::cin >> phoneNum;
210 std::cout << "input slotId: ";
211 int32_t slotId = 0;
212 std::cin >> slotId;
213 bool enabled = false;
214 telephonyService->IsEmergencyPhoneNumber(slotId, phoneNum, enabled);
215 return enabled;
216 }
217
CombineConference(const sptr<CellularCallInterface> & telephonyService) const218 int32_t CsTest::CombineConference(const sptr<CellularCallInterface> &telephonyService) const
219 {
220 std::cout << "test CombineConference entry." << std::endl;
221 CellularCallInfo callInfo;
222 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
223 return TELEPHONY_ERR_ARGUMENT_INVALID;
224 }
225 return telephonyService->CombineConference(callInfo);
226 }
227
SeparateConference(const sptr<CellularCallInterface> & telephonyService) const228 int32_t CsTest::SeparateConference(const sptr<CellularCallInterface> &telephonyService) const
229 {
230 std::cout << "test SeparateConference entry." << std::endl;
231 CellularCallInfo callInfo;
232 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
233 return TELEPHONY_ERR_ARGUMENT_INVALID;
234 }
235 std::cout << "please enter the need split index:";
236 std::cin >> callInfo.index;
237 return telephonyService->SeparateConference(callInfo);
238 }
239
InviteToConference(const sptr<CellularCallInterface> & telephonyService) const240 int32_t CsTest::InviteToConference(const sptr<CellularCallInterface> &telephonyService) const
241 {
242 std::cout << "test InviteToConference entry." << std::endl;
243 std::vector<std::string> numberList;
244 std::cout << "please enter the invite phone number:";
245 std::string phoneNum;
246 std::cin >> phoneNum;
247 numberList.push_back(phoneNum);
248 std::cout << "please enter the slotId:";
249 int32_t slotId = 0;
250 return telephonyService->InviteToConference(slotId, numberList);
251 }
252
KickOutFromConference(const sptr<CellularCallInterface> & telephonyService) const253 int32_t CsTest::KickOutFromConference(const sptr<CellularCallInterface> &telephonyService) const
254 {
255 std::cout << "test KickOutFromConference entry." << std::endl;
256 CellularCallInfo callInfo;
257 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
258 return TELEPHONY_ERR_ARGUMENT_INVALID;
259 }
260 std::cout << "please enter the need kick out index:";
261 std::cin >> callInfo.index;
262 return telephonyService->KickOutFromConference(callInfo);
263 }
264
HangUpAllConnection(const sptr<CellularCallInterface> & telephonyService) const265 int32_t CsTest::HangUpAllConnection(const sptr<CellularCallInterface> &telephonyService) const
266 {
267 std::cout << "test HangUpAllConnection entry." << std::endl;
268 return telephonyService->HangUpAllConnection();
269 }
270
RegisterCallBack(const sptr<CellularCallInterface> & telephonyService) const271 int32_t CsTest::RegisterCallBack(const sptr<CellularCallInterface> &telephonyService) const
272 {
273 std::cout << "test RegisterCallBack entry.\n";
274 return CELLULAR_CALL_SUCCESS;
275 }
276
UnRegisterCallBack(const sptr<CellularCallInterface> & telephonyService) const277 int32_t CsTest::UnRegisterCallBack(const sptr<CellularCallInterface> &telephonyService) const
278 {
279 std::cout << "test UnRegisterCallBack entry.\n";
280 return telephonyService->UnRegisterCallManagerCallBack();
281 }
282
StartDtmf(const sptr<CellularCallInterface> & telephonyService) const283 int32_t CsTest::StartDtmf(const sptr<CellularCallInterface> &telephonyService) const
284 {
285 std::cout << "test StartDtmf entry." << std::endl;
286 CellularCallInfo callInfo;
287 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
288 return TELEPHONY_ERR_ARGUMENT_INVALID;
289 }
290 std::cout << "please enter the index:";
291 std::cin >> callInfo.index;
292 char cDtmfCode;
293 std::cout << "please enter the Dtmf code:";
294 std::cin >> cDtmfCode;
295 return telephonyService->StartDtmf(cDtmfCode, callInfo);
296 }
297
StopDtmf(const sptr<CellularCallInterface> & telephonyService) const298 int32_t CsTest::StopDtmf(const sptr<CellularCallInterface> &telephonyService) const
299 {
300 std::cout << "test StopDtmf entry." << std::endl;
301 CellularCallInfo callInfo;
302 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
303 return TELEPHONY_ERR_ARGUMENT_INVALID;
304 }
305 std::cout << "please enter the index:";
306 std::cin >> callInfo.index;
307 return telephonyService->StopDtmf(callInfo);
308 }
309
SendDtmf(const sptr<CellularCallInterface> & telephonyService) const310 int32_t CsTest::SendDtmf(const sptr<CellularCallInterface> &telephonyService) const
311 {
312 std::cout << "test SendDtmf entry." << std::endl;
313 CellularCallInfo callInfo;
314 if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
315 return TELEPHONY_ERR_ARGUMENT_INVALID;
316 }
317 std::cout << "please enter the index:";
318 std::cin >> callInfo.index;
319 char cDtmfCode;
320 std::cout << "please enter the Dtmf code:";
321 std::cin >> cDtmfCode;
322 return telephonyService->SendDtmf(cDtmfCode, callInfo);
323 }
324
StartRtt(const sptr<CellularCallInterface> & telephonyService) const325 int32_t CsTest::StartRtt(const sptr<CellularCallInterface> &telephonyService) const
326 {
327 std::cout << "test StartRtt entry." << std::endl;
328 std::string msg;
329 std::cout << "please enter the send msg:";
330 std::cin >> msg;
331 int32_t slotId;
332 std::cout << "please enter the slotId:";
333 std::cin >> slotId;
334 return telephonyService->StartRtt(slotId, msg);
335 }
336
StopRtt(const sptr<CellularCallInterface> & telephonyService) const337 int32_t CsTest::StopRtt(const sptr<CellularCallInterface> &telephonyService) const
338 {
339 std::cout << "test StopRtt entry." << std::endl;
340 int32_t slotId;
341 std::cout << "please enter the slotId:";
342 std::cin >> slotId;
343 return telephonyService->StopRtt(slotId);
344 }
345
SetCallTransferInfo(const sptr<CellularCallInterface> & telephonyService) const346 int32_t CsTest::SetCallTransferInfo(const sptr<CellularCallInterface> &telephonyService) const
347 {
348 std::cout << "test SetCallTransferInfoInfo entry.\n";
349 int32_t slotId = 0;
350 std::cout << "please enter the slotId:(0 1)";
351 std::cin >> slotId;
352 CallTransferInfo callTransferInfo;
353 std::cout << "please enter the transfer type(0 - 5):";
354 int32_t type = 0;
355 std::cin >> type;
356 callTransferInfo.type = static_cast<CallTransferType>(type);
357 std::cout << "please enter the transfer setting type(0 - 4):";
358 int32_t settingType = 0;
359 std::cin >> settingType;
360 callTransferInfo.settingType = static_cast<CallTransferSettingType>(settingType);
361 std::cout << "please enter the phone number:";
362 std::cin >> callTransferInfo.transferNum;
363 return telephonyService->SetCallTransferInfo(slotId, callTransferInfo);
364 }
365
GetCallTransferInfo(const sptr<CellularCallInterface> & telephonyService) const366 int32_t CsTest::GetCallTransferInfo(const sptr<CellularCallInterface> &telephonyService) const
367 {
368 std::cout << "test GetCallTransferInfo entry.\n";
369 int32_t slotId = 0;
370 std::cout << "please enter the slotId:(0 1)";
371 std::cin >> slotId;
372 std::cout << "please enter the transfer type(0 - 5):";
373 int32_t type = 0;
374 std::cin >> type;
375 return telephonyService->GetCallTransferInfo(slotId, static_cast<CallTransferType>(type));
376 }
377
SetCallWaiting(const sptr<CellularCallInterface> & telephonyService) const378 int32_t CsTest::SetCallWaiting(const sptr<CellularCallInterface> &telephonyService) const
379 {
380 std::cout << "test SetCallWaiting entry.\n";
381 bool activate = true;
382 int32_t slotId = 0;
383 std::cout << "please enter the slotId:(0 1)";
384 std::cin >> slotId;
385 return telephonyService->SetCallWaiting(slotId, activate);
386 }
387
GetCallWaiting(const sptr<CellularCallInterface> & telephonyService) const388 int32_t CsTest::GetCallWaiting(const sptr<CellularCallInterface> &telephonyService) const
389 {
390 std::cout << "test GetCallWaiting entry.\n";
391 int32_t slotId = 0;
392 std::cout << "please enter the slotId:(0 1)";
393 std::cin >> slotId;
394 return telephonyService->GetCallWaiting(slotId);
395 }
396
SetCallRestriction(const sptr<CellularCallInterface> & telephonyService) const397 int32_t CsTest::SetCallRestriction(const sptr<CellularCallInterface> &telephonyService) const
398 {
399 std::cout << "test SetCallRestriction entry.\n";
400 int32_t slotId = 0;
401 std::cout << "please enter the slotId:(0 1)";
402 std::cin >> slotId;
403 CallRestrictionInfo info;
404 std::cout << "please enter the fac(0 - 4):";
405 int32_t fac = 0;
406 std::cin >> fac;
407 info.fac = static_cast<CallRestrictionType>(fac);
408 std::cout << "please enter the phone password:";
409 std::cin >> info.password;
410 std::cout << "please enter the mode:";
411 int32_t mode = 0;
412 std::cin >> mode;
413 info.mode = static_cast<CallRestrictionMode>(mode);
414 return telephonyService->SetCallRestriction(slotId, info);
415 }
416
GetCallRestriction(const sptr<CellularCallInterface> & telephonyService) const417 int32_t CsTest::GetCallRestriction(const sptr<CellularCallInterface> &telephonyService) const
418 {
419 std::cout << "test GetCallRestriction entry.\n";
420 int32_t slotId = 0;
421 std::cout << "please enter the slotId:(0 1)";
422 std::cin >> slotId;
423 std::cout << "please enter the fac(0 - 4):";
424 int32_t facType = 0;
425 std::cin >> facType;
426 return telephonyService->GetCallRestriction(slotId, static_cast<CallRestrictionType>(facType));
427 }
428
SetCallRestrictionPassword(const sptr<CellularCallInterface> & telephonyService) const429 int32_t CsTest::SetCallRestrictionPassword(const sptr<CellularCallInterface> &telephonyService) const
430 {
431 std::cout << "test SetCallRestrictionPassword entry.\n";
432 int32_t slotId = 0;
433 std::cout << "please enter the slotId:(0 1)";
434 std::cin >> slotId;
435 std::cout << "please enter the fac(0 - 4):";
436 int32_t fac = 0;
437 std::cin >> fac;
438 CallRestrictionType facType = static_cast<CallRestrictionType>(fac);
439 std::cout << "please enter the old password:";
440 char oldPassword[kMaxNumberLen + 1] = { 0 };
441 std::cin >> oldPassword;
442 std::cout << "please enter the new password:";
443 char newPassword[kMaxNumberLen + 1] = { 0 };
444 std::cin >> newPassword;
445 int32_t ret = telephonyService->SetCallRestrictionPassword(slotId, facType, oldPassword, newPassword);
446 (void)memset_s(oldPassword, sizeof(oldPassword), 0, sizeof(oldPassword));
447 (void)memset_s(newPassword, sizeof(newPassword), 0, sizeof(newPassword));
448 return ret;
449 }
450
SetMute(const sptr<CellularCallInterface> & telephonyService) const451 int32_t CsTest::SetMute(const sptr<CellularCallInterface> &telephonyService) const
452 {
453 std::cout << "test SetMute entry.\n";
454 int32_t slotId = 0;
455 std::cout << "please enter the slotId:(0 1)";
456 std::cin >> slotId;
457 std::cout << "please enter the mute(0 - 1):";
458 int32_t mute = -1;
459 std::cin >> mute;
460 return telephonyService->SetMute(slotId, mute);
461 }
462
GetMute(const sptr<CellularCallInterface> & telephonyService) const463 int32_t CsTest::GetMute(const sptr<CellularCallInterface> &telephonyService) const
464 {
465 std::cout << "test GetMute entry.\n";
466 int32_t slotId = 0;
467 std::cout << "please enter the slotId:(0 1)";
468 std::cin >> slotId;
469 return telephonyService->GetMute(slotId);
470 }
471
JudgeIsEmergencyPhoneNumber()472 void CsTest::JudgeIsEmergencyPhoneNumber()
473 {
474 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
475 ASSERT_TRUE(systemAbilityMgr != nullptr);
476 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
477 ASSERT_TRUE(remote != nullptr);
478 auto telephonyService = iface_cast<CellularCallInterface>(remote);
479 ASSERT_TRUE(telephonyService != nullptr);
480
481 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
482 return;
483 }
484 bool enabled = false;
485 int32_t successCode = 1;
486 if (HasSimCard(SIM1_SLOTID)) {
487 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "499", enabled);
488 EXPECT_NE(enabled, successCode);
489 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "443", enabled);
490 EXPECT_NE(enabled, successCode);
491 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "356", enabled);
492 EXPECT_NE(enabled, successCode);
493 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "975", enabled);
494 EXPECT_NE(enabled, successCode);
495 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "783", enabled);
496 EXPECT_NE(enabled, successCode);
497 telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "350", enabled);
498 EXPECT_NE(enabled, successCode);
499 }
500 if (HasSimCard(SIM2_SLOTID)) {
501 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "499", enabled);
502 EXPECT_NE(enabled, successCode);
503 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "443", enabled);
504 EXPECT_NE(enabled, successCode);
505 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "356", enabled);
506 EXPECT_NE(enabled, successCode);
507 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "975", enabled);
508 EXPECT_NE(enabled, successCode);
509 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "783", enabled);
510 EXPECT_NE(enabled, successCode);
511 telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "350", enabled);
512 EXPECT_NE(enabled, successCode);
513 }
514 }
515
InputNumForInterface(const sptr<CellularCallInterface> & telephonyService) const516 int32_t CsTest::InputNumForInterface(const sptr<CellularCallInterface> &telephonyService) const
517 {
518 int32_t ret = -1;
519 bool loopFlag = true;
520 int32_t InputNumber = 0;
521 int32_t returnNum = 1000; // end loop variable value
522 while (loopFlag) {
523 std::cout << "\n**********Unit Test Start**********\n"
524 "Usage: please input a cmd num:\n"
525 "1:Dial\n2:HangUp\n3:Reject\n4:Answer\n5:HoldCall\n6:UnHoldCall\n7:SwitchCall\n"
526 "8:IsEmergencyPhoneNumber\n10:CombineConference\n11:SeparateConference\n12:InviteToConference\n"
527 "13:KickOutFromConference\n14:HangUpAllConnection\n"
528 "17:RegisterCallBack\n18:UnRegisterCallBack\n100:StartDtmf\n101:StopDtmf\n102:SendDtmf\n"
529 "104:StartRtt\n105:StopRtt\n200:SetCallTransferInfo\n201:GetCallTransferInfo\n"
530 "203:SetCallWaiting\n204:GetCallWaiting\n205:SetCallRestriction\n"
531 "206:GetCallRestriction\n208:SetCallRestrictionPassword\n309:SetMute\n310:GetMute\n"
532 "1000:Exit\n"
533 "***********************************\n"
534 "Your choice: ";
535 std::cin >> InputNumber;
536 if (InputNumber == returnNum) {
537 std::cout << "exiting...\n";
538 break;
539 }
540 auto itFunc = requestFuncMap_.find(InputNumber);
541 if (itFunc != requestFuncMap_.end()) {
542 auto requestFunc = itFunc->second;
543 if (requestFunc != nullptr) {
544 ret = (this->*requestFunc)(telephonyService);
545 }
546 }
547 if (ret != CELLULAR_CALL_SUCCESS) {
548 std::cout << "this execution did not return a successful value, please check.\n";
549 return ret;
550 }
551 }
552 return CELLULAR_CALL_SUCCESS;
553 }
554
InitCallInfo(CellularCallInfo & callInfo) const555 int32_t CsTest::InitCallInfo(CellularCallInfo &callInfo) const
556 {
557 if (memset_s(&callInfo, sizeof(callInfo), 0, sizeof(callInfo)) != EOK) {
558 std::cout << "CellularCallService return, memset_s failed. \n";
559 return CELLULAR_CALL_ERROR;
560 }
561
562 std::cout << "please enter the phone number:";
563 std::cin >> callInfo.phoneNum;
564 callInfo.videoState = 1;
565 std::cout << "please enter the call type(0:CS 1:IMS):";
566 int32_t callType = 0;
567 std::cin >> callType;
568 callInfo.callType = static_cast<CallType>(callType);
569 int32_t slotId = 0;
570 std::cout << "please enter the slotId:(0 1)";
571 std::cin >> slotId;
572 callInfo.slotId = slotId;
573 return CELLULAR_CALL_SUCCESS;
574 }
575
576 /**
577 * @tc.number cellular_call_cs_test_001
578 * @tc.name Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc
579 * @tc.desc Function test
580 */
581 HWTEST_F(CsTest, cellular_call_cs_test_001, Function | MediumTest | Level0)
582 {
583 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
584 ASSERT_TRUE(systemAbilityMgr != nullptr);
585 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
586 ASSERT_TRUE(remote != nullptr);
587 auto telephonyService = iface_cast<CellularCallInterface>(remote);
588 ASSERT_TRUE(telephonyService != nullptr);
589 std::cout << "HWTEST_F cellular_call_cs_test_001";
590 }
591
592 /**
593 * @tc.number cellular_call_cs_test_002
594 * @tc.name Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc
595 * @tc.desc Function test
596 */
597 HWTEST_F(CsTest, cellular_call_cs_test_002, Function | MediumTest | Level1)
598 {
599 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
600 ASSERT_TRUE(systemAbilityMgr != nullptr);
601 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
602 ASSERT_TRUE(remote != nullptr);
603 auto telephonyService = iface_cast<CellularCallInterface>(remote);
604 ASSERT_TRUE(telephonyService != nullptr);
605 std::cout << "HWTEST_F cellular_call_cs_test_002";
606 }
607
608 /**
609 * @tc.number Telephony_CallManager_SetEmergencyCallList_0101
610 * @tc.name SetEmergencyCallList "443,356,789",test SetEmergencyCallList(),return success
611 * @tc.desc Function test
612 */
613 HWTEST_F(CsTest, cellular_call_SetEmergencyCallList_0101, Function | MediumTest | Level3)
614 {
615 AccessToken token;
616 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
617 ASSERT_TRUE(systemAbilityMgr != nullptr);
618 auto emergencyRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
619 ASSERT_TRUE(emergencyRemote != nullptr);
620 auto telephonyService = iface_cast<CellularCallInterface>(emergencyRemote);
621 ASSERT_TRUE(telephonyService != nullptr);
622
623 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
624 return;
625 }
626
627 std::vector<EmergencyCall> eccVec;
628 EmergencyCall temp0 = { "499", "460", EccType::TYPE_CATEGORY, SimpresentType::TYPE_NO_CARD,
629 AbnormalServiceType::TYPE_ALL };
630 EmergencyCall temp1 = { "443", "460", EccType::TYPE_POLICE, SimpresentType::TYPE_NO_CARD,
631 AbnormalServiceType::TYPE_ALL };
632 EmergencyCall temp2 = { "356", "460", EccType::TYPE_AMBULANCE, SimpresentType::TYPE_NO_CARD,
633 AbnormalServiceType::TYPE_ALL };
634 EmergencyCall temp3 = { "783", "460", EccType::TYPE_FIRE, SimpresentType::TYPE_NO_CARD,
635 AbnormalServiceType::TYPE_ALL };
636 EmergencyCall temp4 = { "975", "460", EccType::TYPE_SEA, SimpresentType::TYPE_HAS_CARD,
637 AbnormalServiceType::TYPE_ONLY_CS };
638 EmergencyCall temp5 = { "350", "460", EccType::TYPE_MOUNTAIN, SimpresentType::TYPE_HAS_CARD,
639 AbnormalServiceType::TYPE_ALL };
640 eccVec.push_back(temp0);
641 eccVec.push_back(temp1);
642 eccVec.push_back(temp2);
643 eccVec.push_back(temp3);
644 eccVec.push_back(temp4);
645 eccVec.push_back(temp5);
646 if (HasSimCard(SIM1_SLOTID)) {
647 EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM1_SLOTID, eccVec), 0);
648 }
649 if (HasSimCard(SIM2_SLOTID)) {
650 EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM2_SLOTID, eccVec), 0);
651 }
652 JudgeIsEmergencyPhoneNumber();
653 }
654
655 HWTEST_F(CsTest, cellular_call_IsOperatorConfigEmergencyCallList_0001, Function | MediumTest | Level3)
656 {
657 AccessToken token;
658 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
659 ASSERT_TRUE(systemAbilityMgr != nullptr);
660 auto operatorRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
661 ASSERT_TRUE(operatorRemote != nullptr);
662 auto telephonyService = iface_cast<CellularCallInterface>(operatorRemote);
663 ASSERT_TRUE(telephonyService != nullptr);
664
665 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
666 return;
667 }
668 OperatorConfig opc;
669 if (HasSimCard(SIM1_SLOTID)) {
670 DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM1_SLOTID, opc);
671 if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) {
672 for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) {
673 bool enabled = false;
674 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, number, enabled);
675 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode);
676 }
677 }
678 }
679 if (HasSimCard(SIM2_SLOTID)) {
680 DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM2_SLOTID, opc);
681 if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) {
682 for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) {
683 bool enabled = false;
684 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, number, enabled);
685 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode);
686 }
687 }
688 }
689 }
690
691 /**
692 * @tc.number cellular_call_DialCall_0001
693 * @tc.name Test for SetClip function by cs
694 * @tc.desc Function test
695 */
696 HWTEST_F(CsTest, cellular_call_DialCall_0001, Function | MediumTest | Level2)
697 {
698 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
699 return;
700 }
701 if (HasSimCard(SIM1_SLOTID)) {
702 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*30#");
703 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
704 }
705 if (HasSimCard(SIM2_SLOTID)) {
706 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*30#");
707 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
708 }
709 }
710
711 /**
712 * @tc.number cellular_call_DialCall_0002
713 * @tc.name Test for SetClip function by cs
714 * @tc.desc Function test
715 */
716 HWTEST_F(CsTest, cellular_call_DialCall_0002, Function | MediumTest | Level2)
717 {
718 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
719 return;
720 }
721 if (HasSimCard(SIM1_SLOTID)) {
722 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#30#");
723 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
724 }
725 if (HasSimCard(SIM2_SLOTID)) {
726 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#30#");
727 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
728 }
729 }
730
731 /**
732 * @tc.number cellular_call_DialCall_0003
733 * @tc.name Test for getClip function by cs
734 * @tc.desc Function test
735 */
736 HWTEST_F(CsTest, cellular_call_DialCall_0003, Function | MediumTest | Level2)
737 {
738 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
739 return;
740 }
741 if (HasSimCard(SIM1_SLOTID)) {
742 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#30#");
743 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
744 }
745 if (HasSimCard(SIM2_SLOTID)) {
746 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#30#");
747 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
748 }
749 }
750
751 /**
752 * @tc.number cellular_call_DialCall_0004
753 * @tc.name Test for SetClir function by cs
754 * @tc.desc Function test
755 */
756 HWTEST_F(CsTest, cellular_call_DialCall_0004, Function | MediumTest | Level2)
757 {
758 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
759 return;
760 }
761 if (HasSimCard(SIM1_SLOTID)) {
762 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*31#");
763 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
764 }
765 if (HasSimCard(SIM2_SLOTID)) {
766 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*31#");
767 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
768 }
769 }
770
771 /**
772 * @tc.number cellular_call_DialCall_0005
773 * @tc.name Test for SetClir function by cs
774 * @tc.desc Function test
775 */
776 HWTEST_F(CsTest, cellular_call_DialCall_0005, Function | MediumTest | Level2)
777 {
778 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
779 return;
780 }
781 if (HasSimCard(SIM1_SLOTID)) {
782 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#31#");
783 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
784 }
785 if (HasSimCard(SIM2_SLOTID)) {
786 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#31#");
787 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
788 }
789 }
790
791 /**
792 * @tc.number cellular_call_DialCall_0006
793 * @tc.name Test for GetClir function by cs
794 * @tc.desc Function test
795 */
796 HWTEST_F(CsTest, cellular_call_DialCall_0006, Function | MediumTest | Level2)
797 {
798 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
799 return;
800 }
801 if (HasSimCard(SIM1_SLOTID)) {
802 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#31#");
803 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
804 }
805 if (HasSimCard(SIM2_SLOTID)) {
806 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#31#");
807 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
808 }
809 }
810
811 /**
812 * @tc.number cellular_call_DialCall_0007
813 * @tc.name Test for SetCallTransfer function by cs
814 * @tc.desc Function test
815 */
816 HWTEST_F(CsTest, cellular_call_DialCall_0007, Function | MediumTest | Level2)
817 {
818 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
819 return;
820 }
821 if (HasSimCard(SIM1_SLOTID)) {
822 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*21#");
823 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
824 }
825 if (HasSimCard(SIM2_SLOTID)) {
826 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*21#");
827 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
828 }
829 }
830
831 /**
832 * @tc.number cellular_call_DialCall_0008
833 * @tc.name Test for SetCallTransfer function by cs
834 * @tc.desc Function test
835 */
836 HWTEST_F(CsTest, cellular_call_DialCall_0008, Function | MediumTest | Level2)
837 {
838 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
839 return;
840 }
841 if (HasSimCard(SIM1_SLOTID)) {
842 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#21#");
843 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
844 }
845 if (HasSimCard(SIM2_SLOTID)) {
846 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#21#");
847 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
848 }
849 }
850
851 /**
852 * @tc.number cellular_call_DialCall_0009
853 * @tc.name Test for GetCallTransfer function by cs
854 * @tc.desc Function test
855 */
856 HWTEST_F(CsTest, cellular_call_DialCall_0009, Function | MediumTest | Level2)
857 {
858 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
859 return;
860 }
861 if (HasSimCard(SIM1_SLOTID)) {
862 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#21#");
863 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
864 }
865 if (HasSimCard(SIM2_SLOTID)) {
866 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#21#");
867 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
868 }
869 }
870
871 /**
872 * @tc.number cellular_call_DialCall_0010
873 * @tc.name Test for SetCallRestriction function by cs
874 * @tc.desc Function test
875 */
876 HWTEST_F(CsTest, cellular_call_DialCall_0010, Function | MediumTest | Level2)
877 {
878 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
879 return;
880 }
881 if (HasSimCard(SIM1_SLOTID)) {
882 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*33#");
883 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
884 }
885 if (HasSimCard(SIM2_SLOTID)) {
886 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*33#");
887 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
888 }
889 }
890
891 /**
892 * @tc.number cellular_call_DialCall_0011
893 * @tc.name Test for SetCallRestriction function by cs
894 * @tc.desc Function test
895 */
896 HWTEST_F(CsTest, cellular_call_DialCall_0011, Function | MediumTest | Level2)
897 {
898 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
899 return;
900 }
901 if (HasSimCard(SIM1_SLOTID)) {
902 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#33#");
903 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
904 }
905 if (HasSimCard(SIM2_SLOTID)) {
906 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#33#");
907 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
908 }
909 }
910
911 /**
912 * @tc.number cellular_call_DialCall_0012
913 * @tc.name Test for GetCallRestriction function by cs
914 * @tc.desc Function test
915 */
916 HWTEST_F(CsTest, cellular_call_DialCall_0012, Function | MediumTest | Level2)
917 {
918 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
919 return;
920 }
921 if (HasSimCard(SIM1_SLOTID)) {
922 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#33#");
923 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
924 }
925 if (HasSimCard(SIM2_SLOTID)) {
926 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#33#");
927 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
928 }
929 }
930
931 /**
932 * @tc.number cellular_call_DialCall_0013
933 * @tc.name Test for SetCallWaiting function by cs
934 * @tc.desc Function test
935 */
936 HWTEST_F(CsTest, cellular_call_DialCall_0013, Function | MediumTest | Level2)
937 {
938 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
939 return;
940 }
941 if (HasSimCard(SIM1_SLOTID)) {
942 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*43#");
943 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
944 }
945 if (HasSimCard(SIM2_SLOTID)) {
946 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*43#");
947 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
948 }
949 }
950
951 /**
952 * @tc.number cellular_call_DialCall_0014
953 * @tc.name Test for SetCallWaiting function by cs
954 * @tc.desc Function test
955 */
956 HWTEST_F(CsTest, cellular_call_DialCall_0014, Function | MediumTest | Level2)
957 {
958 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
959 return;
960 }
961 if (HasSimCard(SIM1_SLOTID)) {
962 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#43#");
963 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
964 }
965 if (HasSimCard(SIM2_SLOTID)) {
966 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#43#");
967 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
968 }
969 }
970
971 /**
972 * @tc.number cellular_call_DialCall_0015
973 * @tc.name Test for GetCallWaiting function by cs
974 * @tc.desc Function test
975 */
976 HWTEST_F(CsTest, cellular_call_DialCall_0015, Function | MediumTest | Level2)
977 {
978 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
979 return;
980 }
981 if (HasSimCard(SIM1_SLOTID)) {
982 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#43#");
983 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
984 }
985 if (HasSimCard(SIM2_SLOTID)) {
986 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#43#");
987 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
988 }
989 }
990
991 /**
992 * @tc.number cellular_call_DialCall_0016
993 * @tc.name Test for AlterPinPassword function by cs
994 * @tc.desc Function test
995 */
996 HWTEST_F(CsTest, cellular_call_DialCall_0016, Function | MediumTest | Level2)
997 {
998 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
999 return;
1000 }
1001 if (HasSimCard(SIM1_SLOTID)) {
1002 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*04#");
1003 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1004 }
1005 if (HasSimCard(SIM2_SLOTID)) {
1006 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*04#");
1007 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1008 }
1009 }
1010
1011 /**
1012 * @tc.number cellular_call_DialCall_0017
1013 * @tc.name Test for UnlockPuk function by cs
1014 * @tc.desc Function test
1015 */
1016 HWTEST_F(CsTest, cellular_call_DialCall_0017, Function | MediumTest | Level2)
1017 {
1018 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1019 return;
1020 }
1021 if (HasSimCard(SIM1_SLOTID)) {
1022 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*05#");
1023 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1024 }
1025 if (HasSimCard(SIM2_SLOTID)) {
1026 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*05#");
1027 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1028 }
1029 }
1030
1031 /**
1032 * @tc.number cellular_call_DialCall_0018
1033 * @tc.name Test for AlterPin2Password function by cs
1034 * @tc.desc Function test
1035 */
1036 HWTEST_F(CsTest, cellular_call_DialCall_0018, Function | MediumTest | Level2)
1037 {
1038 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1039 return;
1040 }
1041 if (HasSimCard(SIM1_SLOTID)) {
1042 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*042#");
1043 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1044 }
1045 if (HasSimCard(SIM2_SLOTID)) {
1046 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*042#");
1047 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1048 }
1049 }
1050
1051 /**
1052 * @tc.number cellular_call_DialCall_0019
1053 * @tc.name Test for UnlockPuk2 function by cs
1054 * @tc.desc Function test
1055 */
1056 HWTEST_F(CsTest, cellular_call_DialCall_0019, Function | MediumTest | Level2)
1057 {
1058 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1059 return;
1060 }
1061 if (HasSimCard(SIM1_SLOTID)) {
1062 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*052#");
1063 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1064 }
1065 if (HasSimCard(SIM2_SLOTID)) {
1066 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*052#");
1067 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1068 }
1069 }
1070
1071 /**
1072 * @tc.number cellular_call_DialCall_0020
1073 * @tc.name Test for SendUssd function by cs
1074 * @tc.desc Function test
1075 */
1076 HWTEST_F(CsTest, cellular_call_DialCall_0020, Function | MediumTest | Level2)
1077 {
1078 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1079 return;
1080 }
1081 if (HasSimCard(SIM1_SLOTID)) {
1082 int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*4444#");
1083 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1084 }
1085 if (HasSimCard(SIM2_SLOTID)) {
1086 int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*4444#");
1087 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1088 }
1089 }
1090
1091 /**
1092 * @tc.number cellular_call_DialCall_0021
1093 * @tc.name Test for dial function with invalid slot by cs
1094 * @tc.desc Function test
1095 */
1096 HWTEST_F(CsTest, cellular_call_DialCall_0021, Function | MediumTest | Level2)
1097 {
1098 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1099 return;
1100 }
1101 if (HasSimCard(SIM1_SLOTID)) {
1102 int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER);
1103 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1104 }
1105 if (HasSimCard(SIM2_SLOTID)) {
1106 int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER);
1107 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1108 }
1109 }
1110
1111 /**
1112 * @tc.number cellular_call_HangUpCall_0001
1113 * @tc.name Test for HangUp function by cs
1114 * @tc.desc Function test
1115 */
1116 HWTEST_F(CsTest, cellular_call_HangUpCall_0001, Function | MediumTest | Level2)
1117 {
1118 AccessToken token;
1119 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1120 ASSERT_TRUE(systemAbilityMgr != nullptr);
1121 auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1122 ASSERT_TRUE(hangUpCallRemote != nullptr);
1123 auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote);
1124 ASSERT_TRUE(telephonyService != nullptr);
1125 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1126 return;
1127 }
1128 CellularCallInfo hangUpCallInfo;
1129 if (HasSimCard(SIM1_SLOTID)) {
1130 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1131 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1132 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1133 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1134 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE);
1135 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1136 }
1137 if (HasSimCard(SIM2_SLOTID)) {
1138 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1139 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1140 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1141 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1142 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE);
1143 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1144 }
1145 }
1146
1147 /**
1148 * @tc.number cellular_call_HangUpCall_0002
1149 * @tc.name Test for HangUp function with invalid slot by cs
1150 * @tc.desc Function test
1151 */
1152 HWTEST_F(CsTest, cellular_call_HangUpCall_0002, Function | MediumTest | Level2)
1153 {
1154 AccessToken token;
1155 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1156 return;
1157 }
1158 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1159 ASSERT_TRUE(systemAbilityMgr != nullptr);
1160 auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1161 ASSERT_TRUE(hangUpCallRemote != nullptr);
1162 auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote);
1163 ASSERT_TRUE(telephonyService != nullptr);
1164 if (HasSimCard(SIM1_SLOTID)) {
1165 CellularCallInfo hangUpCallInfo;
1166 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1167 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1168 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1169 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1170 }
1171 if (HasSimCard(SIM2_SLOTID)) {
1172 CellularCallInfo hangUpCallInfo;
1173 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1174 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1175 ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1176 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1177 }
1178 }
1179
1180 /**
1181 * @tc.number cellular_call_AnswerCall_0001
1182 * @tc.name Test for answer function by cs
1183 * @tc.desc Function test
1184 */
1185 HWTEST_F(CsTest, cellular_call_AnswerCall_0001, Function | MediumTest | Level2)
1186 {
1187 AccessToken token;
1188 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1189 ASSERT_TRUE(systemAbilityMgr != nullptr);
1190 auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1191 ASSERT_TRUE(answerCallRemote != nullptr);
1192 auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote);
1193 ASSERT_TRUE(telephonyService != nullptr);
1194 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1195 return;
1196 }
1197 if (HasSimCard(SIM1_SLOTID)) {
1198 CellularCallInfo answerCallInfo;
1199 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, answerCallInfo);
1200 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1201 ret = telephonyService->Answer(answerCallInfo);
1202 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1203 }
1204 if (HasSimCard(SIM2_SLOTID)) {
1205 CellularCallInfo answerCallInfo;
1206 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, answerCallInfo);
1207 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1208 ret = telephonyService->Answer(answerCallInfo);
1209 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1210 }
1211 }
1212
1213 /**
1214 * @tc.number cellular_call_AnswerCall_0002
1215 * @tc.name Test for answer function with invalid slot by cs
1216 * @tc.desc Function test
1217 */
1218 HWTEST_F(CsTest, cellular_call_AnswerCall_0002, Function | MediumTest | Level2)
1219 {
1220 AccessToken token;
1221 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1222 return;
1223 }
1224 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1225 ASSERT_TRUE(systemAbilityMgr != nullptr);
1226 auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1227 ASSERT_TRUE(answerCallRemote != nullptr);
1228 auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote);
1229 ASSERT_TRUE(telephonyService != nullptr);
1230 if (HasSimCard(SIM1_SLOTID)) {
1231 CellularCallInfo answerCallInfo;
1232 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo);
1233 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1234 ret = telephonyService->Answer(answerCallInfo);
1235 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1236 }
1237 if (HasSimCard(SIM2_SLOTID)) {
1238 CellularCallInfo answerCallInfo;
1239 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo);
1240 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1241 ret = telephonyService->Answer(answerCallInfo);
1242 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1243 }
1244 }
1245
1246 /**
1247 * @tc.number cellular_call_RejectCall_0001
1248 * @tc.name Test for reject function by cs
1249 * @tc.desc Function test
1250 */
1251 HWTEST_F(CsTest, cellular_call_RejectCall_0001, Function | MediumTest | Level2)
1252 {
1253 AccessToken token;
1254 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1255 ASSERT_TRUE(systemAbilityMgr != nullptr);
1256 auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1257 ASSERT_TRUE(rejectCallRemote != nullptr);
1258 auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote);
1259 ASSERT_TRUE(telephonyService != nullptr);
1260 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1261 return;
1262 }
1263 if (HasSimCard(SIM1_SLOTID)) {
1264 CellularCallInfo rejectCallInfo;
1265 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, rejectCallInfo);
1266 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1267 ret = telephonyService->Reject(rejectCallInfo);
1268 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1269 }
1270 if (HasSimCard(SIM2_SLOTID)) {
1271 CellularCallInfo rejectCallInfo;
1272 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, rejectCallInfo);
1273 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1274 ret = telephonyService->Reject(rejectCallInfo);
1275 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1276 }
1277 }
1278
1279 /**
1280 * @tc.number cellular_call_RejectCall_0002
1281 * @tc.name Test for reject function with invalid slot by cs
1282 * @tc.desc Function test
1283 */
1284 HWTEST_F(CsTest, cellular_call_RejectCall_0002, Function | MediumTest | Level2)
1285 {
1286 AccessToken token;
1287 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1288 return;
1289 }
1290 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1291 ASSERT_TRUE(systemAbilityMgr != nullptr);
1292 auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1293 ASSERT_TRUE(rejectCallRemote != nullptr);
1294 auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote);
1295 ASSERT_TRUE(telephonyService != nullptr);
1296 if (HasSimCard(SIM1_SLOTID)) {
1297 CellularCallInfo rejectCallInfo;
1298 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo);
1299 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1300 ret = telephonyService->Reject(rejectCallInfo);
1301 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1302 }
1303 if (HasSimCard(SIM2_SLOTID)) {
1304 CellularCallInfo rejectCallInfo;
1305 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo);
1306 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1307 ret = telephonyService->Reject(rejectCallInfo);
1308 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1309 }
1310 }
1311
1312 /**
1313 * @tc.number cellular_call_HoldCall_0001
1314 * @tc.name Test for hold call function by cs
1315 * @tc.desc Function test
1316 */
1317 HWTEST_F(CsTest, cellular_call_HoldCall_0001, Function | MediumTest | Level2)
1318 {
1319 AccessToken token;
1320 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1321 ASSERT_TRUE(systemAbilityMgr != nullptr);
1322 auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1323 ASSERT_TRUE(holdCallRemote != nullptr);
1324 auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote);
1325 ASSERT_TRUE(telephonyService != nullptr);
1326 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1327 return;
1328 }
1329 if (HasSimCard(SIM1_SLOTID)) {
1330 CellularCallInfo holdCallInfo;
1331 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, holdCallInfo);
1332 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1333 ret = telephonyService->HoldCall(holdCallInfo);
1334 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1335 }
1336 if (HasSimCard(SIM2_SLOTID)) {
1337 CellularCallInfo holdCallInfo;
1338 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, holdCallInfo);
1339 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1340 ret = telephonyService->HoldCall(holdCallInfo);
1341 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1342 }
1343 }
1344
1345 /**
1346 * @tc.number cellular_call_HoldCall_0002
1347 * @tc.name Test for hold function with invalid slot by cs
1348 * @tc.desc Function test
1349 */
1350 HWTEST_F(CsTest, cellular_call_HoldCall_0002, Function | MediumTest | Level2)
1351 {
1352 AccessToken token;
1353 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1354 return;
1355 }
1356 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1357 ASSERT_TRUE(systemAbilityMgr != nullptr);
1358 auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1359 ASSERT_TRUE(holdCallRemote != nullptr);
1360 auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote);
1361 ASSERT_TRUE(telephonyService != nullptr);
1362 if (HasSimCard(SIM1_SLOTID)) {
1363 CellularCallInfo holdCallInfo;
1364 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo);
1365 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1366 ret = telephonyService->HoldCall(holdCallInfo);
1367 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1368 }
1369 if (HasSimCard(SIM2_SLOTID)) {
1370 CellularCallInfo holdCallInfo;
1371 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo);
1372 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1373 ret = telephonyService->HoldCall(holdCallInfo);
1374 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1375 }
1376 }
1377
1378 /**
1379 * @tc.number cellular_call_UnHoldCall_0001
1380 * @tc.name Test for unhold call function by cs
1381 * @tc.desc Function test
1382 */
1383 HWTEST_F(CsTest, cellular_call_UnHoldCall_0001, Function | MediumTest | Level2)
1384 {
1385 AccessToken token;
1386 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1387 ASSERT_TRUE(systemAbilityMgr != nullptr);
1388 auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1389 ASSERT_TRUE(unHoldCallRemote != nullptr);
1390 auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote);
1391 ASSERT_TRUE(telephonyService != nullptr);
1392 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1393 return;
1394 }
1395 if (HasSimCard(SIM1_SLOTID)) {
1396 CellularCallInfo unHoldCallInfo;
1397 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1398 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1399 ret = telephonyService->UnHoldCall(unHoldCallInfo);
1400 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1401 }
1402 if (HasSimCard(SIM2_SLOTID)) {
1403 CellularCallInfo unHoldCallInfo;
1404 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1405 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1406 ret = telephonyService->UnHoldCall(unHoldCallInfo);
1407 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1408 }
1409 }
1410
1411 /**
1412 * @tc.number cellular_call_UnHoldCall_0002
1413 * @tc.name Test for unhold function with invalid slot by cs
1414 * @tc.desc Function test
1415 */
1416 HWTEST_F(CsTest, cellular_call_UnHoldCall_0002, Function | MediumTest | Level2)
1417 {
1418 AccessToken token;
1419 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1420 return;
1421 }
1422 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1423 ASSERT_TRUE(systemAbilityMgr != nullptr);
1424 auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1425 ASSERT_TRUE(unHoldCallRemote != nullptr);
1426 auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote);
1427 ASSERT_TRUE(telephonyService != nullptr);
1428 if (HasSimCard(SIM1_SLOTID)) {
1429 CellularCallInfo unHoldCallInfo;
1430 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1431 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1432 ret = telephonyService->UnHoldCall(unHoldCallInfo);
1433 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1434 }
1435 if (HasSimCard(SIM2_SLOTID)) {
1436 CellularCallInfo unHoldCallInfo;
1437 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1438 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1439 ret = telephonyService->UnHoldCall(unHoldCallInfo);
1440 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1441 }
1442 }
1443
1444 /**
1445 * @tc.number cellular_call_SwitchCall_0001
1446 * @tc.name Test for switch call function by cs
1447 * @tc.desc Function test
1448 */
1449 HWTEST_F(CsTest, cellular_call_SwitchCall_0001, Function | MediumTest | Level2)
1450 {
1451 AccessToken token;
1452 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1453 ASSERT_TRUE(systemAbilityMgr != nullptr);
1454 auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1455 ASSERT_TRUE(switchCallRemote != nullptr);
1456 auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote);
1457 ASSERT_TRUE(telephonyService != nullptr);
1458 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1459 return;
1460 }
1461 if (HasSimCard(SIM1_SLOTID)) {
1462 CellularCallInfo switchCallInfo;
1463 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, switchCallInfo);
1464 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1465 ret = telephonyService->SwitchCall(switchCallInfo);
1466 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1467 }
1468 if (HasSimCard(SIM2_SLOTID)) {
1469 CellularCallInfo switchCallInfo;
1470 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, switchCallInfo);
1471 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1472 ret = telephonyService->SwitchCall(switchCallInfo);
1473 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1474 }
1475 }
1476
1477 /**
1478 * @tc.number cellular_call_SwitchCall_0002
1479 * @tc.name Test for switch function with invalid slot by cs
1480 * @tc.desc Function test
1481 */
1482 HWTEST_F(CsTest, cellular_call_SwitchCall_0002, Function | MediumTest | Level2)
1483 {
1484 AccessToken token;
1485 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1486 return;
1487 }
1488 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1489 ASSERT_TRUE(systemAbilityMgr != nullptr);
1490 auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1491 ASSERT_TRUE(switchCallRemote != nullptr);
1492 auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote);
1493 ASSERT_TRUE(telephonyService != nullptr);
1494 if (HasSimCard(SIM1_SLOTID)) {
1495 CellularCallInfo switchCallInfo;
1496 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo);
1497 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1498 ret = telephonyService->SwitchCall(switchCallInfo);
1499 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1500 }
1501 if (HasSimCard(SIM2_SLOTID)) {
1502 CellularCallInfo switchCallInfo;
1503 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo);
1504 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1505 ret = telephonyService->SwitchCall(switchCallInfo);
1506 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1507 }
1508 }
1509
1510 /**
1511 * @tc.number cellular_call_CombineConference_0001
1512 * @tc.name Test for combineConference function by cs
1513 * @tc.desc Function test
1514 */
1515 HWTEST_F(CsTest, cellular_call_CombineConference_0001, Function | MediumTest | Level2)
1516 {
1517 AccessToken token;
1518 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1519 ASSERT_TRUE(systemAbilityMgr != nullptr);
1520 auto combineRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1521 ASSERT_TRUE(combineRemote != nullptr);
1522 auto telephonyService = iface_cast<CellularCallInterface>(combineRemote);
1523 ASSERT_TRUE(telephonyService != nullptr);
1524 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1525 return;
1526 }
1527 if (HasSimCard(SIM1_SLOTID)) {
1528 CellularCallInfo conferenceCallInfo;
1529 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1530 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1531 ret = telephonyService->CombineConference(conferenceCallInfo);
1532 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1533 }
1534 if (HasSimCard(SIM2_SLOTID)) {
1535 CellularCallInfo conferenceCallInfo;
1536 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1537 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1538 ret = telephonyService->CombineConference(conferenceCallInfo);
1539 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1540 }
1541 }
1542
1543 /**
1544 * @tc.number cellular_call_CombineConference_0002
1545 * @tc.name Test for combineConference function with invalid slot by cs
1546 * @tc.desc Function test
1547 */
1548 HWTEST_F(CsTest, cellular_call_CombineConference_0002, Function | MediumTest | Level2)
1549 {
1550 AccessToken token;
1551 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1552 return;
1553 }
1554 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1555 ASSERT_TRUE(systemAbilityMgr != nullptr);
1556 auto combineRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1557 ASSERT_TRUE(combineRemote != nullptr);
1558 auto telephonyService = iface_cast<CellularCallInterface>(combineRemote);
1559 ASSERT_TRUE(telephonyService != nullptr);
1560 if (HasSimCard(SIM1_SLOTID)) {
1561 CellularCallInfo conferenceCallInfo;
1562 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1563 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1564 ret = telephonyService->CombineConference(conferenceCallInfo);
1565 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1566 }
1567 if (HasSimCard(SIM2_SLOTID)) {
1568 CellularCallInfo conferenceCallInfo;
1569 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1570 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1571 ret = telephonyService->CombineConference(conferenceCallInfo);
1572 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1573 }
1574 }
1575
1576 /**
1577 * @tc.number cellular_call_SeparateConference_0001
1578 * @tc.name Test for separateConference function by cs
1579 * @tc.desc Function test
1580 */
1581 HWTEST_F(CsTest, cellular_call_SeparateConference_0001, Function | MediumTest | Level2)
1582 {
1583 AccessToken token;
1584 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1585 ASSERT_TRUE(systemAbilityMgr != nullptr);
1586 auto separateRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1587 ASSERT_TRUE(separateRemote != nullptr);
1588 auto telephonyService = iface_cast<CellularCallInterface>(separateRemote);
1589 ASSERT_TRUE(telephonyService != nullptr);
1590 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1591 return;
1592 }
1593 if (HasSimCard(SIM1_SLOTID)) {
1594 CellularCallInfo callInfo;
1595 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1596 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1597 ret = telephonyService->SeparateConference(callInfo);
1598 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1599 }
1600 if (HasSimCard(SIM2_SLOTID)) {
1601 CellularCallInfo callInfo;
1602 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1603 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1604 ret = telephonyService->SeparateConference(callInfo);
1605 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1606 }
1607 }
1608
1609 /**
1610 * @tc.number cellular_call_SeparateConference_0002
1611 * @tc.name Test for separateConference function with invalid slot by cs
1612 * @tc.desc Function test
1613 */
1614 HWTEST_F(CsTest, cellular_call_SeparateConference_0002, Function | MediumTest | Level2)
1615 {
1616 AccessToken token;
1617 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1618 return;
1619 }
1620 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1621 ASSERT_TRUE(systemAbilityMgr != nullptr);
1622 auto separateRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1623 ASSERT_TRUE(separateRemote != nullptr);
1624 auto telephonyService = iface_cast<CellularCallInterface>(separateRemote);
1625 ASSERT_TRUE(telephonyService != nullptr);
1626 if (HasSimCard(SIM1_SLOTID)) {
1627 CellularCallInfo separateCallInfo;
1628 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, separateCallInfo);
1629 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1630 ret = telephonyService->SeparateConference(separateCallInfo);
1631 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1632 }
1633 if (HasSimCard(SIM2_SLOTID)) {
1634 CellularCallInfo separateCallInfo;
1635 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, separateCallInfo);
1636 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1637 ret = telephonyService->SeparateConference(separateCallInfo);
1638 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1639 }
1640 }
1641
1642 /**
1643 * @tc.number cellular_call_KickOutFromConference_0001
1644 * @tc.name Test for separateConference function by cs
1645 * @tc.desc Function test
1646 */
1647 HWTEST_F(CsTest, cellular_call_KickOutFromConference_0001, Function | MediumTest | Level2)
1648 {
1649 AccessToken token;
1650 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1651 ASSERT_TRUE(systemAbilityMgr != nullptr);
1652 auto kickOutRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1653 ASSERT_TRUE(kickOutRemote != nullptr);
1654 auto telephonyService = iface_cast<CellularCallInterface>(kickOutRemote);
1655 ASSERT_TRUE(telephonyService != nullptr);
1656 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1657 return;
1658 }
1659 if (HasSimCard(SIM1_SLOTID)) {
1660 CellularCallInfo kickOutCallInfo;
1661 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1662 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1663 ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1664 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1665 }
1666 if (HasSimCard(SIM2_SLOTID)) {
1667 CellularCallInfo kickOutCallInfo;
1668 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1669 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1670 ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1671 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1672 }
1673 }
1674
1675 /**
1676 * @tc.number cellular_call_KickOutFromConference_0002
1677 * @tc.name Test for KickOutFromConference function with invalid slot by cs
1678 * @tc.desc Function test
1679 */
1680 HWTEST_F(CsTest, cellular_call_KickOutFromConference_0002, Function | MediumTest | Level2)
1681 {
1682 AccessToken token;
1683 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1684 return;
1685 }
1686 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1687 ASSERT_TRUE(systemAbilityMgr != nullptr);
1688 auto kickOutRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1689 ASSERT_TRUE(kickOutRemote != nullptr);
1690 auto telephonyService = iface_cast<CellularCallInterface>(kickOutRemote);
1691 ASSERT_TRUE(telephonyService != nullptr);
1692 if (HasSimCard(SIM1_SLOTID)) {
1693 CellularCallInfo kickOutCallInfo;
1694 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1695 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1696 ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1697 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1698 }
1699 if (HasSimCard(SIM2_SLOTID)) {
1700 CellularCallInfo kickOutCallInfo;
1701 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1702 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1703 ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1704 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1705 }
1706 }
1707
1708 /**
1709 * @tc.number cellular_call_HangUpAllConnection_0001
1710 * @tc.name Test for hangup all connection function by cs
1711 * @tc.desc Function test
1712 */
1713 HWTEST_F(CsTest, cellular_call_HangUpAllConnection_0001, Function | MediumTest | Level2)
1714 {
1715 AccessToken token;
1716 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1717 ASSERT_TRUE(systemAbilityMgr != nullptr);
1718 auto hangUpAllConRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1719 ASSERT_TRUE(hangUpAllConRemote != nullptr);
1720 auto telephonyService = iface_cast<CellularCallInterface>(hangUpAllConRemote);
1721 ASSERT_TRUE(telephonyService != nullptr);
1722 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1723 return;
1724 }
1725 if (HasSimCard(SIM1_SLOTID)) {
1726 int32_t ret = telephonyService->HangUpAllConnection();
1727 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1728 }
1729 if (HasSimCard(SIM2_SLOTID)) {
1730 int32_t ret = telephonyService->HangUpAllConnection();
1731 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1732 }
1733 }
1734
1735 /**
1736 * @tc.number cellular_call_StartDtmf_0001
1737 * @tc.name Test for startDtmf function by cs
1738 * @tc.desc Function test
1739 */
1740 HWTEST_F(CsTest, cellular_call_StartDtmf_0001, Function | MediumTest | Level2)
1741 {
1742 AccessToken token;
1743 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1744 ASSERT_TRUE(systemAbilityMgr != nullptr);
1745 auto startDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1746 ASSERT_TRUE(startDtmfRemote != nullptr);
1747 auto telephonyService = iface_cast<CellularCallInterface>(startDtmfRemote);
1748 ASSERT_TRUE(telephonyService != nullptr);
1749 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1750 return;
1751 }
1752 if (HasSimCard(SIM1_SLOTID)) {
1753 CellularCallInfo callInfo;
1754 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1755 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1756 char code = '1';
1757 ret = telephonyService->StartDtmf(code, callInfo);
1758 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1759 }
1760 if (HasSimCard(SIM2_SLOTID)) {
1761 CellularCallInfo callInfo;
1762 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1763 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1764 char code = '1';
1765 ret = telephonyService->StartDtmf(code, callInfo);
1766 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1767 }
1768 }
1769
1770 /**
1771 * @tc.number cellular_call_StartDtmf_0002
1772 * @tc.name Test for startDtmf function with invalid slot by cs
1773 * @tc.desc Function test
1774 */
1775 HWTEST_F(CsTest, cellular_call_StartDtmf_0002, Function | MediumTest | Level2)
1776 {
1777 AccessToken token;
1778 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1779 return;
1780 }
1781 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1782 ASSERT_TRUE(systemAbilityMgr != nullptr);
1783 auto startDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1784 ASSERT_TRUE(startDtmfRemote != nullptr);
1785 auto telephonyService = iface_cast<CellularCallInterface>(startDtmfRemote);
1786 ASSERT_TRUE(telephonyService != nullptr);
1787 CellularCallInfo callInfo;
1788 if (HasSimCard(SIM1_SLOTID)) {
1789 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, callInfo);
1790 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1791 char code = '1';
1792 ret = telephonyService->StartDtmf(code, callInfo);
1793 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1794 }
1795 if (HasSimCard(SIM2_SLOTID)) {
1796 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, callInfo);
1797 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1798 char code = '1';
1799 ret = telephonyService->StartDtmf(code, callInfo);
1800 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1801 }
1802 }
1803
1804 /**
1805 * @tc.number cellular_call_StopDtmf_0001
1806 * @tc.name Test for stopDtmf function by cs
1807 * @tc.desc Function test
1808 */
1809 HWTEST_F(CsTest, cellular_call_StopDtmf_0001, Function | MediumTest | Level2)
1810 {
1811 AccessToken token;
1812 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1813 ASSERT_TRUE(systemAbilityMgr != nullptr);
1814 auto stopDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1815 ASSERT_TRUE(stopDtmfRemote != nullptr);
1816 auto telephonyService = iface_cast<CellularCallInterface>(stopDtmfRemote);
1817 ASSERT_TRUE(telephonyService != nullptr);
1818 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1819 return;
1820 }
1821 if (HasSimCard(SIM1_SLOTID)) {
1822 CellularCallInfo callInfo;
1823 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1824 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1825 ret = telephonyService->StopDtmf(callInfo);
1826 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1827 }
1828 if (HasSimCard(SIM2_SLOTID)) {
1829 CellularCallInfo callInfo;
1830 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1831 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1832 ret = telephonyService->StopDtmf(callInfo);
1833 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1834 }
1835 }
1836
1837 /**
1838 * @tc.number cellular_call_StopDtmf_0002
1839 * @tc.name Test for stopDtmf function with invalid slot by cs
1840 * @tc.desc Function test
1841 */
1842 HWTEST_F(CsTest, cellular_call_StopDtmf_0002, Function | MediumTest | Level2)
1843 {
1844 AccessToken token;
1845 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1846 return;
1847 }
1848 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1849 ASSERT_TRUE(systemAbilityMgr != nullptr);
1850 auto stopDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1851 ASSERT_TRUE(stopDtmfRemote != nullptr);
1852 auto telephonyService = iface_cast<CellularCallInterface>(stopDtmfRemote);
1853 ASSERT_TRUE(telephonyService != nullptr);
1854 if (HasSimCard(SIM1_SLOTID)) {
1855 CellularCallInfo stopDtmfCallInfo;
1856 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, stopDtmfCallInfo);
1857 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1858 ret = telephonyService->StopDtmf(stopDtmfCallInfo);
1859 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1860 }
1861 if (HasSimCard(SIM2_SLOTID)) {
1862 CellularCallInfo stopDtmfCallInfo;
1863 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, stopDtmfCallInfo);
1864 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1865 ret = telephonyService->StopDtmf(stopDtmfCallInfo);
1866 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1867 }
1868 }
1869
1870 /**
1871 * @tc.number cellular_call_SendDtmf_0001
1872 * @tc.name Test for sendDtmf function by cs
1873 * @tc.desc Function test
1874 */
1875 HWTEST_F(CsTest, cellular_call_SendDtmf_0001, Function | MediumTest | Level2)
1876 {
1877 AccessToken token;
1878 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1879 ASSERT_TRUE(systemAbilityMgr != nullptr);
1880 auto sendDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1881 ASSERT_TRUE(sendDtmfRemote != nullptr);
1882 auto telephonyService = iface_cast<CellularCallInterface>(sendDtmfRemote);
1883 ASSERT_TRUE(telephonyService != nullptr);
1884 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1885 return;
1886 }
1887 if (HasSimCard(SIM1_SLOTID)) {
1888 CellularCallInfo sendDtmfCallInfo;
1889 int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1890 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1891 char code = '1';
1892 ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1893 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1894 }
1895 if (HasSimCard(SIM2_SLOTID)) {
1896 CellularCallInfo sendDtmfCallInfo;
1897 int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1898 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1899 char code = '1';
1900 ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1901 EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1902 }
1903 }
1904
1905 /**
1906 * @tc.number cellular_call_SendDtmf_0002
1907 * @tc.name Test for sendDtmf function with invalid slot by cs
1908 * @tc.desc Function test
1909 */
1910 HWTEST_F(CsTest, cellular_call_SendDtmf_0002, Function | MediumTest | Level2)
1911 {
1912 AccessToken token;
1913 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1914 return;
1915 }
1916 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1917 ASSERT_TRUE(systemAbilityMgr != nullptr);
1918 auto sendDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1919 ASSERT_TRUE(sendDtmfRemote != nullptr);
1920 auto telephonyService = iface_cast<CellularCallInterface>(sendDtmfRemote);
1921 ASSERT_TRUE(telephonyService != nullptr);
1922 if (HasSimCard(SIM1_SLOTID)) {
1923 CellularCallInfo sendDtmfCallInfo;
1924 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1925 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1926 char code = '1';
1927 ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1928 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1929 }
1930 if (HasSimCard(SIM2_SLOTID)) {
1931 CellularCallInfo sendDtmfCallInfo;
1932 int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1933 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1934 char code = '1';
1935 ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1936 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1937 }
1938 }
1939
1940 /**
1941 * @tc.number cellular_call_GetDomainPreferenceMode_0001
1942 * @tc.name Test for GetDomainPreferenceMode function by invalid slotId
1943 * @tc.desc Function test
1944 */
1945 HWTEST_F(CsTest, cellular_call_GetDomainPreferenceMode_0001, Function | MediumTest | Level3)
1946 {
1947 AccessToken token;
1948 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1949 ASSERT_TRUE(systemAbilityMgr != nullptr);
1950 auto domainPrefModeRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1951 ASSERT_TRUE(domainPrefModeRemote != nullptr);
1952 auto telephonyService = iface_cast<CellularCallInterface>(domainPrefModeRemote);
1953 ASSERT_TRUE(telephonyService != nullptr);
1954 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1955 return;
1956 }
1957 if (HasSimCard(SIM1_SLOTID)) {
1958 int32_t ret = telephonyService->GetDomainPreferenceMode(INVALID_SLOTID);
1959 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1960 }
1961 if (HasSimCard(SIM2_SLOTID)) {
1962 int32_t ret = telephonyService->GetDomainPreferenceMode(INVALID_SLOTID);
1963 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1964 }
1965 }
1966
1967 /**
1968 * @tc.number cellular_call_GetDomainPreferenceMode_0002
1969 * @tc.name Test for GetDomainPreferenceMode function by valid slotId
1970 * @tc.desc Function test
1971 */
1972 HWTEST_F(CsTest, cellular_call_GetDomainPreferenceMode_0002, Function | MediumTest | Level3)
1973 {
1974 AccessToken token;
1975 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1976 return;
1977 }
1978 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1979 ASSERT_TRUE(systemAbilityMgr != nullptr);
1980 auto domainPrefModeRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1981 ASSERT_TRUE(domainPrefModeRemote != nullptr);
1982 auto telephonyService = iface_cast<CellularCallInterface>(domainPrefModeRemote);
1983 ASSERT_TRUE(telephonyService != nullptr);
1984 if (HasSimCard(SIM1_SLOTID)) {
1985 int32_t ret = telephonyService->GetDomainPreferenceMode(SIM1_SLOTID);
1986 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1987 }
1988 if (HasSimCard(SIM2_SLOTID)) {
1989 int32_t ret = telephonyService->GetDomainPreferenceMode(SIM2_SLOTID);
1990 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1991 }
1992 }
1993
1994 /**
1995 * @tc.number cellular_call_GetMute_0001
1996 * @tc.name Test for GetMute function by invalid slotId
1997 * @tc.desc Function test
1998 */
1999 HWTEST_F(CsTest, cellular_call_GetMute_0001, Function | MediumTest | Level3)
2000 {
2001 AccessToken token;
2002 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2003 ASSERT_TRUE(systemAbilityMgr != nullptr);
2004 auto getMuteRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2005 ASSERT_TRUE(getMuteRemote != nullptr);
2006 auto telephonyService = iface_cast<CellularCallInterface>(getMuteRemote);
2007 ASSERT_TRUE(telephonyService != nullptr);
2008 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2009 return;
2010 }
2011 if (HasSimCard(SIM1_SLOTID)) {
2012 int32_t ret = telephonyService->GetMute(INVALID_SLOTID);
2013 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
2014 }
2015 if (HasSimCard(SIM2_SLOTID)) {
2016 int32_t ret = telephonyService->GetMute(INVALID_SLOTID);
2017 EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
2018 }
2019 }
2020
2021 /**
2022 * @tc.number cellular_call_GetMute_0002
2023 * @tc.name Test for GetMute function by valid slotId
2024 * @tc.desc Function test
2025 */
2026 HWTEST_F(CsTest, cellular_call_GetMute_0002, Function | MediumTest | Level3)
2027 {
2028 AccessToken token;
2029 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2030 return;
2031 }
2032 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2033 ASSERT_TRUE(systemAbilityMgr != nullptr);
2034 auto getMuteRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2035 ASSERT_TRUE(getMuteRemote != nullptr);
2036 auto telephonyService = iface_cast<CellularCallInterface>(getMuteRemote);
2037 ASSERT_TRUE(telephonyService != nullptr);
2038 if (HasSimCard(SIM1_SLOTID)) {
2039 int32_t ret = telephonyService->GetMute(SIM1_SLOTID);
2040 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
2041 }
2042 if (HasSimCard(SIM2_SLOTID)) {
2043 int32_t ret = telephonyService->GetMute(SIM2_SLOTID);
2044 EXPECT_EQ(ret, TELEPHONY_SUCCESS);
2045 }
2046 }
2047
2048 /**
2049 * @tc.number cellular_call_CsControl_0001
2050 * @tc.name Test for CsControl
2051 * @tc.desc Function test
2052 */
2053 HWTEST_F(CsTest, cellular_call_CsControl_0001, Function | MediumTest | Level3)
2054 {
2055 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2056 ASSERT_TRUE(systemAbilityMgr != nullptr);
2057 auto csControlRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2058 ASSERT_TRUE(csControlRemote != nullptr);
2059 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2060 return;
2061 }
2062 auto csControl = std::make_shared<CSControl>();
2063 CellularCallInfo cellularCallInfo;
2064 bool enabled = false;
2065 EXPECT_EQ(InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2066 EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_GET_RADIO_STATE_FAILED);
2067 EXPECT_EQ(InitCellularCallInfo(INVALID_SLOTID, "", cellularCallInfo), TELEPHONY_SUCCESS);
2068 EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_PHONE_NUMBER_EMPTY);
2069 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2070 if (!HasSimCard(slotId)) {
2071 continue;
2072 }
2073 EXPECT_EQ(InitCellularCallInfo(slotId, "*30#", cellularCallInfo), TELEPHONY_SUCCESS);
2074 EXPECT_EQ(csControl->DialCdma(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2075 EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2076 EXPECT_EQ(InitCellularCallInfo(slotId, "#30#", cellularCallInfo), TELEPHONY_SUCCESS);
2077 EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2078 EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2079 EXPECT_EQ(csControl->DialCdma(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2080 EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_GET_RADIO_STATE_FAILED);
2081 ASSERT_FALSE(csControl->CalculateInternationalRoaming(slotId));
2082 EXPECT_NE(csControl->DialCdma(cellularCallInfo), TELEPHONY_SUCCESS);
2083 EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2084 EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2085 EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER_SECOND, cellularCallInfo), TELEPHONY_SUCCESS);
2086 EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_CALL_STATE);
2087 EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER_THIRD, cellularCallInfo), TELEPHONY_SUCCESS);
2088 EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_CALL_STATE);
2089 EXPECT_NE(csControl->Reject(cellularCallInfo), CALL_ERR_CALL_STATE);
2090 EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2091 EXPECT_EQ(csControl->SeparateConference(slotId, PHONE_NUMBER, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2092 EXPECT_EQ(csControl->SeparateConference(slotId, "", 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2093 EXPECT_NE(csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_DEFAULT), CALL_ERR_RESOURCE_UNAVAILABLE);
2094 EXPECT_EQ(csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE),
2095 CALL_ERR_RESOURCE_UNAVAILABLE);
2096 EXPECT_EQ(
2097 csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_HANG_UP_ALL), CALL_ERR_RESOURCE_UNAVAILABLE);
2098 EXPECT_EQ(csControl->HangUp(cellularCallInfo, static_cast<CallSupplementType>(INVALID_HANG_UP_TYPE)),
2099 TELEPHONY_ERR_ARGUMENT_INVALID);
2100 }
2101 }
2102
2103 /**
2104 * @tc.number cellular_call_CsControl_0002
2105 * @tc.name Test for CsControl
2106 * @tc.desc Function test
2107 */
2108 HWTEST_F(CsTest, cellular_call_CsControl_0002, Function | MediumTest | Level3)
2109 {
2110 auto csControl = std::make_shared<CSControl>();
2111 CellularCallInfo cellularCallInfo;
2112 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2113 if (!HasSimCard(slotId)) {
2114 continue;
2115 }
2116 CallInfoList callList;
2117 callList.callSize = 0;
2118 EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_ERROR);
2119 EXPECT_NE(csControl->ReportUpdateInfo(slotId, callList), TELEPHONY_SUCCESS);
2120 CallInfo callInfo;
2121 callList.callSize = 1;
2122 callInfo.number = PHONE_NUMBER;
2123 callInfo.index = 1;
2124 callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING);
2125 callList.calls.push_back(callInfo);
2126 EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2127 callList.callSize = 2;
2128 callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_ACTIVE);
2129 callInfo.number = PHONE_NUMBER_SECOND;
2130 callInfo.index = 2;
2131 callList.calls.push_back(callInfo);
2132 callList.callSize = 3;
2133 callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_DISCONNECTED);
2134 callInfo.number = PHONE_NUMBER_THIRD;
2135 callInfo.index = 3;
2136 callList.calls.push_back(callInfo);
2137 callList.callSize = 0;
2138 EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2139 EXPECT_NE(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2140 EXPECT_NE(csControl->Reject(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2141 EXPECT_NE(csControl->HoldCall(slotId), CALL_ERR_CALL_STATE);
2142 EXPECT_NE(csControl->UnHoldCall(slotId), CALL_ERR_CALL_STATE);
2143 EXPECT_NE(csControl->SwitchCall(slotId), CALL_ERR_CALL_STATE);
2144 }
2145 }
2146
2147 /**
2148 * @tc.number cellular_call_CellularCallConnectionCS_0001
2149 * @tc.name Test for CellularCallConnectionCS
2150 * @tc.desc Function test
2151 */
2152 HWTEST_F(CsTest, cellular_call_CellularCallConnectionCS_0001, Function | MediumTest | Level3)
2153 {
2154 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2155 ASSERT_TRUE(systemAbilityMgr != nullptr);
2156 auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2157 ASSERT_TRUE(remote != nullptr);
2158 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2159 return;
2160 }
2161
2162 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2163 if (!HasSimCard(slotId)) {
2164 continue;
2165 }
2166 CellularCallConnectionCS csConnection;
2167 EXPECT_EQ(csConnection.SendDtmfRequest(slotId, '1', 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2168 EXPECT_EQ(csConnection.StartDtmfRequest(slotId, '1', 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2169 EXPECT_EQ(csConnection.StopDtmfRequest(slotId, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2170 EXPECT_EQ(csConnection.GetCsCallsDataRequest(slotId, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2171 EXPECT_EQ(csConnection.GetCallFailReasonRequest(slotId), CALL_ERR_RESOURCE_UNAVAILABLE);
2172 MMICodeUtils utils;
2173 ASSERT_FALSE(utils.IsNeedExecuteMmi("", false));
2174 ASSERT_FALSE(utils.ExecuteMmiCode(slotId));
2175 }
2176 }
2177
2178 /**
2179 * @tc.number cellular_call_CellularCallRegister_0001
2180 * @tc.name Test for CellularCallRegister
2181 * @tc.desc Function test
2182 */
2183 HWTEST_F(CsTest, cellular_call_CellularCallRegister_0001, Function | MediumTest | Level3)
2184 {
2185 auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2186 ASSERT_TRUE(systemAbilityMgr != nullptr);
2187 auto cellularCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2188 ASSERT_TRUE(cellularCallRemote != nullptr);
2189 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2190 return;
2191 }
2192 auto callRegister = DelayedSingleton<CellularCallRegister>::GetInstance();
2193 ASSERT_TRUE(callRegister != nullptr);
2194 CellularCallEventInfo callEvent;
2195 callRegister->ReportEventResultInfo(callEvent);
2196 CallWaitResponse waitResponse;
2197 callRegister->ReportGetWaitingResult(waitResponse);
2198 callRegister->ReportSetWaitingResult(ERROR_RESULT);
2199 CallRestrictionResponse restrictionResponse;
2200 callRegister->ReportGetRestrictionResult(restrictionResponse);
2201 callRegister->ReportSetRestrictionResult(ERROR_RESULT);
2202 callRegister->ReportSetBarringPasswordResult(ERROR_RESULT);
2203 CallTransferResponse transferResponse;
2204 callRegister->ReportGetTransferResult(transferResponse);
2205 callRegister->ReportSetTransferResult(ERROR_RESULT);
2206 ClipResponse clipResponse;
2207 callRegister->ReportGetClipResult(clipResponse);
2208 ClirResponse clirResponse;
2209 callRegister->ReportGetClirResult(clirResponse);
2210 callRegister->ReportSetClirResult(ERROR_RESULT);
2211 callRegister->ReportCallRingBackResult(ERROR_RESULT);
2212 DisconnectedDetails details;
2213 callRegister->ReportCallFailReason(details);
2214 MuteControlResponse muteResponse;
2215 callRegister->ReportSetMuteResult(muteResponse);
2216 callRegister->ReportGetMuteResult(muteResponse);
2217 callRegister->ReportInviteToConferenceResult(ERROR_RESULT);
2218 callRegister->ReportGetCallDataResult(ERROR_RESULT);
2219 callRegister->ReportStartDtmfResult(ERROR_RESULT);
2220 callRegister->ReportStopDtmfResult(ERROR_RESULT);
2221 callRegister->ReportStartRttResult(ERROR_RESULT);
2222 callRegister->ReportStopRttResult(ERROR_RESULT);
2223 callRegister->ReportSendUssdResult(ERROR_RESULT);
2224 SetEccListResponse eccListResponse;
2225 callRegister->ReportSetEmergencyCallListResponse(eccListResponse);
2226 MmiCodeInfo mmiInfo;
2227 callRegister->ReportMmiCodeResult(mmiInfo);
2228 ASSERT_FALSE(callRegister->IsCallManagerCallBackRegistered());
2229 }
2230
2231 /**
2232 * @tc.number cellular_call_CellularCallRegister_0002
2233 * @tc.name Test for CellularCallRegister
2234 * @tc.desc Function test
2235 */
2236 HWTEST_F(CsTest, cellular_call_CellularCallRegister_0002, Function | MediumTest | Level3)
2237 {
2238 auto callRegister = DelayedSingleton<CellularCallRegister>::GetInstance();
2239 CallReportInfo callRepotInfo;
2240 callRepotInfo.callType = CallType::TYPE_CS;
2241 callRepotInfo.accountId = INVALID_SLOTID;
2242 callRepotInfo.state = TelCallState::CALL_STATUS_INCOMING;
2243 callRepotInfo.callMode = VideoStateType::TYPE_VOICE;
2244 CallsReportInfo calls;
2245 calls.slotId = INVALID_SLOTID;
2246 calls.callVec.push_back(callRepotInfo);
2247 callRegister->ReportCallsInfo(calls);
2248 callRegister->ReportSingleCallInfo(callRepotInfo, TelCallState::CALL_STATUS_INCOMING);
2249 EXPECT_EQ(callRegister->RegisterCallManagerCallBack(nullptr), TELEPHONY_SUCCESS);
2250 EXPECT_EQ(callRegister->UnRegisterCallManagerCallBack(), TELEPHONY_SUCCESS);
2251 }
2252
2253 /**
2254 * @tc.number cellular_call_SupplementRequestCs_0001
2255 * @tc.name Test for SupplementRequestCs
2256 * @tc.desc Function test
2257 */
2258 HWTEST_F(CsTest, cellular_call_SupplementRequestCs_0001, Function | MediumTest | Level3)
2259 {
2260 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2261 return;
2262 }
2263
2264 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2265 if (!HasSimCard(slotId)) {
2266 continue;
2267 }
2268 SupplementRequestCs request;
2269 std::string fac = "fac";
2270 std::string pw = "test";
2271 int32_t index = 1;
2272 int32_t mode = 1;
2273 int32_t classType = 1;
2274 const char *oldPassword = "oldpwd";
2275 const char *newPassword = "newpwd";
2276 bool active = true;
2277 CallTransferParam param;
2278 EXPECT_NE(request.GetCallRestrictionRequest(slotId, fac, index), TELEPHONY_SUCCESS);
2279 EXPECT_NE(request.SetCallRestrictionRequest(slotId, fac, mode, pw, index), TELEPHONY_SUCCESS);
2280 EXPECT_NE(request.SetBarringPasswordRequest(slotId, fac, index, oldPassword, newPassword), TELEPHONY_SUCCESS);
2281 EXPECT_NE(request.GetCallWaitingRequest(slotId, index), TELEPHONY_SUCCESS);
2282 EXPECT_NE(request.SetCallWaitingRequest(slotId, active, classType, index), TELEPHONY_SUCCESS);
2283 EXPECT_NE(request.GetClipRequest(slotId, index), TELEPHONY_SUCCESS);
2284 EXPECT_NE(request.GetClirRequest(slotId, index), TELEPHONY_SUCCESS);
2285 EXPECT_NE(request.SetClirRequest(slotId, mode, index), TELEPHONY_SUCCESS);
2286 EXPECT_NE(request.GetCallTransferRequest(slotId, mode, index), TELEPHONY_SUCCESS);
2287 EXPECT_NE(request.SetCallTransferRequest(slotId, param, index), TELEPHONY_SUCCESS);
2288 }
2289 }
2290
2291 /**
2292 * @tc.number cellular_call_ConfigRequest_0001
2293 * @tc.name Test for ConfigRequest
2294 * @tc.desc Function test
2295 */
2296 HWTEST_F(CsTest, cellular_call_ConfigRequest_0001, Function | MediumTest | Level3)
2297 {
2298 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2299 return;
2300 }
2301
2302 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2303 if (!HasSimCard(slotId)) {
2304 continue;
2305 }
2306 ConfigRequest config;
2307 int32_t mode = 1;
2308 EXPECT_NE(config.SetDomainPreferenceModeRequest(slotId, mode), TELEPHONY_SUCCESS);
2309 EXPECT_NE(config.GetDomainPreferenceModeRequest(slotId), TELEPHONY_SUCCESS);
2310 EXPECT_NE(config.SetMuteRequest(slotId, mode), TELEPHONY_SUCCESS);
2311 EXPECT_NE(config.GetMuteRequest(slotId), TELEPHONY_SUCCESS);
2312 }
2313 }
2314
2315 /**
2316 * @tc.number cellular_call_CellularCallSupplement_0001
2317 * @tc.name Test for CellularCallSupplement
2318 * @tc.desc Function test
2319 */
2320 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0001, Function | MediumTest | Level3)
2321 {
2322 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2323 return;
2324 }
2325
2326 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2327 if (!HasSimCard(slotId)) {
2328 continue;
2329 }
2330 MMIData mmiData;
2331 CellularCallSupplement supplement;
2332 mmiData.actionString = "";
2333 supplement.AlterPinPassword(slotId, mmiData);
2334 supplement.AlterPin2Password(slotId, mmiData);
2335 supplement.UnlockPuk(slotId, mmiData);
2336 supplement.UnlockPuk2(slotId, mmiData);
2337 mmiData.actionString = "test";
2338 mmiData.serviceInfoA = "infoA";
2339 mmiData.serviceInfoB = "infoB";
2340 mmiData.serviceInfoC = "infoC";
2341 supplement.AlterPinPassword(slotId, mmiData);
2342 supplement.AlterPin2Password(slotId, mmiData);
2343 supplement.UnlockPuk(slotId, mmiData);
2344 supplement.UnlockPuk2(slotId, mmiData);
2345 mmiData.serviceInfoC = "infoB";
2346 supplement.AlterPinPassword(slotId, mmiData);
2347 supplement.AlterPin2Password(slotId, mmiData);
2348 supplement.UnlockPuk(slotId, mmiData);
2349 supplement.UnlockPuk2(slotId, mmiData);
2350 ASSERT_FALSE(supplement.IsVaildPinOrPuk("B", "B"));
2351 EXPECT_NE(supplement.SendUssd(slotId, "test"), TELEPHONY_SUCCESS);
2352 }
2353 }
2354
2355 /**
2356 * @tc.number cellular_call_CellularCallSupplement_0002
2357 * @tc.name Test for CellularCallSupplement
2358 * @tc.desc Function test
2359 */
2360 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0002, Function | MediumTest | Level3)
2361 {
2362 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2363 return;
2364 }
2365
2366 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2367 if (!HasSimCard(slotId)) {
2368 continue;
2369 }
2370 CellularCallSupplement supplement;
2371 supplement.ObtainBarringInstallation("33");
2372 supplement.ObtainBarringInstallation("331");
2373 supplement.ObtainBarringInstallation("332");
2374 supplement.ObtainBarringInstallation("351");
2375 supplement.ObtainBarringInstallation("35");
2376 supplement.ObtainBarringInstallation("330");
2377 supplement.ObtainBarringInstallation("333");
2378 supplement.ObtainBarringInstallation("353");
2379 supplement.ObtainBarringInstallation("1000");
2380
2381 EXPECT_NE(supplement.ObtainServiceCode("10"), TELEPHONY_SUCCESS);
2382 EXPECT_NE(supplement.ObtainServiceCode("11"), TELEPHONY_SUCCESS);
2383 EXPECT_NE(supplement.ObtainServiceCode("12"), TELEPHONY_SUCCESS);
2384 EXPECT_NE(supplement.ObtainServiceCode("13"), TELEPHONY_SUCCESS);
2385 EXPECT_NE(supplement.ObtainServiceCode("16"), TELEPHONY_SUCCESS);
2386 EXPECT_NE(supplement.ObtainServiceCode("19"), TELEPHONY_SUCCESS);
2387 EXPECT_NE(supplement.ObtainServiceCode("20"), TELEPHONY_SUCCESS);
2388 EXPECT_NE(supplement.ObtainServiceCode("21"), TELEPHONY_SUCCESS);
2389 EXPECT_NE(supplement.ObtainServiceCode("22"), TELEPHONY_SUCCESS);
2390 EXPECT_NE(supplement.ObtainServiceCode("24"), TELEPHONY_SUCCESS);
2391 EXPECT_NE(supplement.ObtainServiceCode("25"), TELEPHONY_SUCCESS);
2392 EXPECT_NE(supplement.ObtainServiceCode("99"), TELEPHONY_SUCCESS);
2393 EXPECT_EQ(supplement.ObtainServiceCode("100"), TELEPHONY_SUCCESS);
2394
2395 EXPECT_EQ(supplement.ObtainCause("21"), TELEPHONY_SUCCESS);
2396 EXPECT_NE(supplement.ObtainCause("61"), TELEPHONY_SUCCESS);
2397 EXPECT_NE(supplement.ObtainCause("62"), TELEPHONY_SUCCESS);
2398 EXPECT_NE(supplement.ObtainCause("67"), TELEPHONY_SUCCESS);
2399 EXPECT_EQ(supplement.ObtainCause("99"), TELEPHONY_ERROR);
2400 }
2401 }
2402
2403 /**
2404 * @tc.number cellular_call_CellularCallSupplement_0003
2405 * @tc.name Test for CellularCallSupplement
2406 * @tc.desc Function test
2407 */
2408 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0003, Function | MediumTest | Level3)
2409 {
2410 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2411 return;
2412 }
2413
2414 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2415 if (!HasSimCard(slotId)) {
2416 continue;
2417 }
2418 CellularCallSupplement supplement;
2419 std::string action = "*";
2420 std::string number = "";
2421 CallTransferSettingType type;
2422 EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2423 EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), PHONE_NUMBER, type), TELEPHONY_SUCCESS);
2424 action = "#";
2425 EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2426 action = "**";
2427 EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2428 action = "##";
2429 EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2430 action = "*#";
2431 EXPECT_NE(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2432 }
2433 }
2434
2435 /**
2436 * @tc.number cellular_call_CellularCallHandler_0001
2437 * @tc.name Test for CellularCallHandler
2438 * @tc.desc Function test
2439 */
2440 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0001, Function | MediumTest | Level3)
2441 {
2442 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2443 return;
2444 }
2445
2446 EventFwk::MatchingSkills matchingSkills;
2447 matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2448 EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2449 CellularCallHandler firstHandler { subscriberInfo };
2450 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2451 if (!HasSimCard(slotId)) {
2452 continue;
2453 }
2454 firstHandler.SetSlotId(slotId);
2455 auto event = AppExecFwk::InnerEvent::Get(0);
2456 auto rilRadioResponse = std::make_shared<HRilRadioResponseInfo>();
2457 rilRadioResponse->error = HRilErrType::HRIL_ERR_GENERIC_FAILURE;
2458 firstHandler.CellularCallIncomingStartTrace(static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING));
2459 firstHandler.CellularCallIncomingFinishTrace(static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING));
2460 firstHandler.GetCsCallsDataResponse(event);
2461 firstHandler.GetCsCallsDataRequest(event);
2462 firstHandler.GetMMIResponse(event);
2463 auto ringbackResponse = std::make_shared<RingbackVoice>();
2464 ringbackResponse->status = ERROR_RESULT;
2465 auto ringbackEvent = AppExecFwk::InnerEvent::Get(0, ringbackResponse);
2466 firstHandler.CallRingBackVoiceResponse(event);
2467 firstHandler.CallRingBackVoiceResponse(ringbackEvent);
2468 auto srvccStatus = std::make_shared<SrvccStatus>();
2469 srvccStatus->status = SrvccState::SRVCC_NONE;
2470 auto srvccEvent1 = AppExecFwk::InnerEvent::Get(0, srvccStatus);
2471 firstHandler.UpdateSrvccStateReport(event);
2472 firstHandler.UpdateSrvccStateReport(srvccEvent1);
2473 srvccStatus->status = SrvccState::COMPLETED;
2474 auto srvccEvent2 = AppExecFwk::InnerEvent::Get(0, srvccStatus);
2475 firstHandler.UpdateSrvccStateReport(srvccEvent2);
2476 firstHandler.UpdateRsrvccStateReport(event);
2477 firstHandler.GetCallFailReasonResponse(event);
2478 firstHandler.GetEmergencyCallListResponse(event);
2479 firstHandler.ReportEccChanged(event);
2480 firstHandler.SetEmergencyCallListResponse(event);
2481 firstHandler.SendUssdResponse(event);
2482 ASSERT_EQ(firstHandler.GetSlotId(), slotId);
2483 }
2484 }
2485
2486 /**
2487 * @tc.number cellular_call_CellularCallHandler_0002
2488 * @tc.name Test for CellularCallHandler
2489 * @tc.desc Function test
2490 */
2491 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0002, Function | MediumTest | Level3)
2492 {
2493 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2494 return;
2495 }
2496
2497 EventFwk::MatchingSkills matchingSkills;
2498 matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2499 EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2500 CellularCallHandler secondHandler { subscriberInfo };
2501 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2502 if (!HasSimCard(slotId)) {
2503 continue;
2504 }
2505 secondHandler.SetSlotId(slotId);
2506 auto event = AppExecFwk::InnerEvent::Get(0);
2507 auto rilRadioResponse = std::make_shared<HRilRadioResponseInfo>();
2508 rilRadioResponse->error = HRilErrType::HRIL_ERR_GENERIC_FAILURE;
2509 secondHandler.CommonResultResponse(event);
2510 auto rejectEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_REJECT_CALL, rilRadioResponse);
2511 secondHandler.CommonResultResponse(rejectEvent);
2512 auto supplementEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CALL_SUPPLEMENT, rilRadioResponse);
2513 secondHandler.CommonResultResponse(supplementEvent);
2514
2515 rilRadioResponse->error = HRilErrType::NONE;
2516 auto hangupConnectEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_HANGUP_CONNECT, rilRadioResponse);
2517 secondHandler.CommonResultResponse(hangupConnectEvent);
2518 auto acceptEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_ACCEPT_CALL, rilRadioResponse);
2519 secondHandler.CommonResultResponse(acceptEvent);
2520 auto splitNoErrorEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_SPLIT_CALL, rilRadioResponse);
2521 secondHandler.CommonResultResponse(splitNoErrorEvent);
2522
2523 auto ssResult = std::make_shared<SsBaseResult>();
2524 ssResult->index = INVALID_INDEX;
2525 ssResult->result = SUCCESS_RESULT;
2526 auto errorEvent = AppExecFwk::InnerEvent::Get(0, ssResult);
2527 secondHandler.SetCallRestrictionResponse(event);
2528 secondHandler.SetCallRestrictionResponse(errorEvent);
2529 secondHandler.SetBarringPasswordResponse(event);
2530 secondHandler.SetCallTransferInfoResponse(event);
2531 secondHandler.SetCallWaitingResponse(event);
2532 secondHandler.SetClipResponse(event);
2533 secondHandler.SetClirResponse(event);
2534 secondHandler.SetColpResponse(event);
2535 secondHandler.SetColrResponse(event);
2536
2537 auto responseEvent = AppExecFwk::InnerEvent::Get(0, rilRadioResponse);
2538 secondHandler.SetMuteResponse(event);
2539 secondHandler.SetMuteResponse(responseEvent);
2540 secondHandler.GetMuteResponse(event);
2541 secondHandler.GetMuteResponse(responseEvent);
2542 ASSERT_EQ(secondHandler.GetSlotId(), slotId);
2543 }
2544 }
2545
2546 /**
2547 * @tc.number cellular_call_CellularCallHandler_0003
2548 * @tc.name Test for CellularCallHandler
2549 * @tc.desc Function test
2550 */
2551 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0003, Function | MediumTest | Level3)
2552 {
2553 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2554 return;
2555 }
2556 EventFwk::MatchingSkills matchingSkills;
2557 matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2558 EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2559 CellularCallHandler thirdhandler { subscriberInfo };
2560 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2561 if (!HasSimCard(slotId)) {
2562 continue;
2563 }
2564 thirdhandler.SetSlotId(slotId);
2565 auto event = AppExecFwk::InnerEvent::Get(0);
2566 auto ussdNoticeResponse = std::make_shared<UssdNoticeInfo>();
2567 ussdNoticeResponse->m = USSD_MODE_NOTIFY;
2568 ussdNoticeResponse->str = "tdd test";
2569 auto successEvent = AppExecFwk::InnerEvent::Get(0, ussdNoticeResponse);
2570 thirdhandler.UssdNotifyResponse(event);
2571 thirdhandler.UssdNotifyResponse(successEvent);
2572 ussdNoticeResponse->str = "";
2573 auto errorEvent = AppExecFwk::InnerEvent::Get(0, ussdNoticeResponse);
2574 thirdhandler.UssdNotifyResponse(errorEvent);
2575
2576 auto ssNoticeResponse = std::make_shared<SsNoticeInfo>();
2577 ssNoticeResponse->result = ERROR_RESULT;
2578 auto defaultEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2579 thirdhandler.SsNotifyResponse(event);
2580 thirdhandler.SsNotifyResponse(defaultEvent);
2581 ssNoticeResponse->requestType = SUCCESS_RESULT;
2582 auto noticeErrorEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2583 thirdhandler.SsNotifyResponse(noticeErrorEvent);
2584 ssNoticeResponse->result = SUCCESS_RESULT;
2585 auto noticeDefaultEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2586 thirdhandler.SsNotifyResponse(noticeDefaultEvent);
2587 ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_UNCONDITIONAL);
2588 auto noticeUnconditinalEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2589 thirdhandler.SsNotifyResponse(noticeUnconditinalEvent);
2590 ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_BUSY);
2591 auto noticeBusyEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2592 thirdhandler.SsNotifyResponse(noticeBusyEvent);
2593 ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_NO_REPLY);
2594 auto noticeNoReplyEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2595 thirdhandler.SsNotifyResponse(noticeNoReplyEvent);
2596 ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_NOT_REACHABLE);
2597 auto noticeNotReachableEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2598 thirdhandler.SsNotifyResponse(noticeNotReachableEvent);
2599 ASSERT_EQ(thirdhandler.GetSlotId(), slotId);
2600 }
2601 }
2602
2603 /**
2604 * @tc.number cellular_call_TestDump_0001
2605 * @tc.name TestDump
2606 * @tc.desc Function test
2607 */
2608 HWTEST_F(CsTest, cellular_call_TestDump_0001, Function | MediumTest | Level3)
2609 {
2610 std::vector<std::u16string> emptyArgs = {};
2611 std::vector<std::u16string> args = { u"test", u"test1" };
2612 EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(-1, args), 0);
2613 EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(0, emptyArgs), 0);
2614 EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(0, args), 0);
2615 }
2616
2617 /**
2618 * @tc.number cellular_call_ModuleServiceUtils_0001
2619 * @tc.name ModuleServiceUtils
2620 * @tc.desc Function test
2621 */
2622 HWTEST_F(CsTest, cellular_call_ModuleServiceUtils_0001, Function | MediumTest | Level3)
2623 {
2624 ModuleServiceUtils moduleServiceUtils;
2625 bool airplaneModeOn = false;
2626 moduleServiceUtils.GetCsRegState(SIM1_SLOTID);
2627 moduleServiceUtils.GetPsRegState(SIM1_SLOTID);
2628 EXPECT_NE(moduleServiceUtils.GetAirplaneMode(airplaneModeOn), TELEPHONY_SUCCESS);
2629 EXPECT_NE(moduleServiceUtils.UpdateRadioOn(SIM1_SLOTID), TELEPHONY_SUCCESS);
2630 }
2631
2632 /**
2633 * @tc.number cellular_call_CellularCallConfig_0001
2634 * @tc.name CellularCallConfig
2635 * @tc.desc Function test
2636 */
2637 HWTEST_F(CsTest, cellular_call_CellularCallConfig_0001, Function | MediumTest | Level3)
2638 {
2639 CellularCallConfig CellularCallConfig;
2640 bool isReadyToCall = false;
2641 bool csType = 0;
2642 CellularCallConfig.SetReadyToCall(SIM1_SLOTID, isReadyToCall);
2643 CellularCallCallback cellularCallCallback;
2644 cellularCallCallback.SetReadyToCall(SIM1_SLOTID, csType, isReadyToCall);
2645 EXPECT_EQ(CellularCallConfig.IsReadyToCall(SIM1_SLOTID), TELEPHONY_SUCCESS);
2646 }
2647 } // namespace Telephony
2648 } // namespace OHOS
2649