1 /*
2  * Copyright (C) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #define private public
17 #define protected public
18 #include "call_manager_gtest.h"
19 
20 #include <gtest/gtest.h>
21 #include <cstring>
22 #include <string>
23 
24 #include "bluetooth_hfp_ag.h"
25 #include "call_manager_connect.h"
26 #include "call_manager_service.h"
27 #include "surface_utils.h"
28 #include "telephony_types.h"
29 #include "voip_call.h"
30 
31 using namespace OHOS::Bluetooth;
32 namespace OHOS {
33 namespace Telephony {
34 using namespace testing::ext;
35 constexpr int16_t SIM2_SLOTID = 1;
36 constexpr int16_t SIM1_SLOTID_NO_CARD = 0;
37 constexpr int16_t RETURN_VALUE_IS_ZERO = 0;
38 constexpr int16_t INVALID_NEGATIVE_ID = -100;
39 constexpr int16_t INVALID_POSITIVE_ID = 100;
40 constexpr int INVALID_DIAL_TYPE = 3;
41 constexpr int WAIT_TIME = 3;
42 constexpr int16_t CAMERA_ROTATION_90 = 90;
43 constexpr int16_t CAMERA_ROTATION_ERROR = 50;
44 constexpr int16_t SLEEP_1000_MS = 1000;
45 constexpr int BASE_TIME_MS = 1000;
46 constexpr int SLEEP_TIME_MS = 50;
47 constexpr int MAX_LIMIT_TIME = 18000;
48 constexpr int16_t SIM1_SLOTID = 0;
49 const std::string PHONE_NUMBER = "0000000000";
50 
51 std::unordered_map<int32_t, std::unordered_set<int32_t>> g_callStateMap;
52 int32_t g_newCallId = -1;
53 std::mutex CallInfoManager::mutex_;
54 int16_t CallInfoManager::newCallState_;
55 CallAttributeInfo CallInfoManager::updateCallInfo_;
56 std::unordered_set<int32_t> CallInfoManager::callIdSet_;
57 
CallDetailsChange(const CallAttributeInfo & info)58 int32_t CallInfoManager::CallDetailsChange(const CallAttributeInfo &info)
59 {
60     TELEPHONY_LOGI("CallDetailsChange Start");
61     std::lock_guard<std::mutex> lock(mutex_);
62     updateCallInfo_ = info;
63     if (callIdSet_.find(updateCallInfo_.callId) == callIdSet_.end()) {
64         TELEPHONY_LOGI("CallDetailsChange new call");
65         callIdSet_.insert(updateCallInfo_.callId);
66         g_newCallId = updateCallInfo_.callId;
67         newCallState_ = (int32_t)updateCallInfo_.callState;
68         std::unordered_set<int32_t> newSet;
69         newSet.clear();
70         g_callStateMap.insert(std::pair<int32_t, std::unordered_set<int32_t>>(g_newCallId, newSet));
71     }
72     g_callStateMap[updateCallInfo_.callId].insert((int32_t)updateCallInfo_.callState);
73     return TELEPHONY_SUCCESS;
74 }
75 
HasActiveStatus()76 bool CallInfoManager::HasActiveStatus()
77 {
78     TELEPHONY_LOGI("Waiting for activation !");
79     int sumUseTime = 0;
80     int slipMs = SLEEP_TIME_MS;
81     do {
82         if (!(HasState(g_newCallId, static_cast<int32_t>(TelCallState::CALL_STATUS_ACTIVE)))) {
83             usleep(slipMs * BASE_TIME_MS);
84             sumUseTime += slipMs;
85         } else {
86             TELEPHONY_LOGI("===========wait %d ms callStatus:%d==============", sumUseTime, newCallState_);
87             return true;
88         }
89     } while (sumUseTime < MAX_LIMIT_TIME);
90     TELEPHONY_LOGI("===========wait %d ms callStatus:%d=====not active=========", sumUseTime, newCallState_);
91     return false;
92 }
93 
HasState(int callId,int32_t callState)94 bool CallInfoManager::HasState(int callId, int32_t callState)
95 {
96     if (g_callStateMap.find(callId) == g_callStateMap.end()) {
97         return false;
98     }
99     if (g_callStateMap[callId].find(callState) == g_callStateMap[callId].end()) {
100         return false;
101     }
102     return true;
103 }
104 
CallEventChange(const CallEventInfo & info)105 int32_t CallInfoManager::CallEventChange(const CallEventInfo &info)
106 {
107     return TELEPHONY_SUCCESS;
108 }
109 
Init()110 void CallInfoManager::Init()
111 {
112     g_newCallId = -1;
113     updateCallInfo_.speakerphoneOn = -1;
114     updateCallInfo_.startTime = -1;
115     updateCallInfo_.isEcc = -1;
116     updateCallInfo_.accountId = -1;
117     updateCallInfo_.callType = CallType::TYPE_CS;
118     updateCallInfo_.callId = -1;
119     updateCallInfo_.callState = TelCallState::CALL_STATUS_IDLE;
120     updateCallInfo_.videoState = VideoStateType::TYPE_VOICE;
121 }
122 
LockCallId(bool eq,int32_t targetId,int32_t slipMs,int32_t timeoutMs)123 void CallInfoManager::LockCallId(bool eq, int32_t targetId, int32_t slipMs, int32_t timeoutMs)
124 {
125     int32_t useTimeMs = 0;
126     std::cout << "wait for a few seconds......" << std::endl;
127     while ((updateCallInfo_.callId != targetId) && (useTimeMs < timeoutMs)) {
128         usleep(slipMs * SLEEP_1000_MS);
129         useTimeMs += slipMs;
130     }
131     std::cout << "\n===========wait " << useTimeMs << " ms target:" << updateCallInfo_.callId << std::endl;
132     if (eq) {
133         EXPECT_EQ(updateCallInfo_.callId, targetId);
134     } else {
135         EXPECT_NE(updateCallInfo_.callId, targetId);
136     }
137 }
138 
LockCallState(bool eq,int32_t targetState,int32_t slipMs,int32_t timeoutMs)139 void CallInfoManager::LockCallState(bool eq, int32_t targetState, int32_t slipMs, int32_t timeoutMs)
140 {
141     if (CallManagerGtest::clientPtr_->GetCallState() == targetState) {
142         return;
143     }
144     int32_t usedTimeMs = 0;
145     std::cout << "wait for a few seconds......" << std::endl;
146     while ((CallManagerGtest::clientPtr_->GetCallState() != targetState) && (usedTimeMs < timeoutMs)) {
147         usleep(slipMs * SLEEP_1000_MS);
148         usedTimeMs += slipMs;
149     }
150     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
151     std::cout << "waited " << usedTimeMs << " seconds" << std::endl;
152     std::cout << "target call state:" << targetState << std::endl;
153     EXPECT_EQ(callState, targetState);
154 }
155 
HangUpCall()156 void CallManagerGtest::HangUpCall()
157 {
158     clientPtr_->HangUpCall(INVALID_CALLID);
159 }
160 
161 class ClientErrorBranchTest : public testing::Test {
162 public:
SetUpTestCase()163     static void SetUpTestCase() {};
TearDownTestCase()164     static void TearDownTestCase() {};
SetUp()165     void SetUp() {};
TearDown()166     void TearDown() {};
167 };
168 
169 /********************************************* Test RejectCall() ***********************************************/
170 /**
171  * @tc.number   Telephony_CallManager_RejectCall_0100
172  * @tc.name     test RejectCall with the callId does not exist
173  * @tc.desc     Function test
174  */
175 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0100, Function | MediumTest | Level2)
176 {
177     AccessToken token;
178     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
179         return;
180     }
181     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
182     int32_t callId = INVALID_NEGATIVE_ID;
183     std::u16string textMessage = Str8ToStr16("this is a test message");
184     EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO);
185 }
186 
187 /**
188  * @tc.number   Telephony_CallManager_RejectCall_0200
189  * @tc.name     test RejectCall without permission
190  * @tc.desc     Function test
191  */
192 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0200, Function | MediumTest | Level2)
193 {
194     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
195         return;
196     }
197     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
198     int32_t callId = INVALID_NEGATIVE_ID;
199     std::u16string textMessage = Str8ToStr16("this is a test message");
200     EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO);
201 }
202 
203 /**
204  * @tc.number   Telephony_CallManager_RejectCall_0300
205  * @tc.name     test RejectCall with the callId does not exist
206  * @tc.desc     Function test
207  */
208 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0300, Function | MediumTest | Level2)
209 {
210     AccessToken token;
211     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
212         return;
213     }
214     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
215     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
216     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->RejectCall(), RETURN_VALUE_IS_ZERO);
217 }
218 
219 /******************************************* Test HangUpCall() *********************************************/
220 /**
221  * @tc.number   Telephony_CallManager_HangUpCall_0100
222  * @tc.name     test disconnect call with wrong callId
223  * @tc.desc     Function test
224  */
225 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0100, Function | MediumTest | Level2)
226 {
227     AccessToken token;
228     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
229         return;
230     }
231     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
232     int32_t callId = INVALID_NEGATIVE_ID;
233     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
234 }
235 
236 /**
237  * @tc.number   Telephony_CallManager_HangUpCall_0200  to do ...
238  * @tc.name     test ring disconnect call after DialCall,
239  *              wait for the correct status of the callback to execute correctly
240  * @tc.desc     Function test
241  */
242 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0200, Function | MediumTest | Level2)
243 {
244     AccessToken token;
245     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
246         return;
247     }
248     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
249     InitDialInfo(
250         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
251     int32_t callId = INVALID_NEGATIVE_ID;
252     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
253 }
254 
255 /**
256  * @tc.number   Telephony_CallManager_HangUpCall_0300  to do ...
257  * @tc.name     test ring disconnect call after DialCall without permission
258  * @tc.desc     Function test
259  */
260 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0300, Function | MediumTest | Level2)
261 {
262     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
263         return;
264     }
265     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
266     InitDialInfo(
267         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
268     int32_t callId = INVALID_NEGATIVE_ID;
269     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
270 }
271 
272 /**
273  * @tc.number   Telephony_CallManager_HangUpCall_0400  to do ...
274  * @tc.name     test ring disconnect call after DialCall
275  * @tc.desc     Function test
276  */
277 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0400, Function | MediumTest | Level2)
278 {
279     AccessToken token;
280     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
281         return;
282     }
283     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
284     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
285     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->HangUpCall(), RETURN_VALUE_IS_ZERO);
286 }
287 
288 /******************************************* Test GetCallState() *********************************************/
289 /**
290  * @tc.number   Telephony_CallManager_GetCallState_0100
291  * @tc.name     test GetCallState() without call
292  * @tc.desc     Function test
293  */
294 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0100, Function | MediumTest | Level1)
295 {
296     AccessToken token;
297     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
298         return;
299     }
300     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
301     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE);
302 }
303 
304 /**
305  * @tc.number   Telephony_CallManager_GetCallState_0200 to do ...
306  * @tc.name     test GetCallState() after call
307  *              wait for the correct status of the callback to execute correctly
308  * @tc.desc     Function test
309  */
310 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0200, Function | MediumTest | Level1)
311 {
312     AccessToken token;
313     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
314         return;
315     }
316     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
317     InitDialInfo(
318         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
319     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE);
320 }
321 
322 /**
323  * @tc.number   Telephony_CallManager_GetCallState_0300
324  * @tc.name     test GetCallState()
325  * @tc.desc     Function test
326  */
327 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0300, Function | MediumTest | Level1)
328 {
329     AccessToken token;
330     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
331         return;
332     }
333     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
334     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
335     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->GetCallState(), TELEPHONY_SUCCESS);
336 }
337 
338 /**************************** Test ReportAudioDeviceInfo() ****************************/
339 /**
340  * @tc.number   Telephony_CallManager_ReportAudioDeviceInfo_0100
341  * @tc.name     test report audio device info
342  * @tc.desc     Function test
343  */
344 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportAudioDeviceInfo_0100, Function | MediumTest | Level3)
345 {
346     AccessToken token;
347     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
348         return;
349     }
350     std::string phoneNumber = "10086";
351     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
352         HangUpCall();
353     }
354     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
355     EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_), RETURN_VALUE_IS_ZERO);
356     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS);
357     EXPECT_GE(CallManagerGtest::clientPtr_->ReportAudioDeviceInfo(), RETURN_VALUE_IS_ZERO);
358     sleep(1);
359     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
360         HangUpCall();
361     }
362 }
363 
364 /**
365  * @tc.number   Telephony_CallManager_ReportAudioDeviceInfo_0200
366  * @tc.name     test report audio device info without active call
367  * @tc.desc     Function test
368  */
369 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportAudioDeviceInfo_0200, Function | MediumTest | Level3)
370 {
371     AccessToken token;
372     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
373         return;
374     }
375     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
376         HangUpCall();
377     }
378     EXPECT_GE(CallManagerGtest::clientPtr_->ReportAudioDeviceInfo(), RETURN_VALUE_IS_ZERO);
379 }
380 
381 /**
382  * @tc.number   Telephony_CallManager_ReportAudioDeviceInfo_0300
383  * @tc.name     test report audio device info without permission
384  * @tc.desc     Function test
385  */
386 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportAudioDeviceInfo_0300, Function | MediumTest | Level3)
387 {
388     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
389         return;
390     }
391     EXPECT_NE(CallManagerGtest::clientPtr_->ReportAudioDeviceInfo(), RETURN_VALUE_IS_ZERO);
392 }
393 
394 /******************************************* Test HoldCall() *********************************************/
395 /**
396  * @tc.number   Telephony_CallManager_HoldCall_0100
397  * @tc.name     Hold calls for non-existent call ID
398  * @tc.desc     Function test
399  */
400 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0100, Function | MediumTest | Level2)
401 {
402     AccessToken token;
403     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
404         return;
405     }
406     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
407     int32_t callId = INVALID_NEGATIVE_ID;
408     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
409 }
410 
411 /**
412  * @tc.number   Telephony_CallManager_HoldCall_0200 to do ...
413  * @tc.name     coming call test hold call, return non 0
414  *              wait for the correct status of the callback to execute correctly
415  * @tc.desc     Function test
416  */
417 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0200, Function | MediumTest | Level2)
418 {
419     AccessToken token;
420     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
421         return;
422     }
423     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
424     InitDialInfo(
425         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
426     int32_t callId = INVALID_NEGATIVE_ID;
427     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
428 }
429 
430 /**
431  * @tc.number   Telephony_CallManager_HoldCall_0300 to do ...
432  * @tc.name     coming call test hold call without permission
433  * @tc.desc     Function test
434  */
435 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0300, Function | MediumTest | Level2)
436 {
437     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
438         return;
439     }
440     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
441     InitDialInfo(
442         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
443     int32_t callId = INVALID_NEGATIVE_ID;
444     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
445 }
446 
447 /**
448  * @tc.number   Telephony_CallManager_HoldCall_0400
449  * @tc.name     Hold calls for non-existent call ID
450  * @tc.desc     Function test
451  */
452 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0400, Function | MediumTest | Level2)
453 {
454     AccessToken token;
455     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
456         return;
457     }
458     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
459     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
460     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->HoldCall(), RETURN_VALUE_IS_ZERO);
461 }
462 
463 /******************************************* Test UnHoldCall() *********************************************/
464 /**
465  * @tc.number   Telephony_CallManager_UnHoldCall_0100
466  * @tc.name     Replies calls to a call ID that does not exist, return non 0
467  * @tc.desc     Function test
468  */
469 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0100, Function | MediumTest | Level2)
470 {
471     AccessToken token;
472     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
473         return;
474     }
475     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
476     int32_t callId = INVALID_NEGATIVE_ID;
477     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
478 }
479 
480 /**
481  * @tc.number   Telephony_CallManager_UnHoldCall_0200 to do ...
482  * @tc.name     Passing in the suspended call ID, test UnHoldCall() return non 0
483  *              wait for the correct status of the callback to execute correctly
484  * @tc.desc     Function test
485  */
486 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0200, Function | MediumTest | Level2)
487 {
488     AccessToken token;
489     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
490         return;
491     }
492     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
493     InitDialInfo(
494         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
495     int32_t callId = INVALID_NEGATIVE_ID;
496     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
497 }
498 
499 /**
500  * @tc.number   Telephony_CallManager_UnHoldCall_0300
501  * @tc.name     Replies calls to a call ID that does not exist without permission
502  * @tc.desc     Function test
503  */
504 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0300, Function | MediumTest | Level2)
505 {
506     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
507         return;
508     }
509     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
510     int32_t callId = INVALID_NEGATIVE_ID;
511     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
512 }
513 
514 /**
515  * @tc.number   Telephony_CallManager_UnHoldCall_0400
516  * @tc.name     Replies calls to a call ID that does not exist, return non 0
517  * @tc.desc     Function test
518  */
519 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0400, Function | MediumTest | Level2)
520 {
521     AccessToken token;
522     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
523         return;
524     }
525     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
526     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
527     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->UnHoldCall(), RETURN_VALUE_IS_ZERO);
528 }
529 
530 /******************************************* Test SwitchCall() *********************************************/
531 /**
532  * @tc.number   Telephony_CallManager_SwitchCall_0100
533  * @tc.name     Test returns 0 after switching call
534  * @tc.desc     Function test
535  */
536 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0100, Function | MediumTest | Level2)
537 {
538     AccessToken token;
539     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
540         return;
541     }
542     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
543     int32_t callId = INVALID_NEGATIVE_ID;
544     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
545 }
546 
547 /**
548  * @tc.number   Telephony_CallManager_SwitchCall_0200
549  * @tc.name     Test returns 0 after switching call without permission
550  * @tc.desc     Function test
551  */
552 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0200, Function | MediumTest | Level2)
553 {
554     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
555         return;
556     }
557     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
558     int32_t callId = INVALID_NEGATIVE_ID;
559     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
560 }
561 
562 /**
563  * @tc.number   Telephony_CallManager_SwitchCall_0300
564  * @tc.name     Test returns 0 after switching call
565  * @tc.desc     Function test
566  */
567 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0300, Function | MediumTest | Level2)
568 {
569     AccessToken token;
570     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
571         return;
572     }
573     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
574     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
575     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->SwitchCall(), RETURN_VALUE_IS_ZERO);
576 }
577 
578 /**
579  * @tc.number   Telephony_CallManager_SwitchCall_0400
580  * @tc.name     Test returns 0 after switching call, and DialCall(), return true
581  *              wait for the correct status of the callback to execute correctly
582  * @tc.desc     Function test
583  */
584 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0400, Function | MediumTest | Level2)
585 {
586     AccessToken token;
587     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
588         return;
589     }
590 
591     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
592         HangUpCall();
593     }
594     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
595     std::string phoneNumber = "44444444444";
596     int32_t callId = INVALID_NEGATIVE_ID;
597     InitDialInfo(
598         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
599     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
600     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
601     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS);
602     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
603     sleep(WAIT_TIME);
604     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
605         HangUpCall();
606     }
607 }
608 
609 /********************************************* Test HasCall() ***********************************************/
610 /**
611  * @tc.number   Telephony_CallManager_HasCall_0100
612  * @tc.name     in CALL_STATE_IDLE status, than test Hascall(), return false
613  * @tc.desc     Function test
614  */
615 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0100, Function | MediumTest | Level2)
616 {
617     AccessToken token;
618     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
619         return;
620     }
621     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
622         HangUpCall();
623     }
624     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
625     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
626     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
627     ASSERT_EQ(callState, idleState);
628     EXPECT_EQ(CallManagerGtest::clientPtr_->HasCall(), false);
629 }
630 
631 /**
632  * @tc.number   Telephony_CallManager_HasCall_0200 to do ...
633  * @tc.name     The wrong number is not on call, return false
634  * @tc.desc     Function test
635  */
636 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0200, Function | MediumTest | Level1)
637 {
638     AccessToken token;
639     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
640         return;
641     }
642 
643     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
644     std::string phoneNumber = "";
645     InitDialInfo(
646         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
647     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
648     EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
649     bool isRet = CallManagerGtest::clientPtr_->HasCall();
650     EXPECT_NE(isRet, true);
651 }
652 
653 /**
654  * @tc.number   Telephony_CallManager_HasCall_0300 to do ...
655  * @tc.name     Free time test Hascall(), return false
656  * @tc.desc     Function test
657  */
658 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0300, Function | MediumTest | Level1)
659 {
660     AccessToken token;
661     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
662         return;
663     }
664     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
665     bool isRet = CallManagerGtest::clientPtr_->HasCall();
666     EXPECT_NE(isRet, true);
667 }
668 
669 /**
670  * @tc.number   Telephony_CallManager_HasCall_0400
671  * @tc.name     in CALL_STATE_IDLE status, than test Hascall(), return false
672  * @tc.desc     Function test
673  */
674 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0400, Function | MediumTest | Level2)
675 {
676     AccessToken token;
677     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
678         return;
679     }
680     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
681     ASSERT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE);
682     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
683     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->HasCall(), false);
684 }
685 
686 /********************************* Test IsNewCallAllowed() ***************************************/
687 /**
688  * @tc.number   Telephony_CallManager_IsNewCallAllowed_0100
689  * @tc.name     The call failed after making a call without the card
690  * @tc.desc     Function test
691  */
692 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0100, Function | MediumTest | Level1)
693 {
694     AccessToken token;
695     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
696         return;
697     }
698     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
699         HangUpCall();
700     }
701     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
702     std::string phoneNumber = "55555555555";
703     InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
704         (int32_t)DialType::DIAL_CARRIER_TYPE);
705     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
706     ASSERT_EQ(ret, RETURN_VALUE_IS_ZERO);
707     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS);
708     bool enabled = false;
709     EXPECT_EQ(CallManagerGtest::clientPtr_->IsNewCallAllowed(enabled), TELEPHONY_SUCCESS);
710     EXPECT_EQ(enabled, false);
711     sleep(WAIT_TIME);
712     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
713         HangUpCall();
714     }
715 }
716 
717 /**
718  * @tc.number   Telephony_CallManager_IsNewCallAllowed_0200
719  * @tc.name     The call failed after making a call without the card
720  * @tc.desc     Function test
721  */
722 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0200, Function | MediumTest | Level1)
723 {
724     AccessToken token;
725     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
726         return;
727     }
728     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
729         HangUpCall();
730     }
731     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
732     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
733     bool enabled = false;
734     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->IsNewCallAllowed(enabled), TELEPHONY_SUCCESS);
735     EXPECT_EQ(enabled, true);
736 }
737 
738 /********************************************* Test IsRinging() ***********************************************/
739 /**
740  * @tc.number   Telephony_CallManager_IsRinging_0100
741  * @tc.name     There is no call, return true
742  * @tc.desc     Function test
743  */
744 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0100, Function | MediumTest | Level1)
745 {
746     AccessToken token;
747     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
748         return;
749     }
750     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
751     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
752     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
753     ASSERT_EQ(callState, idleState);
754     bool enabled = false;
755     EXPECT_EQ(CallManagerGtest::clientPtr_->IsRinging(enabled), TELEPHONY_SUCCESS);
756     EXPECT_NE(enabled, true);
757 }
758 
759 /**
760  * @tc.number   Telephony_CallManager_IsRinging_0200
761  * @tc.name     There is no call, return true
762  * @tc.desc     Function test
763  */
764 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0200, Function | MediumTest | Level1)
765 {
766     AccessToken token;
767     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
768         return;
769     }
770     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
771     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
772     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
773     ASSERT_EQ(callState, idleState);
774     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
775     bool enabled = false;
776     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->IsRinging(enabled), TELEPHONY_SUCCESS);
777     EXPECT_NE(enabled, true);
778 }
779 
780 /***************************************** Test CombineConference() ********************************************/
781 /**
782  * @tc.number   Telephony_CallManager_CombineConference_0100
783  * @tc.name     Import callId "@&%¥", test CombineConference(), return non 0
784  * @tc.desc     Function test
785  */
786 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0100, Function | MediumTest | Level2)
787 {
788     AccessToken token;
789     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
790         return;
791     }
792     int32_t callId = INVALID_NEGATIVE_ID;
793     EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO);
794 }
795 
796 /**
797  * @tc.number   Telephony_CallManager_CombineConference_0200
798  * @tc.name     Import callId "100", test CombineConference(), return non 0
799  * @tc.desc     Function test
800  */
801 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0200, Function | MediumTest | Level2)
802 {
803     AccessToken token;
804     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
805         return;
806     }
807     int32_t callId = INVALID_POSITIVE_ID;
808     EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO);
809 }
810 
811 /**
812  * @tc.number   Telephony_CallManager_CombineConference_0300
813  * @tc.name     Import callId "@&%¥", test CombineConference(), return non 0
814  * @tc.desc     Function test
815  */
816 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0300, Function | MediumTest | Level2)
817 {
818     AccessToken token;
819     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
820         return;
821     }
822     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
823     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->CombineConference(), RETURN_VALUE_IS_ZERO);
824 }
825 
826 /**
827  * @tc.number   Telephony_CallManager_CombineConference_0400
828  * @tc.name     Import callId "@&%¥", test CombineConference(), return non 0
829  * @tc.desc     Function test
830  */
831 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0400, Function | MediumTest | Level2)
832 {
833     AccessToken token;
834     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
835         return;
836     }
837 
838     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
839     std::string phoneNumber = "10086";
840     InitDialInfo(
841         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
842     EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_), RETURN_VALUE_IS_ZERO);
843     if (CallInfoManager::HasActiveStatus()) {
844         EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(g_newCallId), RETURN_VALUE_IS_ZERO);
845     }
846     sleep(WAIT_TIME);
847     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
848         HangUpCall();
849     }
850 }
851 
852 /***************************************** Test SeparateConference() ********************************************/
853 /**
854  * @tc.number   Telephony_CallManager_SeparateConference_0100
855  * @tc.name     Import callId " -100", test SeparateConference(), return non 0
856  * @tc.desc     Function test
857  */
858 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0100, Function | MediumTest | Level2)
859 {
860     AccessToken token;
861     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
862         return;
863     }
864     int32_t callId = INVALID_NEGATIVE_ID;
865     EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO);
866 }
867 
868 /**
869  * @tc.number   Telephony_CallManager_SeparateConference_0200
870  * @tc.name     Import callId "100", test SeparateConference(), return non 0
871  * @tc.desc     Function test
872  */
873 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0200, Function | MediumTest | Level2)
874 {
875     AccessToken token;
876     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
877         return;
878     }
879     int32_t callId = INVALID_POSITIVE_ID;
880     EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO);
881 }
882 
883 /**
884  * @tc.number   Telephony_CallManager_SeparateConference_0300
885  * @tc.name     Import callId " -100", test SeparateConference(), return non 0
886  * @tc.desc     Function test
887  */
888 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0300, Function | MediumTest | Level2)
889 {
890     AccessToken token;
891     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
892         return;
893     }
894     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
895     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->SeparateConference(), RETURN_VALUE_IS_ZERO);
896 }
897 
898 /**
899  * @tc.number   Telephony_CallManager_SeparateConference_0400
900  * @tc.name     Import callId normal, test SeparateConference(), return non 0
901  * @tc.desc     Function test
902  */
903 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0400, Function | MediumTest | Level2)
904 {
905     AccessToken token;
906     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
907         return;
908     }
909 
910     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
911     InitDialInfo(
912         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
913     EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16("10086"), dialInfo_), RETURN_VALUE_IS_ZERO);
914     if (CallInfoManager::HasActiveStatus()) {
915         EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(g_newCallId), RETURN_VALUE_IS_ZERO);
916     }
917     sleep(WAIT_TIME);
918     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
919         HangUpCall();
920     }
921 }
922 
923 /***************************************** Test KickOutFromConference() ********************************************/
924 /**
925  * @tc.number   Telephony_CallManager_KickOutFromConference_0100
926  * @tc.name     Import callId " -100", test KickOutFromConference(), return non 0
927  * @tc.desc     Function test
928  */
929 HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0100, Function | MediumTest | Level2)
930 {
931     AccessToken token;
932     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
933         return;
934     }
935     int32_t callId = INVALID_NEGATIVE_ID;
936     EXPECT_NE(CallManagerGtest::clientPtr_->KickOutFromConference(callId), RETURN_VALUE_IS_ZERO);
937 }
938 
939 /**
940  * @tc.number   Telephony_CallManager_KickOutFromConference_0200
941  * @tc.name     Import callId "100", test KickOutFromConference(), return non 0
942  * @tc.desc     Function test
943  */
944 HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0200, Function | MediumTest | Level2)
945 {
946     AccessToken token;
947     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
948         return;
949     }
950     int32_t callId = INVALID_POSITIVE_ID;
951     EXPECT_NE(CallManagerGtest::clientPtr_->KickOutFromConference(callId), RETURN_VALUE_IS_ZERO);
952 }
953 
954 /**
955  * @tc.number   Telephony_CallManager_KickOutFromConference_0300
956  * @tc.name     Import callId " -100", test KickOutFromConference(), return non 0
957  * @tc.desc     Function test
958  */
959 HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0300, Function | MediumTest | Level2)
960 {
961     AccessToken token;
962     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
963         return;
964     }
965     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
966     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->KickOutFromConference(), RETURN_VALUE_IS_ZERO);
967 }
968 } // namespace Telephony
969 } // namespace OHOS
970