• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "call_manager_gtest.h"
17 
18 #include <cstring>
19 #include <gtest/gtest.h>
20 #include <string>
21 
22 #include "bluetooth_hfp_ag.h"
23 #include "call_manager_service.h"
24 #include "telephony_types.h"
25 
26 using namespace OHOS::Bluetooth;
27 namespace OHOS {
28 namespace Telephony {
29 using namespace testing::ext;
30 #ifndef TEL_TEST_UNSUPPORT
31 constexpr int16_t SIM1_SLOTID = 0;
32 constexpr int16_t SIM2_SLOTID = 1;
33 constexpr int16_t SIM1_SLOTID_NO_CARD = 0;
34 constexpr int16_t RETURN_VALUE_IS_ZERO = 0;
35 constexpr int16_t INVALID_NEGATIVE_ID = -100;
36 constexpr int16_t INVALID_POSITIVE_ID = 100;
37 #ifndef CALL_MANAGER_IMS_LITE_UNSUPPORT
38 constexpr int16_t CAMERA_ROTATION_90 = 90;
39 constexpr int16_t CAMERA_ROTATION_ERROR = 50;
40 #endif // CALL_MANAGER_IMS_LITE_UNSUPPORT
41 #endif // TEL_TEST_UNSUPPORT
42 constexpr int16_t SLEEP_1000_MS = 1000;
43 constexpr int BASE_TIME_MS = 1000;
44 constexpr int SLEEP_TIME_MS = 50;
45 constexpr int MAX_LIMIT_TIME = 18000;
46 constexpr int INVALID_DIAL_TYPE = 3;
47 const std::string PHONE_NUMBER = "xxxxx";
48 
CallDetailsChange(const CallAttributeInfo & info)49 int32_t CallInfoManager::CallDetailsChange(const CallAttributeInfo &info)
50 {
51     TELEPHONY_LOGI("CallDetailsChange Start");
52     std::lock_guard<std::mutex> lock(mutex_);
53     updateCallInfo_ = info;
54     if (callIdSet_.find(updateCallInfo_.callId) == callIdSet_.end()) {
55         TELEPHONY_LOGI("CallDetailsChange new call");
56         callIdSet_.insert(updateCallInfo_.callId);
57         newCallId_ = updateCallInfo_.callId;
58         newCallState_ = (int32_t)updateCallInfo_.callState;
59         std::unordered_set<int32_t> newSet;
60         newSet.clear();
61         g_callStateMap.insert(std::pair<int32_t, std::unordered_set<int32_t>>(newCallId_, newSet));
62     }
63     g_callStateMap[updateCallInfo_.callId].insert((int32_t)updateCallInfo_.callState);
64     return TELEPHONY_SUCCESS;
65 }
66 
HasActiveStatus()67 bool CallInfoManager::HasActiveStatus()
68 {
69     TELEPHONY_LOGI("Waiting for activation !");
70     int sumUseTime = 0;
71     int slipMs = SLEEP_TIME_MS;
72     do {
73         if (!(HasState(newCallId_, static_cast<int32_t>(TelCallState::CALL_STATUS_ACTIVE)))) {
74             usleep(slipMs * BASE_TIME_MS);
75             sumUseTime += slipMs;
76         } else {
77             TELEPHONY_LOGI("===========wait %d ms callStatus:%d==============", sumUseTime, newCallState_);
78             return true;
79         }
80     } while (sumUseTime < MAX_LIMIT_TIME);
81     TELEPHONY_LOGI("===========wait %d ms callStatus:%d=====not active=========", sumUseTime, newCallState_);
82     return false;
83 }
84 
HasState(int callId,int32_t callState)85 bool CallInfoManager::HasState(int callId, int32_t callState)
86 {
87     if (g_callStateMap.find(callId) == g_callStateMap.end()) {
88         return false;
89     }
90     if (g_callStateMap[callId].find(callState) == g_callStateMap[callId].end()) {
91         return false;
92     }
93     return true;
94 }
95 
CallEventChange(const CallEventInfo & info)96 int32_t CallInfoManager::CallEventChange(const CallEventInfo &info)
97 {
98     return TELEPHONY_SUCCESS;
99 }
100 
Init()101 void CallInfoManager::Init()
102 {
103     newCallId_ = -1;
104     updateCallInfo_.speakerphoneOn = -1;
105     updateCallInfo_.startTime = -1;
106     updateCallInfo_.isEcc = -1;
107     updateCallInfo_.accountId = -1;
108     updateCallInfo_.callType = CallType::TYPE_CS;
109     updateCallInfo_.callId = -1;
110     updateCallInfo_.callState = TelCallState::CALL_STATUS_IDLE;
111     updateCallInfo_.videoState = VideoStateType::TYPE_VOICE;
112 }
113 
LockCallId(bool eq,int32_t targetId,int32_t slipMs,int32_t timeoutMs)114 void CallInfoManager::LockCallId(bool eq, int32_t targetId, int32_t slipMs, int32_t timeoutMs)
115 {
116     int32_t useTimeMs = 0;
117     std::cout << "wait for a few seconds......" << std::endl;
118     while ((updateCallInfo_.callId != targetId) && (useTimeMs < timeoutMs)) {
119         usleep(slipMs * SLEEP_1000_MS);
120         useTimeMs += slipMs;
121     }
122     std::cout << "\n===========wait " << useTimeMs << " ms target:" << updateCallInfo_.callId << std::endl;
123     if (eq) {
124         EXPECT_EQ(updateCallInfo_.callId, targetId);
125     } else {
126         EXPECT_NE(updateCallInfo_.callId, targetId);
127     }
128 }
129 
LockCallState(bool eq,int32_t targetState,int32_t slipMs,int32_t timeoutMs)130 void CallInfoManager::LockCallState(bool eq, int32_t targetState, int32_t slipMs, int32_t timeoutMs)
131 {
132     if (CallManagerGtest::clientPtr_->GetCallState() == targetState) {
133         return;
134     }
135     int32_t usedTimeMs = 0;
136     std::cout << "wait for a few seconds......" << std::endl;
137     while ((CallManagerGtest::clientPtr_->GetCallState() != targetState) && (usedTimeMs < timeoutMs)) {
138         usleep(slipMs * SLEEP_1000_MS);
139         usedTimeMs += slipMs;
140     }
141     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
142     std::cout << "waited " << usedTimeMs << " seconds" << std::endl;
143     std::cout << "target call state:" << targetState << std::endl;
144     EXPECT_EQ(callState, targetState);
145 }
146 
HangUpCall()147 void CallManagerGtest::HangUpCall()
148 {
149     clientPtr_->HangUpCall(newCallId_);
150     int useTimeMs = 0;
151     while ((CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED) != true) &&
152         (useTimeMs < SLEEP_12000_MS)) {
153         usleep((SLEEP_50_MS * SLEEP_1000_MS));
154         useTimeMs += SLEEP_50_MS;
155     }
156     TELEPHONY_LOGI("===========wait %d ms target:%d==============", useTimeMs,
157         CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED));
158 }
159 
160 #ifndef TEL_TEST_UNSUPPORT
161 /********************************************* Test DialCall()***********************************************/
162 /**
163  * @tc.number   Telephony_CallManager_DialCall_0100
164  * @tc.name     make a normal phone call with card1, TYPE_VOICE
165  * @tc.desc     Function test
166  * @tc.require: I5P2WO
167  */
168 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_0100, Function | MediumTest | Level2)
169 {
170     AccessToken token;
171     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
172         return;
173     }
174     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
175     std::string phoneNumber = "00000000000";
176     if (HasSimCard(SIM1_SLOTID)) {
177         InitDialInfo(
178             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
179         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
180         EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
181     }
182 
183     if (HasSimCard(SIM2_SLOTID)) {
184         InitDialInfo(
185             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
186         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
187         EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
188     }
189 }
190 
191 /**
192  * @tc.number   Telephony_CallManager_DialCall_0200
193  * @tc.name     make a normal phone call with null telephone numbers,
194  *              wait for the correct status of the callback to execute correctly
195  * @tc.desc     Function test
196  * @tc.require: I5P2WO
197  */
198 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_0200, Function | MediumTest | Level2)
199 {
200     AccessToken token;
201     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
202         return;
203     }
204     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
205     std::string phoneNumber = "";
206     if (HasSimCard(SIM1_SLOTID)) {
207         InitDialInfo(
208             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
209         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
210         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
211     }
212     if (HasSimCard(SIM2_SLOTID)) {
213         InitDialInfo(
214             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
215         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
216         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
217     }
218 }
219 
220 /**
221  * @tc.number   Telephony_CallManager_DialCall_0300
222  * @tc.name     make a normal phone call with telephone numbers is negative number
223  * @tc.desc     Function test
224  * @tc.require: I5P2WO
225  */
226 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_0300, Function | MediumTest | Level3)
227 {
228     AccessToken token;
229     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
230         return;
231     }
232     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
233     std::string phoneNumber = "-12354785268";
234     if (HasSimCard(SIM1_SLOTID)) {
235         InitDialInfo(
236             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
237         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
238         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
239     }
240     if (HasSimCard(SIM2_SLOTID)) {
241         InitDialInfo(
242             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
243         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
244         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
245     }
246 }
247 
248 /**
249  * @tc.number   Telephony_CallManager_DialCall_0400
250  * @tc.name     make a normal phone call with telephone numbers is too long
251  * @tc.desc     Function test
252  * @tc.require: I5P2WO
253  */
254 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_0400, Function | MediumTest | Level3)
255 {
256     AccessToken token;
257     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
258         return;
259     }
260     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
261     std::string phoneNumber = "19119080646435437102938190283912471651865810514786470168818468143768714648";
262     if (HasSimCard(SIM1_SLOTID)) {
263         InitDialInfo(
264             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
265         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
266         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
267     }
268 
269     if (HasSimCard(SIM2_SLOTID)) {
270         InitDialInfo(
271             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
272         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
273         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
274     }
275 }
276 
277 /**
278  * @tc.number   Telephony_CallManager_DialCall_0500
279  * @tc.name     If an invalid number is dialed, the DialCall() interface succeeds, but callId is not generated
280  * @tc.desc     Function test
281  * @tc.require: I5P2WO
282  */
283 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_0500, Function | MediumTest | Level3)
284 {
285     AccessToken token;
286     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
287         return;
288     }
289     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
290     std::string phoneNumber = "19!@#$%^&*:";
291     if (HasSimCard(SIM1_SLOTID)) {
292         InitDialInfo(
293             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
294         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
295         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
296     }
297     if (HasSimCard(SIM2_SLOTID)) {
298         InitDialInfo(
299             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
300         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
301         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
302     }
303 }
304 
305 /**
306  * @tc.number   Telephony_CallManager_DialCall_1000 to do ...
307  * @tc.name     make a normal phone call with card1, TYPE_VOICE, import phonynumber 10086
308  * @tc.desc     Function test
309  */
310 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1000, Function | MediumTest | Level0)
311 {
312     AccessToken token;
313     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
314         return;
315     }
316     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
317     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
318     if (HasSimCard(SIM1_SLOTID)) {
319         InitDialInfo(
320             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
321         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
322         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
323     }
324     if (HasSimCard(SIM2_SLOTID)) {
325         InitDialInfo(
326             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
327         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
328         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
329     }
330 }
331 
332 /**
333  * @tc.number   Telephony_CallManager_DialCall_1100
334  * @tc.name     make a normal phone call with card1, TYPE_VOICE, slot id was invalid
335  * @tc.desc     Function test
336  * @tc.require: I5P2WA
337  */
338 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1100, Function | MediumTest | Level0)
339 {
340     AccessToken token;
341     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
342         return;
343     }
344     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
345     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
346     InitDialInfo(INVALID_SLOT_ID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
347         (int32_t)DialType::DIAL_CARRIER_TYPE);
348     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
349     EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
350 }
351 
352 /**
353  * @tc.number   Telephony_CallManager_DialCall_1200
354  * @tc.name     make a normal phone call with card1, TYPE_VOICE, slot id out of count
355  * @tc.desc     Function test
356  * @tc.require: I5P2WA
357  */
358 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1200, Function | MediumTest | Level0)
359 {
360     AccessToken token;
361     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
362         return;
363     }
364     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
365     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
366     int32_t slotId = SIM_SLOT_COUNT;        // out of the count
367     InitDialInfo(slotId, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
368         (int32_t)DialType::DIAL_CARRIER_TYPE);
369     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
370     EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
371 }
372 
373 /**
374  * @tc.number   Telephony_CallManager_DialCall_1300
375  * @tc.name     make a normal phone call with card1, TYPE_VOICE, video state was invalid
376  * @tc.desc     Function test
377  * @tc.require: I5P2WA
378  */
379 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1300, Function | MediumTest | Level0)
380 {
381     AccessToken token;
382     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
383         return;
384     }
385     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
386     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
387     if (HasSimCard(SIM1_SLOTID)) {
388         InitDialInfo(
389             SIM1_SLOTID, INVALID_VIDEO_STATE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
390         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
391         EXPECT_EQ(ret, CALL_ERR_INVALID_VIDEO_STATE);
392     }
393     if (HasSimCard(SIM2_SLOTID)) {
394         InitDialInfo(
395             SIM2_SLOTID, INVALID_VIDEO_STATE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
396         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
397         EXPECT_EQ(ret, CALL_ERR_INVALID_VIDEO_STATE);
398     }
399 }
400 
401 /**
402  * @tc.number   Telephony_CallManager_DialCall_1400
403  * @tc.name     make a normal phone call without permission
404  * @tc.desc     Function test
405  */
406 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1400, Function | MediumTest | Level1)
407 {
408     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
409         return;
410     }
411     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
412     std::string phoneNumber = "00000000000";
413     if (HasSimCard(SIM1_SLOTID)) {
414         InitDialInfo(
415             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
416         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
417         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
418     }
419 
420     if (HasSimCard(SIM2_SLOTID)) {
421         InitDialInfo(
422             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
423         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
424         EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
425     }
426 }
427 
428 /**
429  * @tc.number   Telephony_CallManager_DialCall_1500
430  * @tc.name     make a normal phone call with error dial type
431  * @tc.desc     Function test
432  */
433 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1500, Function | MediumTest | Level1)
434 {
435     AccessToken token;
436     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
437         return;
438     }
439     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
440     std::string phoneNumber = "00000000000";
441     if (HasSimCard(SIM1_SLOTID)) {
442         InitDialInfo(
443             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, INVALID_DIAL_TYPE);
444         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
445         EXPECT_EQ(ret, CALL_ERR_UNKNOW_DIAL_TYPE);
446     }
447 
448     if (HasSimCard(SIM2_SLOTID)) {
449         InitDialInfo(
450             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, INVALID_DIAL_TYPE);
451         int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
452         EXPECT_EQ(ret, CALL_ERR_UNKNOW_DIAL_TYPE);
453     }
454 }
455 
456 /**
457  * @tc.number   Telephony_CallManager_DialCall_1600
458  * @tc.name     make a normal phone call with card1, TYPE_VOICE, video state was invalid
459  * @tc.desc     Function test
460  */
461 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1600, Function | MediumTest | Level0)
462 {
463     AccessToken token;
464     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
465         return;
466     }
467     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
468     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
469     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
470     if (HasSimCard(SIM1_SLOTID)) {
471         InitDialInfo(
472             SIM1_SLOTID, INVALID_VIDEO_STATE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
473         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
474         EXPECT_EQ(ret, CALL_ERR_INVALID_VIDEO_STATE);
475     }
476     if (HasSimCard(SIM2_SLOTID)) {
477         InitDialInfo(
478             SIM2_SLOTID, INVALID_VIDEO_STATE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
479         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
480         EXPECT_EQ(ret, CALL_ERR_INVALID_VIDEO_STATE);
481     }
482 }
483 
484 /**
485  * @tc.number   Telephony_CallManager_DialCall_1700
486  * @tc.name     make a normal phone call with telephone numbers is too long
487  * @tc.desc     Function test
488  */
489 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1700, Function | MediumTest | Level2)
490 {
491     AccessToken token;
492     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
493         return;
494     }
495     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
496     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
497     std::string phoneNumber =
498         "19119080646435437102938190283912471651865851478647016881846814376871464810514786470168818468143768714648";
499     if (HasSimCard(SIM1_SLOTID)) {
500         InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
501             (int32_t)DialType::DIAL_CARRIER_TYPE);
502         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
503         EXPECT_EQ(ret, TELEPHONY_ERR_ARGUMENT_INVALID);
504     }
505 
506     if (HasSimCard(SIM2_SLOTID)) {
507         InitDialInfo(SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
508             (int32_t)DialType::DIAL_CARRIER_TYPE);
509         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
510         EXPECT_EQ(ret, TELEPHONY_ERR_ARGUMENT_INVALID);
511     }
512 }
513 
514 /**
515  * @tc.number   Telephony_CallManager_DialCall_1800
516  * @tc.name     make a normal phone call with null telephone numbers,
517  *              wait for the correct status of the callback to execute correctly
518  * @tc.desc     Function test
519  */
520 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1800, Function | MediumTest | Level1)
521 {
522     AccessToken token;
523     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
524         return;
525     }
526     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
527     std::string phoneNumber = "";
528     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
529     if (HasSimCard(SIM1_SLOTID)) {
530         InitDialInfo(
531             SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
532         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
533         EXPECT_NE(ret, TELEPHONY_ERR_SUCCESS);
534     }
535     if (HasSimCard(SIM2_SLOTID)) {
536         InitDialInfo(
537             SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, DIAL_SCENE_TEST, (int32_t)DialType::DIAL_CARRIER_TYPE);
538         int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
539         EXPECT_NE(ret, TELEPHONY_ERR_SUCCESS);
540     }
541 }
542 
543 /**
544  * @tc.number   Telephony_CallManager_DialCall_1900
545  * @tc.name     make a normal phone call with card1, TYPE_VOICE, slot id out of count
546  * @tc.desc     Function test
547  */
548 HWTEST_F(CallManagerGtest, Telephony_CallManager_DialCall_1900, Function | MediumTest | Level0)
549 {
550     AccessToken token;
551     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
552         return;
553     }
554     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
555     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
556     std::string phoneNumber = PHONE_NUMBER; // OPERATOR PHONY NUMBER
557     int32_t slotId = SIM_SLOT_COUNT;        // out of the count
558     InitDialInfo(slotId, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
559         (int32_t)DialType::DIAL_CARRIER_TYPE);
560     int32_t ret = CallManagerGtest::blueToothClientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
561     EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
562 }
563 
564 /********************************************* Test AnswerCall() ***********************************************/
565 /**
566  * @tc.number   Telephony_CallManager_AnswerCall_0100
567  * @tc.name     test AnswerCall with the callId does not exist
568  * @tc.desc     Function test
569  * @tc.require: I5P2WA
570  */
571 HWTEST_F(CallManagerGtest, Telephony_CallManager_AnswerCall_0100, Function | MediumTest | Level2)
572 {
573     AccessToken token;
574     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
575         return;
576     }
577     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
578     int32_t callId = INVALID_NEGATIVE_ID;
579     int32_t videoState = (int32_t)VideoStateType::TYPE_VOICE;
580     EXPECT_NE(CallManagerGtest::clientPtr_->AnswerCall(callId, videoState), RETURN_VALUE_IS_ZERO);
581 }
582 
583 /**
584  * @tc.number   Telephony_CallManager_AnswerCall_0200
585  * @tc.name     test AnswerCall with the videoState does not exist
586  * @tc.desc     Function test
587  * @tc.require: I5P2WA
588  */
589 HWTEST_F(CallManagerGtest, Telephony_CallManager_AnswerCall_0200, Function | MediumTest | Level2)
590 {
591     AccessToken token;
592     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
593         return;
594     }
595     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
596     int32_t callId = INVALID_POSITIVE_ID;
597     int32_t videoState = INVALID_NEGATIVE_ID;
598     EXPECT_NE(CallManagerGtest::clientPtr_->AnswerCall(callId, videoState), RETURN_VALUE_IS_ZERO);
599 }
600 
601 /**
602  * @tc.number   Telephony_CallManager_AnswerCall_0300
603  * @tc.name     test AnswerCall without permission
604  * @tc.desc     Function test
605  */
606 HWTEST_F(CallManagerGtest, Telephony_CallManager_AnswerCall_0300, Function | MediumTest | Level2)
607 {
608     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
609         return;
610     }
611     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
612     int32_t callId = INVALID_POSITIVE_ID;
613     int32_t videoState = INVALID_NEGATIVE_ID;
614     EXPECT_NE(CallManagerGtest::clientPtr_->AnswerCall(callId, videoState), RETURN_VALUE_IS_ZERO);
615 }
616 
617 /**
618  * @tc.number   Telephony_CallManager_AnswerCall_0400
619  * @tc.name     test AnswerCall with the callId does not exist
620  * @tc.desc     Function test
621  */
622 HWTEST_F(CallManagerGtest, Telephony_CallManager_AnswerCall_0400, Function | MediumTest | Level2)
623 {
624     AccessToken token;
625     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
626         return;
627     }
628     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
629     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
630     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->AnswerCall(), RETURN_VALUE_IS_ZERO);
631 }
632 
633 /********************************************* Test RejectCall() ***********************************************/
634 /**
635  * @tc.number   Telephony_CallManager_RejectCall_0100
636  * @tc.name     test RejectCall with the callId does not exist
637  * @tc.desc     Function test
638  */
639 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0100, Function | MediumTest | Level2)
640 {
641     AccessToken token;
642     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
643         return;
644     }
645     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
646     int32_t callId = INVALID_NEGATIVE_ID;
647     std::u16string textMessage = Str8ToStr16("this is a test message");
648     EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO);
649 }
650 
651 /**
652  * @tc.number   Telephony_CallManager_RejectCall_0200
653  * @tc.name     test RejectCall without permission
654  * @tc.desc     Function test
655  */
656 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0200, Function | MediumTest | Level2)
657 {
658     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
659         return;
660     }
661     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
662     int32_t callId = INVALID_NEGATIVE_ID;
663     std::u16string textMessage = Str8ToStr16("this is a test message");
664     EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO);
665 }
666 
667 /**
668  * @tc.number   Telephony_CallManager_RejectCall_0300
669  * @tc.name     test RejectCall with the callId does not exist
670  * @tc.desc     Function test
671  */
672 HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0300, Function | MediumTest | Level2)
673 {
674     AccessToken token;
675     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
676         return;
677     }
678     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
679     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
680     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->RejectCall(), RETURN_VALUE_IS_ZERO);
681 }
682 
683 /******************************************* Test HangUpCall() *********************************************/
684 /**
685  * @tc.number   Telephony_CallManager_HangUpCall_0100
686  * @tc.name     test disconnect call with wrong callId
687  * @tc.desc     Function test
688  */
689 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0100, Function | MediumTest | Level2)
690 {
691     AccessToken token;
692     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
693         return;
694     }
695     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
696     int32_t callId = INVALID_NEGATIVE_ID;
697     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
698 }
699 
700 /**
701  * @tc.number   Telephony_CallManager_HangUpCall_0200  to do ...
702  * @tc.name     test ring disconnect call after DialCall,
703  *              wait for the correct status of the callback to execute correctly
704  * @tc.desc     Function test
705  */
706 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0200, Function | MediumTest | Level2)
707 {
708     AccessToken token;
709     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
710         return;
711     }
712     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
713     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
714         (int32_t)DialType::DIAL_CARRIER_TYPE);
715     int32_t callId = INVALID_NEGATIVE_ID;
716     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
717 }
718 
719 /**
720  * @tc.number   Telephony_CallManager_HangUpCall_0300  to do ...
721  * @tc.name     test ring disconnect call after DialCall without permission
722  * @tc.desc     Function test
723  */
724 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0300, Function | MediumTest | Level2)
725 {
726     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
727         return;
728     }
729     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
730     InitDialInfo(
731         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
732     int32_t callId = INVALID_NEGATIVE_ID;
733     EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO);
734 }
735 
736 /**
737  * @tc.number   Telephony_CallManager_HangUpCall_0400  to do ...
738  * @tc.name     test ring disconnect call after DialCall
739  * @tc.desc     Function test
740  */
741 HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0400, Function | MediumTest | Level2)
742 {
743     AccessToken token;
744     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
745         return;
746     }
747     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
748     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
749     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->HangUpCall(), RETURN_VALUE_IS_ZERO);
750 }
751 
752 /******************************************* Test GetCallState() *********************************************/
753 /**
754  * @tc.number   Telephony_CallManager_GetCallState_0100
755  * @tc.name     test GetCallState() without call
756  * @tc.desc     Function test
757  */
758 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0100, Function | MediumTest | Level1)
759 {
760     AccessToken token;
761     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
762         return;
763     }
764     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
765     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE);
766 }
767 
768 /**
769  * @tc.number   Telephony_CallManager_GetCallState_0200 to do ...
770  * @tc.name     test GetCallState() after call
771  *              wait for the correct status of the callback to execute correctly
772  * @tc.desc     Function test
773  */
774 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0200, Function | MediumTest | Level1)
775 {
776     AccessToken token;
777     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
778         return;
779     }
780     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
781     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
782         (int32_t)DialType::DIAL_CARRIER_TYPE);
783     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE);
784 }
785 
786 /**
787  * @tc.number   Telephony_CallManager_GetCallState_0300
788  * @tc.name     test GetCallState()
789  * @tc.desc     Function test
790  */
791 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0300, Function | MediumTest | Level1)
792 {
793     AccessToken token;
794     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
795         return;
796     }
797     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
798     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
799     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->GetCallState(), TELEPHONY_SUCCESS);
800 }
801 
802 /******************************************* Test HoldCall() *********************************************/
803 /**
804  * @tc.number   Telephony_CallManager_HoldCall_0100
805  * @tc.name     Hold calls for non-existent call ID
806  * @tc.desc     Function test
807  */
808 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0100, Function | MediumTest | Level2)
809 {
810     AccessToken token;
811     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
812         return;
813     }
814     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
815     int32_t callId = INVALID_NEGATIVE_ID;
816     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
817 }
818 
819 /**
820  * @tc.number   Telephony_CallManager_HoldCall_0200 to do ...
821  * @tc.name     coming call test hold call, return non 0
822  *              wait for the correct status of the callback to execute correctly
823  * @tc.desc     Function test
824  */
825 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0200, Function | MediumTest | Level2)
826 {
827     AccessToken token;
828     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
829         return;
830     }
831     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
832     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
833         (int32_t)DialType::DIAL_CARRIER_TYPE);
834     int32_t callId = INVALID_NEGATIVE_ID;
835     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
836 }
837 
838 /**
839  * @tc.number   Telephony_CallManager_HoldCall_0600 to do ...
840  * @tc.name     coming an active call test hold call, return 0
841  *              wait for the correct status of the callback to execute correctly
842  * @tc.desc     Function test
843  */
844 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0600, Function | MediumTest | Level0)
845 {
846     AccessToken token;
847     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
848         return;
849     }
850     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
851     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
852         (int32_t)DialType::DIAL_CARRIER_TYPE);
853     int32_t callId = INVALID_NEGATIVE_ID;
854     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
855 }
856 
857 /**
858  * @tc.number   Telephony_CallManager_HoldCall_0300 to do ...
859  * @tc.name     coming call test hold call without permission
860  * @tc.desc     Function test
861  */
862 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0300, Function | MediumTest | Level2)
863 {
864     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
865         return;
866     }
867     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
868     InitDialInfo(
869         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
870     int32_t callId = INVALID_NEGATIVE_ID;
871     EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO);
872 }
873 
874 /**
875  * @tc.number   Telephony_CallManager_HoldCall_0400
876  * @tc.name     Hold calls for non-existent call ID
877  * @tc.desc     Function test
878  */
879 HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0400, Function | MediumTest | Level2)
880 {
881     AccessToken token;
882     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
883         return;
884     }
885     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
886     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
887     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->HoldCall(), RETURN_VALUE_IS_ZERO);
888 }
889 
890 /******************************************* Test UnHoldCall() *********************************************/
891 /**
892  * @tc.number   Telephony_CallManager_UnHoldCall_0100
893  * @tc.name     Replies calls to a call ID that does not exist, return non 0
894  * @tc.desc     Function test
895  */
896 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0100, Function | MediumTest | Level2)
897 {
898     AccessToken token;
899     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
900         return;
901     }
902     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
903     int32_t callId = INVALID_NEGATIVE_ID;
904     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
905 }
906 
907 /**
908  * @tc.number   Telephony_CallManager_UnHoldCall_0200 to do ...
909  * @tc.name     Passing in the suspended call ID, test UnHoldCall() return non 0
910  *              wait for the correct status of the callback to execute correctly
911  * @tc.desc     Function test
912  */
913 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0200, Function | MediumTest | Level2)
914 {
915     AccessToken token;
916     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
917         return;
918     }
919     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
920     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
921         (int32_t)DialType::DIAL_CARRIER_TYPE);
922     int32_t callId = INVALID_NEGATIVE_ID;
923     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
924 }
925 
926 /**
927  * @tc.number   Telephony_CallManager_UnHoldCall_0600 to do ...
928  * @tc.name     coming a active call , holding the call ,and test unhold call , return 0
929  *              wait for the correct status of the callback to execute correctly
930  * @tc.desc     Function test
931  */
932 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0600, Function | MediumTest | Level0)
933 {
934     AccessToken token;
935     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
936         return;
937     }
938     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
939     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
940         (int32_t)DialType::DIAL_CARRIER_TYPE);
941     int32_t callId = INVALID_NEGATIVE_ID;
942     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
943 }
944 
945 /**
946  * @tc.number   Telephony_CallManager_UnHoldCall_0300
947  * @tc.name     Replies calls to a call ID that does not exist without permission
948  * @tc.desc     Function test
949  */
950 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0300, Function | MediumTest | Level2)
951 {
952     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
953         return;
954     }
955     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
956     int32_t callId = INVALID_NEGATIVE_ID;
957     EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO);
958 }
959 
960 /**
961  * @tc.number   Telephony_CallManager_UnHoldCall_0400
962  * @tc.name     Replies calls to a call ID that does not exist, return non 0
963  * @tc.desc     Function test
964  */
965 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0400, Function | MediumTest | Level2)
966 {
967     AccessToken token;
968     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
969         return;
970     }
971     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
972     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
973     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->UnHoldCall(), RETURN_VALUE_IS_ZERO);
974 }
975 
976 /******************************************* Test SwitchCall() *********************************************/
977 /**
978  * @tc.number   Telephony_CallManager_SwitchCall_0100
979  * @tc.name     Test returns 0 after switching call
980  * @tc.desc     Function test
981  */
982 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0100, Function | MediumTest | Level2)
983 {
984     AccessToken token;
985     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
986         return;
987     }
988     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
989     int32_t callId = INVALID_NEGATIVE_ID;
990     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
991 }
992 
993 /**
994  * @tc.number   Telephony_CallManager_SwitchCall_0200
995  * @tc.name     Test returns 0 after switching call without permission
996  * @tc.desc     Function test
997  */
998 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0200, Function | MediumTest | Level2)
999 {
1000     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1001         return;
1002     }
1003     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1004     int32_t callId = INVALID_NEGATIVE_ID;
1005     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
1006 }
1007 
1008 /**
1009  * @tc.number   Telephony_CallManager_SwitchCall_0300
1010  * @tc.name     Test returns 0 after switching call
1011  * @tc.desc     Function test
1012  */
1013 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0300, Function | MediumTest | Level2)
1014 {
1015     AccessToken token;
1016     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1017         return;
1018     }
1019     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1020     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1021     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->SwitchCall(), RETURN_VALUE_IS_ZERO);
1022 }
1023 
1024 /**
1025  * @tc.number   Telephony_CallManager_SwitchCall_0400
1026  * @tc.name     Test returns 0 after switching call, and DialCall(), return true
1027  *              wait for the correct status of the callback to execute correctly
1028  * @tc.desc     Function test
1029  */
1030 HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0400, Function | MediumTest | Level2)
1031 {
1032     AccessToken token;
1033     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1034         return;
1035     }
1036 
1037     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1038     std::string phoneNumber = "00000000000";
1039     int32_t callId = INVALID_NEGATIVE_ID;
1040     InitDialInfo(
1041         0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE);
1042     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
1043     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
1044     EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO);
1045 }
1046 
1047 /********************************************* Test HasCall() ***********************************************/
1048 /**
1049  * @tc.number   Telephony_CallManager_HasCall_0100
1050  * @tc.name     in CALL_STATE_IDLE status, than test Hascall(), return false
1051  * @tc.desc     Function test
1052  */
1053 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0100, Function | MediumTest | Level1)
1054 {
1055     AccessToken token;
1056     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1057         return;
1058     }
1059     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1060     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
1061     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
1062     ASSERT_EQ(callState, idleState);
1063     EXPECT_EQ(CallManagerGtest::clientPtr_->HasCall(), false);
1064 }
1065 
1066 /**
1067  * @tc.number   Telephony_CallManager_HasCall_0200 to do ...
1068  * @tc.name     The wrong number is not on call, return false
1069  * @tc.desc     Function test
1070  */
1071 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0200, Function | MediumTest | Level1)
1072 {
1073     AccessToken token;
1074     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1075         return;
1076     }
1077     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1078     std::string phoneNumber = "";
1079     InitDialInfo(0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
1080         (int32_t)DialType::DIAL_CARRIER_TYPE);
1081     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
1082     EXPECT_NE(ret, RETURN_VALUE_IS_ZERO);
1083     bool isRet = CallManagerGtest::clientPtr_->HasCall();
1084     EXPECT_NE(isRet, true);
1085 }
1086 
1087 /**
1088  * @tc.number   Telephony_CallManager_HasCall_0300 to do ...
1089  * @tc.name     Free time test Hascall(), return false
1090  * @tc.desc     Function test
1091  */
1092 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0300, Function | MediumTest | Level1)
1093 {
1094     AccessToken token;
1095     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1096         return;
1097     }
1098     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1099     bool isRet = CallManagerGtest::clientPtr_->HasCall();
1100     EXPECT_NE(isRet, true);
1101 }
1102 
1103 /**
1104  * @tc.number   Telephony_CallManager_HasCall_0400
1105  * @tc.name     in CALL_STATE_IDLE status, than test Hascall(), return false
1106  * @tc.desc     Function test
1107  */
1108 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0400, Function | MediumTest | Level2)
1109 {
1110     AccessToken token;
1111     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1112         return;
1113     }
1114     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1115     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
1116     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
1117     ASSERT_EQ(callState, idleState);
1118     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1119     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->HasCall(), false);
1120 }
1121 
1122 /********************************* Test IsNewCallAllowed() ***************************************/
1123 /**
1124  * @tc.number   Telephony_CallManager_IsNewCallAllowed_0100
1125  * @tc.name     The call failed after making a call without the card
1126  * @tc.desc     Function test
1127  */
1128 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0100, Function | MediumTest | Level1)
1129 {
1130     AccessToken token;
1131     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1132         return;
1133     }
1134     std::string phoneNumber = "00000000000";
1135     InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL,
1136         (int32_t)DialType::DIAL_CARRIER_TYPE);
1137     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
1138     ASSERT_EQ(ret, RETURN_VALUE_IS_ZERO);
1139     CallInfoManager::LockCallState(false, (int32_t)TelCallState::CALL_STATUS_ACTIVE, SLEEP_50_MS, SLEEP_12000_MS);
1140     bool enabled = false;
1141     EXPECT_EQ(CallManagerGtest::clientPtr_->IsNewCallAllowed(enabled), TELEPHONY_SUCCESS);
1142     EXPECT_EQ(enabled, true);
1143 }
1144 
1145 /**
1146  * @tc.number   Telephony_CallManager_IsNewCallAllowed_0200
1147  * @tc.name     The call failed after making a call without the card
1148  * @tc.desc     Function test
1149  */
1150 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0200, Function | MediumTest | Level1)
1151 {
1152     AccessToken token;
1153     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1154         return;
1155     }
1156     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1157     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1158     bool enabled = false;
1159     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->IsNewCallAllowed(enabled), TELEPHONY_SUCCESS);
1160     EXPECT_EQ(enabled, true);
1161 }
1162 
1163 /********************************************* Test IsRinging() ***********************************************/
1164 /**
1165  * @tc.number   Telephony_CallManager_IsRinging_0100
1166  * @tc.name     There is no call, return true
1167  * @tc.desc     Function test
1168  */
1169 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0100, Function | MediumTest | Level1)
1170 {
1171     AccessToken token;
1172     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1173         return;
1174     }
1175     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1176     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
1177     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
1178     ASSERT_EQ(callState, idleState);
1179     bool enabled = false;
1180     EXPECT_EQ(CallManagerGtest::clientPtr_->IsRinging(enabled), TELEPHONY_SUCCESS);
1181     EXPECT_NE(enabled, true);
1182 }
1183 
1184 /**
1185  * @tc.number   Telephony_CallManager_IsRinging_0200
1186  * @tc.name     There is no call, return true
1187  * @tc.desc     Function test
1188  */
1189 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0200, Function | MediumTest | Level1)
1190 {
1191     AccessToken token;
1192     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1193         return;
1194     }
1195     CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS);
1196     int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
1197     int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE;
1198     ASSERT_EQ(callState, idleState);
1199     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1200     bool enabled = false;
1201     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->IsRinging(enabled), TELEPHONY_SUCCESS);
1202     EXPECT_NE(enabled, true);
1203 }
1204 
1205 /***************************************** Test CombineConference() ********************************************/
1206 /**
1207  * @tc.number   Telephony_CallManager_CombineConference_0100
1208  * @tc.name     Import callId "@&%¥", test CombineConference(), return non 0
1209  * @tc.desc     Function test
1210  */
1211 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0100, Function | MediumTest | Level2)
1212 {
1213     AccessToken token;
1214     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1215         return;
1216     }
1217     int32_t callId = INVALID_NEGATIVE_ID;
1218     EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO);
1219 }
1220 
1221 /**
1222  * @tc.number   Telephony_CallManager_CombineConference_0200
1223  * @tc.name     Import callId "100", test CombineConference(), return non 0
1224  * @tc.desc     Function test
1225  */
1226 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0200, Function | MediumTest | Level2)
1227 {
1228     AccessToken token;
1229     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1230         return;
1231     }
1232     int32_t callId = INVALID_POSITIVE_ID;
1233     EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO);
1234 }
1235 
1236 /**
1237  * @tc.number   Telephony_CallManager_CombineConference_0300
1238  * @tc.name     Import callId "@&%¥", test CombineConference(), return non 0
1239  * @tc.desc     Function test
1240  */
1241 HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0300, Function | MediumTest | Level2)
1242 {
1243     AccessToken token;
1244     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1245         return;
1246     }
1247     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1248     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->CombineConference(), RETURN_VALUE_IS_ZERO);
1249 }
1250 
1251 /***************************************** Test SeparateConference() ********************************************/
1252 /**
1253  * @tc.number   Telephony_CallManager_SeparateConference_0100
1254  * @tc.name     Import callId " -100", test SeparateConference(), return non 0
1255  * @tc.desc     Function test
1256  */
1257 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0100, Function | MediumTest | Level2)
1258 {
1259     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1260         return;
1261     }
1262     int32_t callId = INVALID_NEGATIVE_ID;
1263     EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO);
1264 }
1265 
1266 /**
1267  * @tc.number   Telephony_CallManager_SeparateConference_0200
1268  * @tc.name     Import callId "100", test SeparateConference(), return non 0
1269  * @tc.desc     Function test
1270  */
1271 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0200, Function | MediumTest | Level2)
1272 {
1273     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1274         return;
1275     }
1276     int32_t callId = INVALID_POSITIVE_ID;
1277     EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO);
1278 }
1279 
1280 /**
1281  * @tc.number   Telephony_CallManager_SeparateConference_0300
1282  * @tc.name     Import callId " -100", test SeparateConference(), return non 0
1283  * @tc.desc     Function test
1284  */
1285 HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0300, Function | MediumTest | Level2)
1286 {
1287     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1288         return;
1289     }
1290     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1291     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->SeparateConference(), RETURN_VALUE_IS_ZERO);
1292 }
1293 
1294 /********************************************* Test GetMainCallId() ***********************************************/
1295 /**
1296  * @tc.number   Telephony_CallManager_GetMainCallId_0100
1297  * @tc.name     Import callId "abcd", test GetMainCallId(), return non 0
1298  * @tc.desc     Function test
1299  */
1300 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetMainCallId_0100, Function | MediumTest | Level3)
1301 {
1302     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1303         return;
1304     }
1305     int32_t callId = INVALID_NEGATIVE_ID;
1306     int32_t mainCallId = INVALID_NEGATIVE_ID;
1307     EXPECT_NE(CallManagerGtest::clientPtr_->GetMainCallId(callId, mainCallId), TELEPHONY_ERR_SUCCESS);
1308     EXPECT_NE(mainCallId, RETURN_VALUE_IS_ZERO);
1309 }
1310 
1311 /**
1312  * @tc.number   Telephony_CallManager_GetMainCallId_0200
1313  * @tc.name     Import callId "100", test GetMainCallId(), return non 0
1314  * @tc.desc     Function test
1315  */
1316 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetMainCallId_0200, Function | MediumTest | Level3)
1317 {
1318     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1319         return;
1320     }
1321     int32_t callId = INVALID_POSITIVE_ID;
1322     int32_t mainCallId = INVALID_NEGATIVE_ID;
1323     EXPECT_NE(CallManagerGtest::clientPtr_->GetMainCallId(callId, mainCallId), TELEPHONY_ERR_SUCCESS);
1324     EXPECT_NE(mainCallId, RETURN_VALUE_IS_ZERO);
1325 }
1326 
1327 /***************************************** Test GetSubCallIdList() ******************************************/
1328 
1329 /**
1330  * @tc.number   Telephony_CallManager_GetSubCallIdList_0100
1331  * @tc.name     Import callId "abcd", test GetSubCallIdList(), return non 0
1332  * @tc.desc     Function test
1333  */
1334 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetSubCallIdList_0100, Function | MediumTest | Level3)
1335 {
1336     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1337         return;
1338     }
1339     int32_t callId = INVALID_NEGATIVE_ID;
1340     std::vector<std::u16string> ans;
1341     ans.clear();
1342     int32_t result = CallManagerGtest::clientPtr_->GetSubCallIdList(callId, ans);
1343     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1344     bool isEmpty = ans.empty();
1345     EXPECT_EQ(isEmpty, true);
1346     if (!ans.empty()) {
1347         ans.clear();
1348     }
1349 }
1350 
1351 /**
1352  * @tc.number   Telephony_CallManager_GetSubCallIdList_0200
1353  * @tc.name     Import callId "100", test GetSubCallIdList(), return non 0
1354  * @tc.desc     Function test
1355  */
1356 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetSubCallIdList_0200, Function | MediumTest | Level3)
1357 {
1358     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1359         return;
1360     }
1361     int32_t callId = INVALID_POSITIVE_ID;
1362     std::vector<std::u16string> ans;
1363     ans.clear();
1364     int32_t result = CallManagerGtest::clientPtr_->GetSubCallIdList(callId, ans);
1365     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1366     bool isEmpty = ans.empty();
1367     EXPECT_EQ(isEmpty, true);
1368     if (!ans.empty()) {
1369         ans.clear();
1370     }
1371 }
1372 
1373 /************************************ Test GetCallIdListForConference() ***************************************/
1374 
1375 /**
1376  * @tc.number   Telephony_CallManager_GetCallIdListForConference_0100
1377  * @tc.name     Import callId "abcd", test GetCallIdListForConference(), return non 0
1378  * @tc.desc     Function test
1379  */
1380 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallIdListForConference_0100, Function | MediumTest | Level3)
1381 {
1382     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1383         return;
1384     }
1385     int32_t callId = INVALID_NEGATIVE_ID;
1386     std::vector<std::u16string> ans;
1387     ans.clear();
1388     int32_t result = CallManagerGtest::clientPtr_->GetCallIdListForConference(callId, ans);
1389     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1390     bool isEmpty = ans.empty();
1391     EXPECT_EQ(isEmpty, true);
1392     if (!ans.empty()) {
1393         ans.clear();
1394     }
1395 }
1396 
1397 /**
1398  * @tc.number   Telephony_CallManager_GetCallIdListForConference_0200
1399  * @tc.name     Import callId "100", test GetCallIdListForConference(), return non 0
1400  * @tc.desc     Function test
1401  */
1402 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallIdListForConference_0200, Function | MediumTest | Level3)
1403 {
1404     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1405         return;
1406     }
1407     int32_t callId = INVALID_POSITIVE_ID;
1408     std::vector<std::u16string> ans;
1409     ans.clear();
1410     int32_t result = CallManagerGtest::clientPtr_->GetCallIdListForConference(callId, ans);
1411     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1412     bool isEmpty = ans.empty();
1413     EXPECT_EQ(isEmpty, true);
1414     if (!ans.empty()) {
1415         ans.clear();
1416     }
1417 }
1418 /************************************* Test IsEmergencyPhoneNumber() ***************************************/
1419 /**
1420  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0100
1421  * @tc.name     Call one phonynumber "0-0-0", test IsEmergencyPhoneNumber(), return false
1422  * @tc.desc     Function test
1423  */
1424 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0100, Function | MediumTest | Level3)
1425 {
1426     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1427         return;
1428     }
1429     std::string number = "0-0-0";
1430     std::u16string phoneNumber = Str8ToStr16(number);
1431     if (HasSimCard(SIM1_SLOTID)) {
1432         bool enabled = false;
1433         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM1_SLOTID, enabled);
1434         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1435         EXPECT_NE(enabled, true);
1436     }
1437     if (HasSimCard(SIM2_SLOTID)) {
1438         bool enabled = false;
1439         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM2_SLOTID, enabled);
1440         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1441         EXPECT_NE(enabled, true);
1442     }
1443 }
1444 
1445 /**
1446  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0200
1447  * @tc.name     Call one phonynumber "112", test IsEmergencyPhoneNumber(), return true
1448  * @tc.desc     Function test
1449  * @tc.require: I5O1OQ
1450  */
1451 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0200, Function | MediumTest | Level2)
1452 {
1453     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1454         return;
1455     }
1456     std::string number = "112";
1457     std::u16string phoneNumber = Str8ToStr16(number);
1458     if (HasSimCard(SIM1_SLOTID)) {
1459         bool enabled = false;
1460         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM1_SLOTID, enabled);
1461         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1462         EXPECT_EQ(enabled, true);
1463     }
1464     if (HasSimCard(SIM2_SLOTID)) {
1465         bool enabled = false;
1466         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM2_SLOTID, enabled);
1467         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1468         EXPECT_EQ(enabled, true);
1469     }
1470 }
1471 
1472 /**
1473  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0300
1474  * @tc.name     Call one phonynumber "911", test IsEmergencyPhoneNumber(), return true
1475  * @tc.desc     Function test
1476  */
1477 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0300, Function | MediumTest | Level2)
1478 {
1479     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1480         return;
1481     }
1482     std::string number = "911";
1483     std::u16string phoneNumber = Str8ToStr16(number);
1484     if (HasSimCard(SIM1_SLOTID)) {
1485         bool enabled = false;
1486         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM1_SLOTID, enabled);
1487         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1488         EXPECT_EQ(enabled, true);
1489     }
1490     if (HasSimCard(SIM2_SLOTID)) {
1491         bool enabled = false;
1492         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM2_SLOTID, enabled);
1493         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1494         EXPECT_EQ(enabled, true);
1495     }
1496 }
1497 
1498 /**
1499  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0400
1500  * @tc.name     Call one phonynumber "08", test IsEmergencyPhoneNumber(), return true
1501  * @tc.desc     Function test
1502  */
1503 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0400, Function | MediumTest | Level3)
1504 {
1505     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1506         return;
1507     }
1508     int32_t slotId = SIM1_SLOTID_NO_CARD;
1509     std::string number = "08";
1510     std::u16string phoneNumber = Str8ToStr16(number);
1511     bool enabled = false;
1512     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1513     EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1514     EXPECT_EQ(enabled, true);
1515 }
1516 
1517 /**
1518  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0500
1519  * @tc.name     Call one phonynumber "118", test IsEmergencyPhoneNumber(), return false
1520  * @tc.desc     Function test
1521  */
1522 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0500, Function | MediumTest | Level2)
1523 {
1524     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1525         return;
1526     }
1527     int32_t slotId = SIM1_SLOTID_NO_CARD;
1528     std::string number = "118";
1529     std::u16string phoneNumber = Str8ToStr16(number);
1530     bool enabled = false;
1531     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1532     EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1533     EXPECT_EQ(enabled, true);
1534 }
1535 
1536 /**
1537  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0600
1538  * @tc.name     Call one phonynumber "119", test IsEmergencyPhoneNumber(), return true
1539  * @tc.desc     Function test
1540  */
1541 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0600, Function | MediumTest | Level2)
1542 {
1543     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1544         return;
1545     }
1546     std::string number = "119";
1547     std::u16string phoneNumber = Str8ToStr16(number);
1548     if (HasSimCard(SIM1_SLOTID)) {
1549         bool enabled = false;
1550         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM1_SLOTID, enabled);
1551         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1552         EXPECT_EQ(enabled, true);
1553     }
1554     if (HasSimCard(SIM2_SLOTID)) {
1555         bool enabled = false;
1556         int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, SIM2_SLOTID, enabled);
1557         EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1558         EXPECT_EQ(enabled, true);
1559     }
1560 }
1561 
1562 /**
1563  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0700
1564  * @tc.name     Call one phonynumber "999", test IsEmergencyPhoneNumber(), return true
1565  * @tc.desc     Function test
1566  */
1567 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0700, Function | MediumTest | Level2)
1568 {
1569     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1570         return;
1571     }
1572     int32_t slotId = SIM1_SLOTID_NO_CARD;
1573     std::string number = "999";
1574     std::u16string phoneNumber = Str8ToStr16(number);
1575     bool enabled = false;
1576     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1577     EXPECT_EQ(result, TELEPHONY_ERR_SUCCESS);
1578     EXPECT_EQ(enabled, true);
1579 }
1580 
1581 /**
1582  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0800
1583  * @tc.name     Call one phonynumber "", test IsEmergencyPhoneNumber(), return false
1584  * @tc.desc     Function test
1585  */
1586 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0800, Function | MediumTest | Level2)
1587 {
1588     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1589         return;
1590     }
1591     int32_t slotId = SIM1_SLOTID_NO_CARD;
1592     std::string number = "";
1593     std::u16string phoneNumber = Str8ToStr16(number);
1594     bool enabled = false;
1595     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1596     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1597     EXPECT_NE(enabled, true);
1598 }
1599 
1600 /**
1601  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_0900
1602  * @tc.name     Call one phonynumber "", test IsEmergencyPhoneNumber(), return false
1603  * @tc.desc     Function test
1604  */
1605 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_0900, Function | MediumTest | Level2)
1606 {
1607     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1608         return;
1609     }
1610     int32_t slotId = SIM1_SLOTID_NO_CARD;
1611     std::string number = "@123";
1612     std::u16string phoneNumber = Str8ToStr16(number);
1613     bool enabled = false;
1614     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1615     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1616     EXPECT_NE(enabled, true);
1617 }
1618 
1619 /**
1620  * @tc.number   Telephony_CallManager_IsEmergencyPhoneNumber_1000
1621  * @tc.name     Call one phonynumber "", test IsEmergencyPhoneNumber(), return false
1622  * @tc.desc     Function test
1623  */
1624 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_1000, Function | MediumTest | Level2)
1625 {
1626     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1627         return;
1628     }
1629     int32_t slotId = SIM1_SLOTID_NO_CARD;
1630     std::string number = "+1+1+9";
1631     std::u16string phoneNumber = Str8ToStr16(number);
1632     bool enabled = false;
1633     int32_t result = CallManagerGtest::clientPtr_->IsEmergencyPhoneNumber(phoneNumber, slotId, enabled);
1634     EXPECT_NE(result, TELEPHONY_ERR_SUCCESS);
1635     EXPECT_NE(enabled, true);
1636 }
1637 
1638 /********************************************* Test GetCallWaiting() ***********************************************/
1639 
1640 /**
1641  * @tc.number   Telephony_CallManager_GetCallWaiting_0100
1642  * @tc.name     Import slotId 1, test GetCallWaiting(), return 0
1643  * @tc.desc     Function test
1644  */
1645 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallWaiting_0100, Function | MediumTest | Level3)
1646 {
1647     AccessToken token;
1648     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1649         return;
1650     }
1651 
1652     if (HasSimCard(SIM1_SLOTID)) {
1653         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM1_SLOTID), RETURN_VALUE_IS_ZERO);
1654     }
1655     if (HasSimCard(SIM2_SLOTID)) {
1656         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM2_SLOTID), RETURN_VALUE_IS_ZERO);
1657     }
1658 }
1659 
1660 /**
1661  * @tc.number   Telephony_CallManager_GetCallWaiting_0200
1662  * @tc.name     test GetCallWaiting without permission
1663  * @tc.desc     Function test
1664  */
1665 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallWaiting_0200, Function | MediumTest | Level3)
1666 {
1667     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1668         return;
1669     }
1670 
1671     if (HasSimCard(SIM1_SLOTID)) {
1672         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM1_SLOTID), TELEPHONY_ERR_PERMISSION_ERR);
1673     }
1674     if (HasSimCard(SIM2_SLOTID)) {
1675         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM2_SLOTID), TELEPHONY_ERR_PERMISSION_ERR);
1676     }
1677 }
1678 
1679 /********************************************* Test StartDtmf() ***********************************************/
1680 
1681 /**
1682  * @tc.number   Telephony_CallManager_StartDtmf_0100
1683  * @tc.name     Import callId abcd, test StartDtmf(), return non 0
1684  * @tc.desc     Function test
1685  */
1686 HWTEST_F(CallManagerGtest, Telephony_CallManager_StartDtmf_0100, Function | MediumTest | Level2)
1687 {
1688     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1689         return;
1690     }
1691     int32_t callId = INVALID_NEGATIVE_ID;
1692     char str = '1';
1693     EXPECT_NE(CallManagerGtest::clientPtr_->StartDtmf(callId, str), RETURN_VALUE_IS_ZERO);
1694 }
1695 
1696 /**
1697  * @tc.number   Telephony_CallManager_StartDtmf_0200
1698  * @tc.name     Import callId 100, test StartDtmf(), return non 0
1699  * @tc.desc     Function test
1700  */
1701 HWTEST_F(CallManagerGtest, Telephony_CallManager_StartDtmf_0200, Function | MediumTest | Level2)
1702 {
1703     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1704         return;
1705     }
1706     int32_t callId = INVALID_POSITIVE_ID;
1707     char str = '1';
1708     EXPECT_NE(CallManagerGtest::clientPtr_->StartDtmf(callId, str), RETURN_VALUE_IS_ZERO);
1709 }
1710 
1711 /**
1712  * @tc.number   Telephony_CallManager_StartDtmf_0300
1713  * @tc.name     Import callId 100, test StartDtmf(), return non 0
1714  * @tc.desc     Function test
1715  */
1716 HWTEST_F(CallManagerGtest, Telephony_CallManager_StartDtmf_0300, Function | MediumTest | Level2)
1717 {
1718     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1719         return;
1720     }
1721 
1722     char str = '1';
1723     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1724     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->StartDtmf(str), RETURN_VALUE_IS_ZERO);
1725 }
1726 
1727 /********************************************* Test StopDtmf() ***********************************************/
1728 
1729 /**
1730  * @tc.number   Telephony_CallManager_StopDtmf_0100
1731  * @tc.name     Import callId abcd, test StopDtmf(), return non 0
1732  * @tc.desc     Function test
1733  */
1734 HWTEST_F(CallManagerGtest, Telephony_CallManager_StopDtmf_0100, Function | MediumTest | Level2)
1735 {
1736     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1737         return;
1738     }
1739     int32_t callId = INVALID_NEGATIVE_ID;
1740     EXPECT_NE(CallManagerGtest::clientPtr_->StopDtmf(callId), RETURN_VALUE_IS_ZERO);
1741 }
1742 
1743 /**
1744  * @tc.number   Telephony_CallManager_StopDtmf_0200
1745  * @tc.name     Import callId 100, test StopDtmf(), return non 0
1746  * @tc.desc     Function test
1747  */
1748 HWTEST_F(CallManagerGtest, Telephony_CallManager_StopDtmf_0200, Function | MediumTest | Level2)
1749 {
1750     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1751         return;
1752     }
1753     int32_t callId = INVALID_POSITIVE_ID;
1754     EXPECT_NE(CallManagerGtest::clientPtr_->StopDtmf(callId), RETURN_VALUE_IS_ZERO);
1755 }
1756 
1757 /**
1758  * @tc.number   Telephony_CallManager_StopDtmf_0300
1759  * @tc.name     Import callId, test StopDtmf(), return non 0
1760  * @tc.desc     Function test
1761  */
1762 HWTEST_F(CallManagerGtest, Telephony_CallManager_StopDtmf_0300, Function | MediumTest | Level2)
1763 {
1764     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1765         return;
1766     }
1767     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
1768     EXPECT_NE(CallManagerGtest::blueToothClientPtr_->StopDtmf(), RETURN_VALUE_IS_ZERO);
1769 }
1770 
1771 /******************************** Test FormatPhoneNumber() * **************************************/
1772 
1773 /**
1774  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0100
1775  * @tc.name     Import phonyNumber 01085198748, test FormatPhoneNumber(), return 010-8519-8748
1776  * @tc.desc     Function test
1777  */
1778 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0100, Function | MediumTest | Level3)
1779 {
1780     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1781         return;
1782     }
1783     std::string number = "01085198748";
1784     std::string Code = "Kr";
1785     std::string formatBefore = "";
1786     std::u16string phonyNumber = Str8ToStr16(number);
1787     std::u16string countryCode = Str8ToStr16(Code);
1788     std::u16string formatNumber = Str8ToStr16(formatBefore);
1789     EXPECT_EQ(
1790         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1791 }
1792 
1793 /**
1794  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0200
1795  * @tc.name     Import countryCode KR, test FormatPhoneNumber(), return 010-8519-8748
1796  * @tc.desc     Function test
1797  */
1798 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0200, Function | MediumTest | Level3)
1799 {
1800     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1801         return;
1802     }
1803     std::string number = "010-8519-8748";
1804     std::string Code = "KR";
1805     std::string formatBefore = "";
1806     std::u16string phonyNumber = Str8ToStr16(number);
1807     std::u16string countryCode = Str8ToStr16(Code);
1808     std::u16string formatNumber = Str8ToStr16(formatBefore);
1809     EXPECT_NE(
1810         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1811 }
1812 
1813 /**
1814  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0300
1815  * @tc.name     Import phonyNumber (03)38122111, test FormatPhoneNumber(), return 03-3812-2111
1816  * @tc.desc     Function test
1817  */
1818 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0300, Function | MediumTest | Level3)
1819 {
1820     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1821         return;
1822     }
1823     std::string number = "(03)38122111";
1824     std::string Code = "JP";
1825     std::string formatBefore = "";
1826     std::u16string phonyNumber = Str8ToStr16(number);
1827     std::u16string countryCode = Str8ToStr16(Code);
1828     std::u16string formatNumber = Str8ToStr16(formatBefore);
1829     EXPECT_EQ(
1830         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1831 }
1832 
1833 /**
1834  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0400
1835  * @tc.name     Import phonyNumber 13888888888, test FormatPhoneNumber(), return 138 8888 8888
1836  * @tc.desc     Function test
1837  */
1838 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0400, Function | MediumTest | Level3)
1839 {
1840     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1841         return;
1842     }
1843     std::string number = "13888888888";
1844     std::string Code = "CN";
1845     std::string formatBefore = "";
1846     std::u16string phonyNumber = Str8ToStr16(number);
1847     std::u16string countryCode = Str8ToStr16(Code);
1848     std::u16string formatNumber = Str8ToStr16(formatBefore);
1849     EXPECT_EQ(
1850         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1851 }
1852 
1853 /**
1854  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0500
1855  * @tc.name     Import phonyNumber +81338122111, test FormatPhoneNumber(), return 03-3812-2111
1856  * @tc.desc     Function test
1857  */
1858 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0500, Function | MediumTest | Level3)
1859 {
1860     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1861         return;
1862     }
1863     std::string number = "+81338122111";
1864     std::string Code = "jp";
1865     std::string formatBefore = "";
1866     std::u16string phonyNumber = Str8ToStr16(number);
1867     std::u16string countryCode = Str8ToStr16(Code);
1868     std::u16string formatNumber = Str8ToStr16(formatBefore);
1869     EXPECT_EQ(
1870         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1871 }
1872 
1873 /**
1874  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0600
1875  * @tc.name     Import phonyNumber 666666999999, test FormatPhoneNumber(), return 666666999999
1876  * @tc.desc     Function test
1877  */
1878 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0600, Function | MediumTest | Level3)
1879 {
1880     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1881         return;
1882     }
1883     std::string number = "666666999999";
1884     std::string Code = "CN";
1885     std::string formatBefore = "";
1886     std::u16string phonyNumber = Str8ToStr16(number);
1887     std::u16string countryCode = Str8ToStr16(Code);
1888     std::u16string formatNumber = Str8ToStr16(formatBefore);
1889     EXPECT_NE(
1890         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1891 }
1892 
1893 /**
1894  * @tc.number   Telephony_CallManager_FormatPhoneNumber_0700
1895  * @tc.name     Import countryCode abcdefg, test FormatPhoneNumber(), return 83886082
1896  * @tc.desc     Function test
1897  */
1898 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumber_0700, Function | MediumTest | Level3)
1899 {
1900     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1901         return;
1902     }
1903     std::string number = "13888888888";
1904     std::string Code = "abcdefg";
1905     std::string formatBefore = "";
1906     std::u16string phonyNumber = Str8ToStr16(number);
1907     std::u16string countryCode = Str8ToStr16(Code);
1908     std::u16string formatNumber = Str8ToStr16(formatBefore);
1909     EXPECT_NE(
1910         CallManagerGtest::clientPtr_->FormatPhoneNumber(phonyNumber, countryCode, formatNumber), RETURN_VALUE_IS_ZERO);
1911 }
1912 
1913 /******************************* Test FormatPhoneNumberToE164() ***************************************/
1914 
1915 /**
1916  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0100
1917  * @tc.name     Import phonyNumber 01085198748, test FormatPhoneNumberToE164(), return +821085198748
1918  * @tc.desc     Function test
1919  */
1920 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0100, Function | MediumTest | Level2)
1921 {
1922     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1923         return;
1924     }
1925     std::string number = "01085198748";
1926     std::string Code = "Kr";
1927     std::string formatBefore = "";
1928     std::u16string phonyNumber = Str8ToStr16(number);
1929     std::u16string countryCode = Str8ToStr16(Code);
1930     std::u16string formatNumber = Str8ToStr16(formatBefore);
1931     EXPECT_EQ(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
1932         RETURN_VALUE_IS_ZERO);
1933 }
1934 
1935 /**
1936  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0200
1937  * @tc.name     Import countryCode KR, test FormatPhoneNumberToE164(), return +81338122111
1938  * @tc.desc     Function test
1939  */
1940 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0200, Function | MediumTest | Level2)
1941 {
1942     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1943         return;
1944     }
1945     std::string number = "(03)38122111";
1946     std::string Code = "JP";
1947     std::string formatBefore = "";
1948     std::u16string phonyNumber = Str8ToStr16(number);
1949     std::u16string countryCode = Str8ToStr16(Code);
1950     std::u16string formatNumber = Str8ToStr16(formatBefore);
1951     EXPECT_EQ(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
1952         RETURN_VALUE_IS_ZERO);
1953 }
1954 
1955 /**
1956  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0300
1957  * @tc.name     Import phonyNumber 13888888888, test FormatPhoneNumberToE164(), return +8613888888888
1958  * @tc.desc     Function test
1959  */
1960 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0300, Function | MediumTest | Level2)
1961 {
1962     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1963         return;
1964     }
1965     std::string number = "13888888888";
1966     std::string Code = "cn";
1967     std::string formatBefore = "";
1968     std::u16string phonyNumber = Str8ToStr16(number);
1969     std::u16string countryCode = Str8ToStr16(Code);
1970     std::u16string formatNumber = Str8ToStr16(formatBefore);
1971     EXPECT_EQ(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
1972         RETURN_VALUE_IS_ZERO);
1973 }
1974 
1975 /**
1976  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0400
1977  * @tc.name     Import phonyNumber +81338122111, test FormatPhoneNumberToE164(), return +81338122111
1978  * @tc.desc     Function test
1979  */
1980 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0400, Function | MediumTest | Level2)
1981 {
1982     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1983         return;
1984     }
1985     std::string number = "+81338122111";
1986     std::string Code = "jp";
1987     std::string formatBefore = "";
1988     std::u16string phonyNumber = Str8ToStr16(number);
1989     std::u16string countryCode = Str8ToStr16(Code);
1990     std::u16string formatNumber = Str8ToStr16(formatBefore);
1991     EXPECT_NE(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
1992         RETURN_VALUE_IS_ZERO);
1993 }
1994 
1995 /**
1996  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0500
1997  * @tc.name     Import phonyNumber 03-3812-2111, test FormatPhoneNumberToE164(), return +81338122111
1998  * @tc.desc     Function test
1999  */
2000 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0500, Function | MediumTest | Level2)
2001 {
2002     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2003         return;
2004     }
2005     std::string number = "03-3812-2111";
2006     std::string Code = "JP";
2007     std::string formatBefore = "";
2008     std::u16string phonyNumber = Str8ToStr16(number);
2009     std::u16string countryCode = Str8ToStr16(Code);
2010     std::u16string formatNumber = Str8ToStr16(formatBefore);
2011     EXPECT_EQ(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
2012         RETURN_VALUE_IS_ZERO);
2013 }
2014 
2015 /**
2016  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0600
2017  * @tc.name     Import phonyNumber 666666999999, test FormatPhoneNumberToE164(), return 83886082
2018  * @tc.desc     Function test
2019  */
2020 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0600, Function | MediumTest | Level2)
2021 {
2022     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2023         return;
2024     }
2025     std::string number = "666666999999";
2026     std::string Code = "CN";
2027     std::string formatBefore = "";
2028     std::u16string phonyNumber = Str8ToStr16(number);
2029     std::u16string countryCode = Str8ToStr16(Code);
2030     std::u16string formatNumber = Str8ToStr16(formatBefore);
2031     EXPECT_NE(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
2032         RETURN_VALUE_IS_ZERO);
2033 }
2034 
2035 /**
2036  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0700
2037  * @tc.name     Import countryCode abcdefg, test FormatPhoneNumberToE164(), return 83886082
2038  * @tc.desc     Function test
2039  */
2040 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0700, Function | MediumTest | Level3)
2041 {
2042     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2043         return;
2044     }
2045     std::string number = "13888888888";
2046     std::string Code = "abcdefg";
2047     std::string formatBefore = "";
2048     std::u16string phonyNumber = Str8ToStr16(number);
2049     std::u16string countryCode = Str8ToStr16(Code);
2050     std::u16string formatNumber = Str8ToStr16(formatBefore);
2051     EXPECT_NE(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
2052         RETURN_VALUE_IS_ZERO);
2053 }
2054 
2055 /**
2056  * @tc.number   Telephony_CallManager_FormatPhoneNumberToE164_0800
2057  * @tc.name     Import countryCode abcdefg, test FormatPhoneNumberToE164(), return CALL_ERR_PHONE_NUMBER_EMPTY
2058  * @tc.desc     Function test
2059  */
2060 HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0800, Function | MediumTest | Level3)
2061 {
2062     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2063         return;
2064     }
2065     std::string number = "";
2066     std::string Code = "abcdefg";
2067     std::string formatBefore = "";
2068     std::u16string phonyNumber = Str8ToStr16(number);
2069     std::u16string countryCode = Str8ToStr16(Code);
2070     std::u16string formatNumber = Str8ToStr16(formatBefore);
2071     EXPECT_NE(CallManagerGtest::clientPtr_->FormatPhoneNumberToE164(phonyNumber, countryCode, formatNumber),
2072         RETURN_VALUE_IS_ZERO);
2073 }
2074 
2075 /********************************************* Test SetCallWaiting() ***********************************************/
2076 /**
2077  * @tc.number   Telephony_CallManager_SetCallWaiting_0100
2078  * @tc.name     input slotId 0, test SetCallWaiting() enable callWaiting
2079  * @tc.desc     Function test
2080  */
2081 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0100, Function | MediumTest | Level3)
2082 {
2083     AccessToken token;
2084     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2085         return;
2086     }
2087 
2088     if (HasSimCard(SIM1_SLOTID)) {
2089         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM1_SLOTID, true), RETURN_VALUE_IS_ZERO);
2090     }
2091     if (HasSimCard(SIM2_SLOTID)) {
2092         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM2_SLOTID, true), RETURN_VALUE_IS_ZERO);
2093     }
2094 }
2095 
2096 /**
2097  * @tc.number   Telephony_CallManager_SetCallWaiting_0200
2098  * @tc.name     input invalid slotId, test SetCallWaiting() enable callWaiting
2099  * @tc.desc     Function test
2100  */
2101 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0200, Function | MediumTest | Level3)
2102 {
2103     AccessToken token;
2104     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2105         return;
2106     }
2107 
2108     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(INVALID_SLOT_ID, true), CALL_ERR_INVALID_SLOT_ID);
2109 }
2110 
2111 /**
2112  * @tc.number   Telephony_CallManager_SetCallWaiting_0300
2113  * @tc.name     input slotId was out of count, test SetCallWaiting() enable callWaiting
2114  * @tc.desc     Function test
2115  */
2116 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0300, Function | MediumTest | Level3)
2117 {
2118     AccessToken token;
2119     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2120         return;
2121     }
2122 
2123     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2124     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(slotId, true), CALL_ERR_INVALID_SLOT_ID);
2125 }
2126 
2127 /**
2128  * @tc.number   Telephony_CallManager_SetCallWaiting_0400
2129  * @tc.name     input slotId 0, test SetCallWaiting() disable callWaiting
2130  * @tc.desc     Function test
2131  */
2132 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0400, Function | MediumTest | Level3)
2133 {
2134     AccessToken token;
2135     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2136         return;
2137     }
2138 
2139     if (HasSimCard(SIM1_SLOTID)) {
2140         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM1_SLOTID, false), RETURN_VALUE_IS_ZERO);
2141     }
2142     if (HasSimCard(SIM2_SLOTID)) {
2143         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM2_SLOTID, false), RETURN_VALUE_IS_ZERO);
2144     }
2145 }
2146 
2147 /**
2148  * @tc.number   Telephony_CallManager_SetCallWaiting_0500
2149  * @tc.name     input invalid slotId, test SetCallWaiting() disable callWaiting
2150  * @tc.desc     Function test
2151  */
2152 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0500, Function | MediumTest | Level3)
2153 {
2154     AccessToken token;
2155     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2156         return;
2157     }
2158 
2159     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(INVALID_SLOT_ID, false), CALL_ERR_INVALID_SLOT_ID);
2160 }
2161 
2162 /**
2163  * @tc.number   Telephony_CallManager_SetCallWaiting_0600
2164  * @tc.name     input slotId was out of count, test SetCallWaiting() enable callWaiting
2165  * @tc.desc     Function test
2166  */
2167 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0600, Function | MediumTest | Level3)
2168 {
2169     AccessToken token;
2170     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2171         return;
2172     }
2173 
2174     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2175     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(slotId, false), CALL_ERR_INVALID_SLOT_ID);
2176 }
2177 
2178 /**
2179  * @tc.number   Telephony_CallManager_SetCallWaiting_0700
2180  * @tc.name     test SetCallWaiting without permission
2181  * @tc.desc     Function test
2182  */
2183 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0700, Function | MediumTest | Level3)
2184 {
2185     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2186         return;
2187     }
2188 
2189     if (HasSimCard(SIM1_SLOTID)) {
2190         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM1_SLOTID, true), TELEPHONY_ERR_PERMISSION_ERR);
2191     }
2192     if (HasSimCard(SIM2_SLOTID)) {
2193         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM2_SLOTID, true), TELEPHONY_ERR_PERMISSION_ERR);
2194     }
2195 }
2196 
2197 /******************************************* Test GetCallRestriction() ********************************************/
2198 /**
2199  * @tc.number   Telephony_CallManager_GetCallRestriction_0100
2200  * @tc.name     input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_INCOMING, test GetCallRestriction()
2201  * @tc.desc     Function test
2202  */
2203 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0100, Function | MediumTest | Level3)
2204 {
2205     AccessToken token;
2206     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2207         return;
2208     }
2209 
2210     if (HasSimCard(SIM1_SLOTID)) {
2211         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2212                       SIM1_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2213             RETURN_VALUE_IS_ZERO);
2214     }
2215     if (HasSimCard(SIM2_SLOTID)) {
2216         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2217                       SIM2_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2218             RETURN_VALUE_IS_ZERO);
2219     }
2220 }
2221 
2222 /**
2223  * @tc.number   Telephony_CallManager_GetCallRestriction_0200
2224  * @tc.name     input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_INCOMING, test GetCallRestriction()
2225  *              return failed
2226  * @tc.desc     Function test
2227  */
2228 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0200, Function | MediumTest | Level3)
2229 {
2230     AccessToken token;
2231     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2232         return;
2233     }
2234 
2235     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2236                   INVALID_SLOT_ID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2237         CALL_ERR_INVALID_SLOT_ID);
2238 }
2239 
2240 /**
2241  * @tc.number   Telephony_CallManager_GetCallRestriction_0300
2242  * @tc.name     input invalid was out of count, CallRestrictionType RESTRICTION_TYPE_ALL_INCOMING,
2243  *              test GetCallRestriction() return failed
2244  * @tc.desc     Function test
2245  */
2246 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0300, Function | MediumTest | Level3)
2247 {
2248     AccessToken token;
2249     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2250         return;
2251     }
2252 
2253     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2254     EXPECT_EQ(
2255         CallManagerGtest::clientPtr_->GetCallRestriction(slotId, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2256         CALL_ERR_INVALID_SLOT_ID);
2257 }
2258 
2259 /**
2260  * @tc.number   Telephony_CallManager_GetCallRestriction_0400
2261  * @tc.name     input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, test GetCallRestriction()
2262  * @tc.desc     Function test
2263  */
2264 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0400, Function | MediumTest | Level3)
2265 {
2266     AccessToken token;
2267     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2268         return;
2269     }
2270 
2271     if (HasSimCard(SIM1_SLOTID)) {
2272         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2273                       SIM1_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING),
2274             RETURN_VALUE_IS_ZERO);
2275     }
2276     if (HasSimCard(SIM2_SLOTID)) {
2277         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2278                       SIM2_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING),
2279             RETURN_VALUE_IS_ZERO);
2280     }
2281 }
2282 
2283 /**
2284  * @tc.number   Telephony_CallManager_GetCallRestriction_0500
2285  * @tc.name     input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, test GetCallRestriction()
2286  *              return failed
2287  * @tc.desc     Function test
2288  */
2289 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0500, Function | MediumTest | Level3)
2290 {
2291     AccessToken token;
2292     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2293         return;
2294     }
2295 
2296     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2297                   INVALID_SLOT_ID, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING),
2298         CALL_ERR_INVALID_SLOT_ID);
2299 }
2300 
2301 /**
2302  * @tc.number   Telephony_CallManager_GetCallRestriction_0600
2303  * @tc.name     input slotId was out of count, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING,
2304  *              test GetCallRestriction() return failed
2305  * @tc.desc     Function test
2306  */
2307 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0600, Function | MediumTest | Level3)
2308 {
2309     AccessToken token;
2310     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2311         return;
2312     }
2313 
2314     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2315     EXPECT_EQ(
2316         CallManagerGtest::clientPtr_->GetCallRestriction(slotId, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING),
2317         CALL_ERR_INVALID_SLOT_ID);
2318 }
2319 
2320 /**
2321  * @tc.number   Telephony_CallManager_GetCallRestriction_0700
2322  * @tc.name     input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_INCOMING, test GetCallRestriction()
2323  * @tc.desc     Function test
2324  */
2325 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0700, Function | MediumTest | Level3)
2326 {
2327     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2328         return;
2329     }
2330 
2331     if (HasSimCard(SIM1_SLOTID)) {
2332         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2333                       SIM1_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2334             TELEPHONY_ERR_PERMISSION_ERR);
2335     }
2336     if (HasSimCard(SIM2_SLOTID)) {
2337         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction(
2338                       SIM2_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING),
2339             TELEPHONY_ERR_PERMISSION_ERR);
2340     }
2341 }
2342 
2343 /******************************************* Test SetCallRestriction() ********************************************/
2344 /**
2345  * @tc.number   Telephony_CallManager_SetCallRestriction_0100
2346  * @tc.name     input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING,
2347  *              CallRestrictionMode::RESTRICTION_MODE_ACTIVATION,
2348  *              test SetCallRestriction()
2349  * @tc.desc     Function test
2350  */
2351 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0100, Function | MediumTest | Level3)
2352 {
2353     AccessToken token;
2354     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2355         return;
2356     }
2357     CallRestrictionInfo info;
2358     info.fac = CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING;
2359     info.mode = CallRestrictionMode::RESTRICTION_MODE_ACTIVATION;
2360     if (strcpy_s(info.password, kMaxNumberLen + 1, "123") != EOK) {
2361         TELEPHONY_LOGE("strcpy_s fail.");
2362         return;
2363     }
2364 
2365     if (HasSimCard(SIM1_SLOTID)) {
2366         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM1_SLOTID, info), RETURN_VALUE_IS_ZERO);
2367     }
2368     if (HasSimCard(SIM2_SLOTID)) {
2369         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM2_SLOTID, info), RETURN_VALUE_IS_ZERO);
2370     }
2371 }
2372 
2373 /**
2374  * @tc.number   Telephony_CallManager_SetCallRestriction_0200
2375  * @tc.name     input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING,
2376  *              CallRestrictionMode::RESTRICTION_MODE_ACTIVATION,
2377  *              test SetCallRestriction() return failed
2378  * @tc.desc     Function test
2379  */
2380 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0200, Function | MediumTest | Level3)
2381 {
2382     AccessToken token;
2383     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2384         return;
2385     }
2386     CallRestrictionInfo info;
2387     info.fac = CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING;
2388     info.mode = CallRestrictionMode::RESTRICTION_MODE_ACTIVATION;
2389     if (strcpy_s(info.password, kMaxNumberLen + 1, "123") != EOK) {
2390         TELEPHONY_LOGE("strcpy_s fail.");
2391         return;
2392     }
2393 
2394     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(INVALID_SLOT_ID, info), CALL_ERR_INVALID_SLOT_ID);
2395 }
2396 
2397 /**
2398  * @tc.number   Telephony_CallManager_SetCallRestriction_0300
2399  * @tc.name     input slotId was out of count, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING,
2400  *              CallRestrictionMode::RESTRICTION_MODE_ACTIVATION,
2401  *              test SetCallRestriction() return failed
2402  * @tc.desc     Function test
2403  */
2404 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0300, Function | MediumTest | Level3)
2405 {
2406     AccessToken token;
2407     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2408         return;
2409     }
2410     CallRestrictionInfo info;
2411     info.fac = CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING;
2412     info.mode = CallRestrictionMode::RESTRICTION_MODE_ACTIVATION;
2413     if (strcpy_s(info.password, kMaxNumberLen + 1, "123") != EOK) {
2414         TELEPHONY_LOGE("strcpy_s fail.");
2415         return;
2416     }
2417 
2418     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2419     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(slotId, info), CALL_ERR_INVALID_SLOT_ID);
2420 }
2421 
2422 /**
2423  * @tc.number   Telephony_CallManager_SetCallRestriction_0400
2424  * @tc.name     test SetCallRestriction() without permission
2425  * @tc.desc     Function test
2426  */
2427 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0400, Function | MediumTest | Level3)
2428 {
2429     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2430         return;
2431     }
2432     CallRestrictionInfo info;
2433     info.fac = CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING;
2434     info.mode = CallRestrictionMode::RESTRICTION_MODE_ACTIVATION;
2435     if (strcpy_s(info.password, kMaxNumberLen + 1, "123") != EOK) {
2436         TELEPHONY_LOGE("strcpy_s fail.");
2437         return;
2438     }
2439 
2440     if (HasSimCard(SIM1_SLOTID)) {
2441         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM1_SLOTID, info), TELEPHONY_ERR_PERMISSION_ERR);
2442     }
2443     if (HasSimCard(SIM2_SLOTID)) {
2444         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM2_SLOTID, info), TELEPHONY_ERR_PERMISSION_ERR);
2445     }
2446 }
2447 
2448 /******************************************* Test GetCallTransferInfo() ********************************************/
2449 /**
2450  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0100
2451  * @tc.name     input slotId 0, CallTransferType TRANSFER_TYPE_BUSY, test GetCallTransferInfo()
2452  * @tc.desc     Function test
2453  */
2454 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0100, Function | MediumTest | Level3)
2455 {
2456     AccessToken token;
2457     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2458         return;
2459     }
2460 
2461     if (HasSimCard(SIM1_SLOTID)) {
2462         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY),
2463             RETURN_VALUE_IS_ZERO);
2464     }
2465     if (HasSimCard(SIM2_SLOTID)) {
2466         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY),
2467             RETURN_VALUE_IS_ZERO);
2468     }
2469 }
2470 
2471 /**
2472  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0200
2473  * @tc.name     input invalid slotId, CallTransferType TRANSFER_TYPE_BUSY, test GetCallTransferInfo() return failed
2474  * @tc.desc     Function test
2475  */
2476 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0200, Function | MediumTest | Level3)
2477 {
2478     AccessToken token;
2479     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2480         return;
2481     }
2482 
2483     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(INVALID_SLOT_ID, CallTransferType::TRANSFER_TYPE_BUSY),
2484         CALL_ERR_INVALID_SLOT_ID);
2485 }
2486 
2487 /**
2488  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0300
2489  * @tc.name     input slotId was out of count, CallTransferType TRANSFER_TYPE_BUSY,
2490  *              test GetCallTransferInfo() return failed
2491  * @tc.desc     Function test
2492  */
2493 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0300, Function | MediumTest | Level3)
2494 {
2495     AccessToken token;
2496     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2497         return;
2498     }
2499 
2500     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2501     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(slotId, CallTransferType::TRANSFER_TYPE_BUSY),
2502         CALL_ERR_INVALID_SLOT_ID);
2503 }
2504 
2505 /**
2506  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0400
2507  * @tc.name     input slotId 0, CallTransferType TRANSFER_TYPE_NO_REPLY, test GetCallTransferInfo()
2508  * @tc.desc     Function test
2509  */
2510 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0400, Function | MediumTest | Level3)
2511 {
2512     AccessToken token;
2513     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2514         return;
2515     }
2516 
2517     if (HasSimCard(SIM1_SLOTID)) {
2518         EXPECT_EQ(
2519             CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_NO_REPLY),
2520             RETURN_VALUE_IS_ZERO);
2521     }
2522     if (HasSimCard(SIM2_SLOTID)) {
2523         EXPECT_EQ(
2524             CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM2_SLOTID, CallTransferType::TRANSFER_TYPE_NO_REPLY),
2525             RETURN_VALUE_IS_ZERO);
2526     }
2527 }
2528 
2529 /**
2530  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0500
2531  * @tc.name     input invalid slotId, CallTransferType TRANSFER_TYPE_NO_REPLY, test GetCallTransferInfo() return failed
2532  * @tc.desc     Function test
2533  */
2534 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0500, Function | MediumTest | Level3)
2535 {
2536     AccessToken token;
2537     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2538         return;
2539     }
2540 
2541     EXPECT_EQ(
2542         CallManagerGtest::clientPtr_->GetCallTransferInfo(INVALID_SLOT_ID, CallTransferType::TRANSFER_TYPE_NO_REPLY),
2543         CALL_ERR_INVALID_SLOT_ID);
2544 }
2545 
2546 /**
2547  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0600
2548  * @tc.name     input slotId was out of count, CallTransferType TRANSFER_TYPE_NO_REPLY,
2549  *              test GetCallTransferInfo() return failed
2550  * @tc.desc     Function test
2551  */
2552 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0600, Function | MediumTest | Level3)
2553 {
2554     AccessToken token;
2555     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2556         return;
2557     }
2558 
2559     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2560     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(slotId, CallTransferType::TRANSFER_TYPE_NO_REPLY),
2561         CALL_ERR_INVALID_SLOT_ID);
2562 }
2563 
2564 /**
2565  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0700
2566  * @tc.name     input slotId 0, CallTransferType TRANSFER_TYPE_NOT_REACHABLE, test GetCallTransferInfo()
2567  * @tc.desc     Function test
2568  */
2569 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0700, Function | MediumTest | Level3)
2570 {
2571     AccessToken token;
2572     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2573         return;
2574     }
2575 
2576     if (HasSimCard(SIM1_SLOTID)) {
2577         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(
2578                       SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE),
2579             RETURN_VALUE_IS_ZERO);
2580     }
2581     if (HasSimCard(SIM2_SLOTID)) {
2582         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(
2583                       SIM2_SLOTID, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE),
2584             RETURN_VALUE_IS_ZERO);
2585     }
2586 }
2587 
2588 /**
2589  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0800
2590  * @tc.name     input invalid slotId, CallTransferType TRANSFER_TYPE_NOT_REACHABLE, test GetCallTransferInfo() return
2591  *              failed
2592  * @tc.desc     Function test
2593  */
2594 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0800, Function | MediumTest | Level3)
2595 {
2596     AccessToken token;
2597     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2598         return;
2599     }
2600 
2601     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(
2602                   INVALID_SLOT_ID, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE),
2603         CALL_ERR_INVALID_SLOT_ID);
2604 }
2605 
2606 /**
2607  * @tc.number   Telephony_CallManager_GetCallTransferInfo_0900
2608  * @tc.name     input slotId out of count, CallTransferType TRANSFER_TYPE_NOT_REACHABLE,
2609  *              test GetCallTransferInfo() return failed
2610  * @tc.desc     Function test
2611  */
2612 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0900, Function | MediumTest | Level3)
2613 {
2614     AccessToken token;
2615     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2616         return;
2617     }
2618 
2619     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2620     EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(slotId, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE),
2621         CALL_ERR_INVALID_SLOT_ID);
2622 }
2623 
2624 /**
2625  * @tc.number   Telephony_CallManager_GetCallTransferInfo_1000
2626  * @tc.name     input slotId 0, CallTransferType invalid, test GetCallTransferInfo() return failed
2627  * @tc.desc     Function test
2628  */
2629 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_1000, Function | MediumTest | Level3)
2630 {
2631     AccessToken token;
2632     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2633         return;
2634     }
2635 
2636     if (HasSimCard(SIM1_SLOTID)) {
2637         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, (CallTransferType)FALSE_DEFAULT),
2638             CALL_ERR_INVALID_TRANSFER_TYPE);
2639     }
2640     if (HasSimCard(SIM2_SLOTID)) {
2641         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM2_SLOTID, (CallTransferType)FALSE_DEFAULT),
2642             CALL_ERR_INVALID_TRANSFER_TYPE);
2643     }
2644 }
2645 
2646 /**
2647  * @tc.number   Telephony_CallManager_GetCallTransferInfo_1100
2648  * @tc.name     test GetCallTransferInfo() without permission
2649  * @tc.desc     Function test
2650  */
2651 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_1100, Function | MediumTest | Level3)
2652 {
2653     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2654         return;
2655     }
2656 
2657     if (HasSimCard(SIM1_SLOTID)) {
2658         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY),
2659             TELEPHONY_ERR_PERMISSION_ERR);
2660     }
2661     if (HasSimCard(SIM2_SLOTID)) {
2662         EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY),
2663             TELEPHONY_ERR_PERMISSION_ERR);
2664     }
2665 }
2666 
2667 /******************************************* Test SetCallTransferInfo() ********************************************/
2668 /**
2669  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0100
2670  * @tc.name     input slotId 0, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType TRANSFER_TYPE_BUSY,
2671  *              test SetCallTransferInfo()
2672  * @tc.desc     Function test
2673  */
2674 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0100, Function | MediumTest | Level3)
2675 {
2676     AccessToken token;
2677     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2678         return;
2679     }
2680     CallTransferInfo info;
2681     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2682     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2683     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2684         TELEPHONY_LOGE("strcpy_s fail.");
2685         return;
2686     }
2687 
2688     if (HasSimCard(SIM1_SLOTID)) {
2689         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info), RETURN_VALUE_IS_ZERO);
2690     }
2691     if (HasSimCard(SIM2_SLOTID)) {
2692         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info), RETURN_VALUE_IS_ZERO);
2693     }
2694 }
2695 
2696 /**
2697  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0200
2698  * @tc.name     input invalid slotId, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType TRANSFER_TYPE_BUSY,
2699  *              test SetCallTransferInfo() return failed
2700  * @tc.desc     Function test
2701  */
2702 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0200, Function | MediumTest | Level3)
2703 {
2704     AccessToken token;
2705     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2706         return;
2707     }
2708     CallTransferInfo info;
2709     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2710     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2711     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2712         TELEPHONY_LOGE("strcpy_s fail.");
2713         return;
2714     }
2715 
2716     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(INVALID_SLOT_ID, info), CALL_ERR_INVALID_SLOT_ID);
2717 }
2718 
2719 /**
2720  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0300
2721  * @tc.name     input slotId was out of count, CallTransferSettingType CALL_TRANSFER_ENABLE,
2722  *              CallTransferType TRANSFER_TYPE_BUSY, test SetCallTransferInfo() return failed
2723  * @tc.desc     Function test
2724  */
2725 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0300, Function | MediumTest | Level3)
2726 {
2727     AccessToken token;
2728     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2729         return;
2730     }
2731     CallTransferInfo info;
2732     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2733     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2734     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2735         TELEPHONY_LOGE("strcpy_s fail.");
2736         return;
2737     }
2738 
2739     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2740     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(slotId, info), CALL_ERR_INVALID_SLOT_ID);
2741 }
2742 
2743 /**
2744  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0400
2745  * @tc.name     input slotId 0, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType invalid,
2746  *              test SetCallTransferInfo() return failed
2747  * @tc.desc     Function test
2748  */
2749 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0400, Function | MediumTest | Level3)
2750 {
2751     AccessToken token;
2752     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2753         return;
2754     }
2755     CallTransferInfo info;
2756     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2757     info.type = (CallTransferType)FALSE_DEFAULT;
2758     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2759         TELEPHONY_LOGE("strcpy_s fail.");
2760         return;
2761     }
2762 
2763     if (HasSimCard(SIM1_SLOTID)) {
2764         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info), CALL_ERR_INVALID_TRANSFER_TYPE);
2765     }
2766     if (HasSimCard(SIM2_SLOTID)) {
2767         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info), CALL_ERR_INVALID_TRANSFER_TYPE);
2768     }
2769 }
2770 
2771 /**
2772  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0500
2773  * @tc.name     input slotId 0, CallTransferSettingType invalid, CallTransferType TRANSFER_TYPE_BUSY,
2774  *              test SetCallTransferInfo() return failed
2775  * @tc.desc     Function test
2776  */
2777 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0500, Function | MediumTest | Level3)
2778 {
2779     AccessToken token;
2780     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2781         return;
2782     }
2783     CallTransferInfo info;
2784     info.settingType = (CallTransferSettingType)FALSE_DEFAULT;
2785     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2786     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2787         TELEPHONY_LOGE("strcpy_s fail.");
2788         return;
2789     }
2790 
2791     if (HasSimCard(SIM1_SLOTID)) {
2792         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info),
2793             CALL_ERR_INVALID_TRANSFER_SETTING_TYPE);
2794     }
2795     if (HasSimCard(SIM2_SLOTID)) {
2796         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info),
2797             CALL_ERR_INVALID_TRANSFER_SETTING_TYPE);
2798     }
2799 }
2800 
2801 /**
2802  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0600
2803  * @tc.name     input slotId 0, CallTransferSettingType invalid, CallTransferType TRANSFER_TYPE_BUSY, transferNum was
2804  *              too long, test SetCallTransferInfo() return failed
2805  * @tc.desc     Function test
2806  */
2807 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0600, Function | MediumTest | Level3)
2808 {
2809     AccessToken token;
2810     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2811         return;
2812     }
2813     CallTransferInfo info;
2814     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2815     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2816     if (strcpy_s(info.transferNum, kMaxNumberLen + 2,
2817             "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901") !=
2818         EOK) {
2819         TELEPHONY_LOGE("strcpy_s fail.");
2820         return;
2821     }
2822 
2823     if (HasSimCard(SIM1_SLOTID)) {
2824         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info), CALL_ERR_NUMBER_OUT_OF_RANGE);
2825     }
2826     if (HasSimCard(SIM2_SLOTID)) {
2827         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info), CALL_ERR_NUMBER_OUT_OF_RANGE);
2828     }
2829 }
2830 
2831 /**
2832  * @tc.number   Telephony_CallManager_SetCallTransferInfo_0700
2833  * @tc.name     input slotId 0, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType TRANSFER_TYPE_BUSY,
2834  *              test SetCallTransferInfo()
2835  * @tc.desc     Function test
2836  */
2837 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0700, Function | MediumTest | Level3)
2838 {
2839     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2840         return;
2841     }
2842     CallTransferInfo info;
2843     info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE;
2844     info.type = CallTransferType::TRANSFER_TYPE_BUSY;
2845     if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "123") != EOK) {
2846         TELEPHONY_LOGE("strcpy_s fail.");
2847         return;
2848     }
2849 
2850     if (HasSimCard(SIM1_SLOTID)) {
2851         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info), TELEPHONY_ERR_PERMISSION_ERR);
2852     }
2853     if (HasSimCard(SIM2_SLOTID)) {
2854         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info), TELEPHONY_ERR_PERMISSION_ERR);
2855     }
2856 }
2857 
2858 #ifndef CALL_MANAGER_IMS_LITE_UNSUPPORT
2859 /******************************************* Test EnableImsSwitch() ********************************************/
2860 /**
2861  * @tc.number   Telephony_CallManager_EnableImsSwitch_0100
2862  * @tc.name     input slotId 0, test EnableImsSwitch
2863  * @tc.desc     Function test
2864  */
2865 HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0100, Function | MediumTest | Level3)
2866 {
2867     AccessToken token;
2868     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2869         return;
2870     }
2871 
2872     if (HasSimCard(SIM1_SLOTID)) {
2873         EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM1_SLOTID), RETURN_VALUE_IS_ZERO);
2874     }
2875     if (HasSimCard(SIM2_SLOTID)) {
2876         EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM2_SLOTID), RETURN_VALUE_IS_ZERO);
2877     }
2878 }
2879 
2880 /**
2881  * @tc.number   Telephony_CallManager_EnableImsSwitch_0200
2882  * @tc.name     input invalid slotId, test EnableImsSwitch return failed
2883  * @tc.desc     Function test
2884  */
2885 HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0200, Function | MediumTest | Level3)
2886 {
2887     AccessToken token;
2888     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2889         return;
2890     }
2891 
2892     EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(INVALID_SLOT_ID), CALL_ERR_INVALID_SLOT_ID);
2893 }
2894 
2895 /**
2896  * @tc.number   Telephony_CallManager_EnableImsSwitch_0300
2897  * @tc.name     input slotId was out of count, test EnableImsSwitch return failed
2898  * @tc.desc     Function test
2899  */
2900 HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0300, Function | MediumTest | Level3)
2901 {
2902     AccessToken token;
2903     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2904         return;
2905     }
2906 
2907     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2908     EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(slotId), CALL_ERR_INVALID_SLOT_ID);
2909 }
2910 
2911 /**
2912  * @tc.number   Telephony_CallManager_EnableImsSwitch_0400
2913  * @tc.name     test EnableImsSwitch without permission
2914  * @tc.desc     Function test
2915  */
2916 HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0400, Function | MediumTest | Level3)
2917 {
2918     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2919         return;
2920     }
2921 
2922     if (HasSimCard(SIM1_SLOTID)) {
2923         EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM1_SLOTID), TELEPHONY_ERR_PERMISSION_ERR);
2924     }
2925     if (HasSimCard(SIM2_SLOTID)) {
2926         EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM2_SLOTID), TELEPHONY_ERR_PERMISSION_ERR);
2927     }
2928 }
2929 
2930 /******************************************* Test DisableImsSwitch() ********************************************/
2931 /**
2932  * @tc.number   Telephony_CallManager_DisableImsSwitch_0100
2933  * @tc.name     input slotId 0, test DisableImsSwitch
2934  * @tc.desc     Function test
2935  */
2936 HWTEST_F(CallManagerGtest, Telephony_CallManager_DisableImsSwitch_0100, Function | MediumTest | Level3)
2937 {
2938     AccessToken token;
2939     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2940         return;
2941     }
2942 
2943     if (HasSimCard(SIM1_SLOTID)) {
2944         EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(SIM1_SLOTID), RETURN_VALUE_IS_ZERO);
2945     }
2946     if (HasSimCard(SIM2_SLOTID)) {
2947         EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(SIM2_SLOTID), RETURN_VALUE_IS_ZERO);
2948     }
2949 }
2950 
2951 /**
2952  * @tc.number   Telephony_CallManager_DisableImsSwitch_0200
2953  * @tc.name     input invalid slotId, test DisableImsSwitch return failed
2954  * @tc.desc     Function test
2955  */
2956 HWTEST_F(CallManagerGtest, Telephony_CallManager_DisableImsSwitch_0200, Function | MediumTest | Level3)
2957 {
2958     AccessToken token;
2959     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2960         return;
2961     }
2962 
2963     EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(INVALID_SLOT_ID), CALL_ERR_INVALID_SLOT_ID);
2964 }
2965 
2966 /**
2967  * @tc.number   Telephony_CallManager_DisableImsSwitch_0300
2968  * @tc.name     input slotId was out of count, test DisableImsSwitch return failed
2969  * @tc.desc     Function test
2970  */
2971 HWTEST_F(CallManagerGtest, Telephony_CallManager_DisableImsSwitch_0300, Function | MediumTest | Level3)
2972 {
2973     AccessToken token;
2974     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2975         return;
2976     }
2977 
2978     int32_t slotId = SIM_SLOT_COUNT; // out of the count
2979     EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(slotId), CALL_ERR_INVALID_SLOT_ID);
2980 }
2981 
2982 /******************************************* Test IsImsSwitchEnabled() ********************************************/
2983 /**
2984  * @tc.number   Telephony_CallManager_IsImsSwitchEnabled_0100
2985  * @tc.name     input slotId 0, test IsImsSwitchEnabled
2986  * @tc.desc     Function test
2987  */
2988 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsImsSwitchEnabled_0100, Function | MediumTest | Level3)
2989 {
2990     AccessToken token;
2991     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2992         return;
2993     }
2994 
2995     bool enabled;
2996     if (HasSimCard(SIM1_SLOTID)) {
2997         EXPECT_EQ(CallManagerGtest::clientPtr_->IsImsSwitchEnabled(SIM1_SLOTID, enabled), RETURN_VALUE_IS_ZERO);
2998     }
2999     if (HasSimCard(SIM2_SLOTID)) {
3000         EXPECT_EQ(CallManagerGtest::clientPtr_->IsImsSwitchEnabled(SIM2_SLOTID, enabled), RETURN_VALUE_IS_ZERO);
3001     }
3002 }
3003 
3004 /**
3005  * @tc.number   Telephony_CallManager_IsImsSwitchEnabled_0200
3006  * @tc.name     input invalid slotId, test IsImsSwitchEnabled return failed
3007  * @tc.desc     Function test
3008  */
3009 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsImsSwitchEnabled_0200, Function | MediumTest | Level3)
3010 {
3011     AccessToken token;
3012     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3013         return;
3014     }
3015 
3016     bool enabled;
3017     EXPECT_EQ(CallManagerGtest::clientPtr_->IsImsSwitchEnabled(INVALID_SLOT_ID, enabled), CALL_ERR_INVALID_SLOT_ID);
3018 }
3019 
3020 /**
3021  * @tc.number   Telephony_CallManager_IsImsSwitchEnabled_0300
3022  * @tc.name     input slotId was out of count, test IsImsSwitchEnabled return failed
3023  * @tc.desc     Function test
3024  */
3025 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsImsSwitchEnabled_0300, Function | MediumTest | Level3)
3026 {
3027     AccessToken token;
3028     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3029         return;
3030     }
3031 
3032     int32_t slotId = SIM_SLOT_COUNT; // out of the count
3033     bool enabled;
3034     EXPECT_EQ(CallManagerGtest::clientPtr_->IsImsSwitchEnabled(slotId, enabled), CALL_ERR_INVALID_SLOT_ID);
3035 }
3036 
3037 /******************************************* Test ControlCamera() *********************************************/
3038 /**
3039  * @tc.number   Telephony_CallManager_ControlCamera_0100
3040  * @tc.name     input camera id lcam001, Test ControlCamera, returns 0 if success
3041  * @tc.desc     Function test
3042  */
3043 HWTEST_F(CallManagerGtest, Telephony_CallManager_ControlCamera_0100, Function | MediumTest | Level0)
3044 {
3045     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3046         return;
3047     }
3048     // 3516DV300 camera id string is "lcam001"
3049     std::string id = "lcam001";
3050 
3051     std::u16string cameraID = Str8ToStr16(id);
3052     EXPECT_EQ(CallManagerGtest::clientPtr_->ControlCamera(cameraID), RETURN_VALUE_IS_ZERO);
3053 }
3054 
3055 /**
3056  * @tc.number   Telephony_CallManager_ControlCamera_0200
3057  * @tc.name     input error camera id xtsautotest123456, Test ControlCamera, return err code if failed
3058  * @tc.desc     Function test
3059  */
3060 HWTEST_F(CallManagerGtest, Telephony_CallManager_ControlCamera_0200, Function | MediumTest | Level2)
3061 {
3062     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3063         return;
3064     }
3065     std::string id = "xtsautotest123456";
3066 
3067     std::u16string cameraID = Str8ToStr16(id);
3068     EXPECT_NE(CallManagerGtest::clientPtr_->ControlCamera(cameraID), RETURN_VALUE_IS_ZERO);
3069 }
3070 
3071 /**
3072  * @tc.number   Telephony_CallManager_ControlCamera_0300
3073  * @tc.name     input error camera id xtsautotest123456, Test ControlCamera,
3074  *              then input empty camera id, Test ControlCamera
3075  * @tc.desc     Function test
3076  */
3077 HWTEST_F(CallManagerGtest, Telephony_CallManager_ControlCamera_0300, Function | MediumTest | Level2)
3078 {
3079     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3080         return;
3081     }
3082     std::string id = "lcam001";
3083 
3084     std::u16string cameraID = Str8ToStr16(id);
3085     EXPECT_EQ(CallManagerGtest::clientPtr_->ControlCamera(cameraID), RETURN_VALUE_IS_ZERO);
3086 
3087     id = "";
3088     cameraID = Str8ToStr16(id);
3089     EXPECT_EQ(CallManagerGtest::clientPtr_->ControlCamera(cameraID), RETURN_VALUE_IS_ZERO);
3090 }
3091 
3092 /**
3093  * @tc.number   Telephony_CallManager_ControlCamera_0600
3094  * @tc.name     input empty camera id, Test ControlCamera, returns error code if failed
3095  * @tc.desc     Function test
3096  */
3097 HWTEST_F(CallManagerGtest, Telephony_CallManager_ControlCamera_0600, Function | MediumTest | Level2)
3098 {
3099     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3100         return;
3101     }
3102     std::string id = "";
3103 
3104     std::u16string cameraID = Str8ToStr16(id);
3105     EXPECT_NE(CallManagerGtest::clientPtr_->ControlCamera(cameraID), RETURN_VALUE_IS_ZERO);
3106 }
3107 
3108 /******************************************* Test SetPreviewWindow() *********************************************/
3109 /**
3110  * @tc.number   Telephony_CallManager_SetPreviewWindow_0100
3111  * @tc.name     input x:0, y:0, z:-1, width:200, height:200, Test set preview window
3112  * @tc.desc     Function test
3113  */
3114 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPreviewWindow_0100, Function | MediumTest | Level2)
3115 {
3116     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3117         return;
3118     }
3119     VideoWindow window;
3120     window.x = 0;
3121     window.y = 0;
3122     window.z = -1;
3123     window.width = 200;
3124     window.height = 200;
3125     EXPECT_NE(CallManagerGtest::clientPtr_->SetPreviewWindow(window), RETURN_VALUE_IS_ZERO);
3126 }
3127 
3128 /**
3129  * @tc.number   Telephony_CallManager_SetPreviewWindow_0200
3130  * @tc.name     input x:0, y:0, z:0, width:200, height:200, Test set preview window
3131  * @tc.desc     Function test
3132  */
3133 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPreviewWindow_0200, Function | MediumTest | Level2)
3134 {
3135     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3136         return;
3137     }
3138     VideoWindow window;
3139     window.x = 0;
3140     window.y = 0;
3141     window.z = 0;
3142     window.width = 200;
3143     window.height = 200;
3144     EXPECT_EQ(CallManagerGtest::clientPtr_->SetPreviewWindow(window), RETURN_VALUE_IS_ZERO);
3145 }
3146 
3147 /******************************************* Test SetDisplayWindow() *********************************************/
3148 /**
3149  * @tc.number   Telephony_CallManager_SetDisplayWindow_0100
3150  * @tc.name     input x:10, y:10, z:10, width:100, height:200, Test set display window
3151  * @tc.desc     Function test
3152  */
3153 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDisplayWindow_0100, Function | MediumTest | Level2)
3154 {
3155     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3156         return;
3157     }
3158     VideoWindow window;
3159     window.x = 10;
3160     window.y = 10;
3161     window.z = 10;
3162     window.width = 100;
3163     window.height = 200;
3164     EXPECT_NE(CallManagerGtest::clientPtr_->SetDisplayWindow(window), RETURN_VALUE_IS_ZERO);
3165 }
3166 
3167 /**
3168  * @tc.number   Telephony_CallManager_SetDisplayWindow_0200
3169  * @tc.name     input x:10, y:10, z:0, width:200, height:200, Test set display window
3170  * @tc.desc     Function test
3171  */
3172 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDisplayWindow_0200, Function | MediumTest | Level2)
3173 {
3174     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3175         return;
3176     }
3177     VideoWindow window;
3178     window.x = 10;
3179     window.y = 10;
3180     window.z = 0;
3181     window.width = 200;
3182     window.height = 200;
3183     EXPECT_EQ(CallManagerGtest::clientPtr_->SetDisplayWindow(window), RETURN_VALUE_IS_ZERO);
3184 }
3185 
3186 /******************************************* Test SetDeviceDirection() *********************************************/
3187 /**
3188  * @tc.number   Telephony_CallManager_SetDeviceDirection_0100
3189  * @tc.name     input invalid rotation, Test SetDeviceDirection, return error code if failed
3190  * @tc.desc     Function test
3191  */
3192 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDeviceDirection_0100, Function | MediumTest | Level2)
3193 {
3194     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3195         return;
3196     }
3197     int32_t rotation = CAMERA_ROTATION_ERROR;
3198     EXPECT_NE(CallManagerGtest::clientPtr_->SetDeviceDirection(rotation), RETURN_VALUE_IS_ZERO);
3199 }
3200 
3201 /**
3202  * @tc.number   Telephony_CallManager_SetDeviceDirection_0200
3203  * @tc.name     input rotation 0, Test SetDeviceDirection, return 0 if success
3204  * @tc.desc     Function test
3205  */
3206 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDeviceDirection_0200, Function | MediumTest | Level2)
3207 {
3208     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3209         return;
3210     }
3211     int32_t rotation = 0;
3212     EXPECT_EQ(CallManagerGtest::clientPtr_->SetDeviceDirection(rotation), RETURN_VALUE_IS_ZERO);
3213 }
3214 
3215 /**
3216  * @tc.number   Telephony_CallManager_SetDeviceDirection_0300
3217  * @tc.name     input rotation 90, Test SetDeviceDirection
3218  * @tc.desc     Function test
3219  */
3220 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDeviceDirection_0300, Function | MediumTest | Level1)
3221 {
3222     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3223         return;
3224     }
3225     int32_t rotation = CAMERA_ROTATION_90;
3226     EXPECT_EQ(CallManagerGtest::clientPtr_->SetDeviceDirection(rotation), RETURN_VALUE_IS_ZERO);
3227 }
3228 
3229 /******************************************* Test SetCameraZoom() *********************************************/
3230 /**
3231  * @tc.number   Telephony_CallManager_SetDeviceDirection_0100
3232  * @tc.name     input zoomRatio 5.0, Test SetCameraZoom
3233  * @tc.desc     Function test
3234  */
3235 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0100, Function | MediumTest | Level2)
3236 {
3237     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3238         return;
3239     }
3240     float zoomRatio = 5.0;
3241     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3242 }
3243 
3244 /**
3245  * @tc.number   Telephony_CallManager_SetDeviceDirection_0200
3246  * @tc.name     input zoomRatio 0.1, Test SetCameraZoom
3247  * @tc.desc     Function test
3248  */
3249 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0200, Function | MediumTest | Level1)
3250 {
3251     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3252         return;
3253     }
3254     float zoomRatio = 0.1;
3255     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3256 }
3257 
3258 /**
3259  * @tc.number   Telephony_CallManager_SetDeviceDirection_0300
3260  * @tc.name     input zoomRatio 10.0, Test SetCameraZoom
3261  * @tc.desc     Function test
3262  */
3263 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0300, Function | MediumTest | Level1)
3264 {
3265     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3266         return;
3267     }
3268     float zoomRatio = 10.0;
3269     EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3270 }
3271 
3272 /**
3273  * @tc.number   Telephony_CallManager_SetDeviceDirection_0400
3274  * @tc.name     input invalid para zoomRatio 15.0, Test SetCameraZoom, return error code if failed
3275  * @tc.desc     Function test
3276  */
3277 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0400, Function | MediumTest | Level1)
3278 {
3279     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3280         return;
3281     }
3282     float zoomRatio = 15.0;
3283     EXPECT_NE(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3284 }
3285 
3286 /**
3287  * @tc.number   Telephony_CallManager_SetDeviceDirection_0500
3288  * @tc.name     input invalid para zoomRatio 0.0, Test SetCameraZoom, return error code if failed
3289  * @tc.desc     Function test
3290  */
3291 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0500, Function | MediumTest | Level1)
3292 {
3293     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3294         return;
3295     }
3296     float zoomRatio = 0.0;
3297     EXPECT_NE(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3298 }
3299 
3300 /**
3301  * @tc.number   Telephony_CallManager_SetDeviceDirection_0600
3302  * @tc.name     input invalid para zoomRatio -1.0, Test SetCameraZoom, return error code if failed
3303  * @tc.desc     Function test
3304  */
3305 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0600, Function | MediumTest | Level1)
3306 {
3307     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3308         return;
3309     }
3310     float zoomRatio = -1.0;
3311     EXPECT_NE(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3312 }
3313 
3314 /**
3315  * @tc.number   Telephony_CallManager_SetDeviceDirection_0700
3316  * @tc.name     input invalid para zoomRatio 10.1, Test SetCameraZoom, return error code if failed
3317  * @tc.desc     Function test
3318  */
3319 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0700, Function | MediumTest | Level1)
3320 {
3321     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3322         return;
3323     }
3324     float zoomRatio = 10.1;
3325     EXPECT_NE(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
3326 }
3327 /******************************************* Test SetPausePicture() *********************************************/
3328 /**
3329  * @tc.number   Telephony_CallManager_SetPausePicture_0100
3330  * @tc.name     input locale picture path /system/bin/test.png that does not exist, Test SetPausePicture,
3331  *              return error code if failed
3332  * @tc.desc     Function test
3333  */
3334 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0100, Function | MediumTest | Level1)
3335 {
3336     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3337         return;
3338     }
3339     std::string pathTemp = "/system/bin/test.png";
3340     std::u16string path = Str8ToStr16(pathTemp);
3341     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3342 }
3343 
3344 /**
3345  * @tc.number   Telephony_CallManager_SetPausePicture_0200
3346  * @tc.name     input an invalid image format file path, Test SetPausePicture, return error code if failed
3347  * @tc.desc     Function test
3348  */
3349 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0200, Function | MediumTest | Level1)
3350 {
3351     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3352         return;
3353     }
3354     std::string pathTemp = "/system/bin/test.jpg";
3355     std::u16string path = Str8ToStr16(pathTemp);
3356     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3357 }
3358 
3359 /**
3360  * @tc.number   Telephony_CallManager_SetPausePicture_0300
3361  * @tc.name     input an invalid image format file path, Test SetPausePicture, return error code if failed
3362  * @tc.desc     Function test
3363  */
3364 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0300, Function | MediumTest | Level1)
3365 {
3366     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3367         return;
3368     }
3369     std::string pathTemp = "/system/bin/test.bmp";
3370     std::u16string path = Str8ToStr16(pathTemp);
3371     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3372 }
3373 
3374 /**
3375  * @tc.number   Telephony_CallManager_SetPausePicture_0400
3376  * @tc.name     input an invalid image format file path, Test SetPausePicture, return error code if failed
3377  * @tc.desc     Function test
3378  */
3379 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0400, Function | MediumTest | Level1)
3380 {
3381     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3382         return;
3383     }
3384     std::string pathTemp = "/system/bin/test.webp";
3385     std::u16string path = Str8ToStr16(pathTemp);
3386     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3387 }
3388 
3389 /**
3390  * @tc.number   Telephony_CallManager_SetPausePicture_0500
3391  * @tc.name     input remote picture path http://callManager.jpg that does not exist, Test SetPausePicture,
3392  *              return error code if failed
3393  * @tc.desc     Function test
3394  */
3395 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0500, Function | MediumTest | Level1)
3396 {
3397     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3398         return;
3399     }
3400     std::string pathTemp = "http://callManager.jpg";
3401     std::u16string path = Str8ToStr16(pathTemp);
3402     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3403 }
3404 
3405 /**
3406  * @tc.number   Telephony_CallManager_SetPausePicture_0600
3407  * @tc.name     input empty picture path, Test SetPausePicture, return error code if failed
3408  * @tc.desc     Function test
3409  */
3410 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0600, Function | MediumTest | Level1)
3411 {
3412     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3413         return;
3414     }
3415     std::string pathTemp = "";
3416     std::u16string path = Str8ToStr16(pathTemp);
3417     EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(path), RETURN_VALUE_IS_ZERO);
3418 }
3419 #endif
3420 
3421 /********************************************* Test SetAudioDevic()***********************************************/
3422 /**
3423  * @tc.number   Telephony_CallManager_SetAudioDevice_0100
3424  * @tc.name     make a normal buletoothAddress, set active bluetooth device
3425  * @tc.desc     Function test
3426  * @tc.require: issueI5JUAQ
3427  */
3428 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0100, Function | MediumTest | Level2)
3429 {
3430     AccessToken token;
3431     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3432         return;
3433     }
3434 
3435     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3436     std::string phoneNumber = "00000000000";
3437     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3438     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3439 
3440     HandsFreeAudioGateway *profile = HandsFreeAudioGateway::GetProfile();
3441     vector<BluetoothRemoteDevice> devices = profile->GetConnectedDevices();
3442     int deviceNum = devices.size();
3443     std::string address = "";
3444     const int32_t zeroDevice = 0;
3445     if (deviceNum > zeroDevice) {
3446         address = devices[0].GetDeviceAddr();
3447     }
3448 
3449     if (CallInfoManager::HasActiveStatus()) {
3450         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_BLUETOOTH_SCO, address), RETURN_VALUE_IS_ZERO);
3451     }
3452 
3453     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3454         HangUpCall();
3455         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3456     }
3457 }
3458 
3459 /**
3460  * @tc.number   Telephony_CallManager_SetAudioDevice_0200
3461  * @tc.name     make EARPIECE device type, set active EARPIECE device
3462  * @tc.desc     Function test
3463  * @tc.require: issueI5JUAQ
3464  */
3465 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0200, Function | MediumTest | Level2)
3466 {
3467     AccessToken token;
3468     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3469         return;
3470     }
3471 
3472     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3473     std::string phoneNumber = "00000000000";
3474     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3475     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3476     std::string address = "";
3477     if (CallInfoManager::HasActiveStatus()) {
3478         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_EARPIECE, address), RETURN_VALUE_IS_ZERO);
3479     }
3480 
3481     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3482         HangUpCall();
3483         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3484     }
3485 }
3486 
3487 /**
3488  * @tc.number   Telephony_CallManager_SetAudioDevice_0300
3489  * @tc.name     make SPEAKER device type, set active SPEAKER device
3490  * @tc.desc     Function test
3491  * @tc.require: issueI5JUAQ
3492  */
3493 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0300, Function | MediumTest | Level2)
3494 {
3495     AccessToken token;
3496     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3497         return;
3498     }
3499 
3500     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3501     std::string phoneNumber = "00000000000";
3502     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3503     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3504 
3505     std::string address = "";
3506     if (CallInfoManager::HasActiveStatus()) {
3507         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_SPEAKER, address), RETURN_VALUE_IS_ZERO);
3508     }
3509 
3510     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3511         HangUpCall();
3512         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3513     }
3514 }
3515 
3516 /**
3517  * @tc.number   Telephony_CallManager_SetAudioDevice_0400
3518  * @tc.name     make DEVICE_WIRED_HEADSET device type, set active DEVICE_WIRED_HEADSET device
3519  * @tc.desc     Function test
3520  * @tc.require: issueI5JUAQ
3521  */
3522 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0400, Function | MediumTest | Level2)
3523 {
3524     AccessToken token;
3525     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3526         return;
3527     }
3528 
3529     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3530     std::string phoneNumber = "00000000000";
3531     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3532     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3533 
3534     std::string address = "";
3535     if (CallInfoManager::HasActiveStatus()) {
3536         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_WIRED_HEADSET, address), RETURN_VALUE_IS_ZERO);
3537     }
3538 
3539     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3540         HangUpCall();
3541         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3542     }
3543 }
3544 
3545 /**
3546  * @tc.number   Telephony_CallManager_SetAudioDevice_0500
3547  * @tc.name     make a empty buletoothAddress, set active bluetooth device
3548  * @tc.desc     Function test
3549  * @tc.require: issueI5JUAQ
3550  */
3551 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0500, Function | MediumTest | Level2)
3552 {
3553     AccessToken token;
3554     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3555         return;
3556     }
3557 
3558     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3559     std::string phoneNumber = "00000000000";
3560     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3561     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3562 
3563     std::string address = "";
3564     if (CallInfoManager::HasActiveStatus()) {
3565         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_BLUETOOTH_SCO, address), RETURN_VALUE_IS_ZERO);
3566     }
3567 
3568     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3569         HangUpCall();
3570         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3571     }
3572 }
3573 
3574 /**
3575  * @tc.number   Telephony_CallManager_SetAudioDevice_0600
3576  * @tc.name     make SPEAKER device type, set disable device
3577  * @tc.desc     Function test
3578  * @tc.require: issueI5JUAQ
3579  */
3580 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0600, Function | MediumTest | Level2)
3581 {
3582     AccessToken token;
3583     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3584         return;
3585     }
3586 
3587     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3588     std::string phoneNumber = "00000000000";
3589     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3590     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3591 
3592     std::string address = "";
3593     if (CallInfoManager::HasActiveStatus()) {
3594         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_DISABLE, address), RETURN_VALUE_IS_ZERO);
3595     }
3596 
3597     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3598         HangUpCall();
3599         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3600     }
3601 }
3602 
3603 /**
3604  * @tc.number   Telephony_CallManager_SetAudioDevice_0700
3605  * @tc.name     make SPEAKER device type, set unknown device
3606  * @tc.desc     Function test
3607  * @tc.require: issueI5JUAQ
3608  */
3609 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0700, Function | MediumTest | Level2)
3610 {
3611     AccessToken token;
3612     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3613         return;
3614     }
3615 
3616     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3617     std::string phoneNumber = "00000000000";
3618     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3619     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3620 
3621     std::string address = "";
3622     if (CallInfoManager::HasActiveStatus()) {
3623         EXPECT_EQ(clientPtr_->SetAudioDevice(AudioDevice::DEVICE_UNKNOWN, address), RETURN_VALUE_IS_ZERO);
3624     }
3625 
3626     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3627         HangUpCall();
3628         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3629     }
3630 }
3631 
3632 /********************************************* Test SetMuted()***********************************************/
3633 /**
3634  * @tc.number   Telephony_CallManager_SetMuted_0100
3635  * @tc.name     set muted true
3636  * @tc.desc     Function test
3637  * @tc.require: issueI5K59I
3638  */
3639 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0100, Function | MediumTest | Level2)
3640 {
3641     AccessToken token;
3642     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3643         return;
3644     }
3645 
3646     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3647     std::string phoneNumber = "00000000000";
3648     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3649     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3650     bool muted = true;
3651     if (CallInfoManager::HasActiveStatus()) {
3652         EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), RETURN_VALUE_IS_ZERO);
3653     }
3654 
3655     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3656         HangUpCall();
3657         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3658     }
3659 }
3660 
3661 /**
3662  * @tc.number   Telephony_CallManager_SetMuted_0200
3663  * @tc.name     without call, set muted failed
3664  * @tc.desc     Function test
3665  * @tc.require: issueI5K59I
3666  */
3667 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0200, Function | MediumTest | Level2)
3668 {
3669     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3670         return;
3671     }
3672 
3673     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3674     bool muted = true;
3675 
3676     EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), CALL_ERR_AUDIO_SETTING_MUTE_FAILED);
3677 }
3678 
3679 /**
3680  * @tc.number   Telephony_CallManager_SetMuted_0300
3681  * @tc.name     set muted true
3682  * @tc.desc     Function test
3683  * @tc.require: issueI5K59I
3684  */
3685 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0300, Function | MediumTest | Level2)
3686 {
3687     AccessToken token;
3688     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3689         return;
3690     }
3691 
3692     EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true);
3693     std::string phoneNumber = "00000000000";
3694     int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_);
3695     EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO);
3696     bool muted = false;
3697     if (CallInfoManager::HasActiveStatus()) {
3698         EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), RETURN_VALUE_IS_ZERO);
3699     }
3700 
3701     if (clientPtr_->GetCallState() == static_cast<int>(CallStateToApp::CALL_STATE_OFFHOOK)) {
3702         HangUpCall();
3703         EXPECT_EQ(CallInfoManager::HasState(newCallId_, (int32_t)TelCallState::CALL_STATUS_DISCONNECTED), true);
3704     }
3705 }
3706 
3707 /********************************************* Test RegisterCallBack() ***********************************************/
3708 /**
3709  * @tc.number   Telephony_CallManager_RegisterCallBack_0100
3710  * @tc.name     test register callback
3711  * @tc.desc     Function test
3712  */
3713 HWTEST_F(CallManagerGtest, Telephony_CallManager_RegisterCallBack_0100, Function | MediumTest | Level3)
3714 {
3715     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3716         return;
3717     }
3718 
3719     std::unique_ptr<CallManagerCallback> callManagerCallbackPtr = std::make_unique<CallManagerCallBackStub>();
3720     if (callManagerCallbackPtr == nullptr) {
3721         return;
3722     }
3723     EXPECT_EQ(CallManagerGtest::clientPtr_->RegisterCallBack(std::move(callManagerCallbackPtr)), RETURN_VALUE_IS_ZERO);
3724 }
3725 
3726 /*************************************** Test UnRegisterCallBack() ********************************************/
3727 /**
3728  * @tc.number   Telephony_CallManager_UnRegisterCallBack_0100
3729  * @tc.name     test register callback
3730  * @tc.desc     Function test
3731  */
3732 HWTEST_F(CallManagerGtest, Telephony_CallManager_UnRegisterCallBack_0100, Function | MediumTest | Level3)
3733 {
3734     AccessToken token;
3735     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3736         return;
3737     }
3738 
3739     EXPECT_EQ(CallManagerGtest::clientPtr_->UnRegisterCallBack(), RETURN_VALUE_IS_ZERO);
3740 }
3741 
3742 /************************************ Test SetCallPreferenceMode() *****************************************/
3743 /**
3744  * @tc.number   Telephony_CallManager_SetCallPreferenceMode_0100
3745  * @tc.name     test set call preference mode cs voice only
3746  * @tc.desc     Function test
3747  */
3748 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallPreferenceMode_0100, Function | MediumTest | Level3)
3749 {
3750     AccessToken token;
3751     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3752         return;
3753     }
3754 
3755     int32_t mode = CS_VOICE_ONLY;
3756     if (HasSimCard(SIM1_SLOTID)) {
3757         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM1_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3758     }
3759     if (HasSimCard(SIM2_SLOTID)) {
3760         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM2_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3761     }
3762 }
3763 
3764 /**
3765  * @tc.number   Telephony_CallManager_SetCallPreferenceMode_0200
3766  * @tc.name     test set call preference mode with error mode
3767  * @tc.desc     Function test
3768  */
3769 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallPreferenceMode_0200, Function | MediumTest | Level3)
3770 {
3771     AccessToken token;
3772     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3773         return;
3774     }
3775 
3776     int32_t mode = 0;
3777     if (HasSimCard(SIM1_SLOTID)) {
3778         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM1_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3779     }
3780     if (HasSimCard(SIM2_SLOTID)) {
3781         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM2_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3782     }
3783 }
3784 
3785 /**
3786  * @tc.number   Telephony_CallManager_SetCallPreferenceMode_0300
3787  * @tc.name     test set call preference mode with cs voice prefered
3788  * @tc.desc     Function test
3789  */
3790 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallPreferenceMode_0300, Function | MediumTest | Level3)
3791 {
3792     AccessToken token;
3793     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3794         return;
3795     }
3796 
3797     int32_t mode = CS_VOICE_PREFERRED;
3798     if (HasSimCard(SIM1_SLOTID)) {
3799         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM1_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3800     }
3801     if (HasSimCard(SIM2_SLOTID)) {
3802         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM2_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3803     }
3804 }
3805 
3806 /**
3807  * @tc.number   Telephony_CallManager_SetCallPreferenceMode_0400
3808  * @tc.name     test set call preference mode with ims ps voice prefered
3809  * @tc.desc     Function test
3810  */
3811 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallPreferenceMode_0400, Function | MediumTest | Level3)
3812 {
3813     AccessToken token;
3814     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3815         return;
3816     }
3817 
3818     int32_t mode = IMS_PS_VOICE_PREFERRED;
3819     if (HasSimCard(SIM1_SLOTID)) {
3820         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM1_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3821     }
3822     if (HasSimCard(SIM2_SLOTID)) {
3823         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM2_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3824     }
3825 }
3826 
3827 /**
3828  * @tc.number   Telephony_CallManager_SetCallPreferenceMode_0500
3829  * @tc.name     test set call preference mode with ims ps voice only
3830  * @tc.desc     Function test
3831  */
3832 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallPreferenceMode_0500, Function | MediumTest | Level3)
3833 {
3834     AccessToken token;
3835     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3836         return;
3837     }
3838 
3839     int32_t mode = IMS_PS_VOICE_ONLY;
3840     if (HasSimCard(SIM1_SLOTID)) {
3841         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM1_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3842     }
3843     if (HasSimCard(SIM2_SLOTID)) {
3844         EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallPreferenceMode(SIM2_SLOTID, mode), RETURN_VALUE_IS_ZERO);
3845     }
3846 }
3847 
3848 /*************************************** Test IsInEmergencyCall() **************************************/
3849 /**
3850  * @tc.number   Telephony_CallManager_IsInEmergencyCall_0100
3851  * @tc.name     test is in emergency call
3852  * @tc.desc     Function test
3853  */
3854 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsInEmergencyCall_0100, Function | MediumTest | Level3)
3855 {
3856     AccessToken token;
3857     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3858         return;
3859     }
3860     bool enabled = false;
3861     EXPECT_EQ(CallManagerGtest::clientPtr_->IsInEmergencyCall(enabled), TELEPHONY_SUCCESS);
3862     EXPECT_EQ(enabled, false);
3863 }
3864 
3865 /**
3866  * @tc.number   Telephony_CallManager_IsInEmergencyCall_0200
3867  * @tc.name     test is in emergency call
3868  * @tc.desc     Function test
3869  */
3870 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsInEmergencyCall_0200, Function | MediumTest | Level3)
3871 {
3872     AccessToken token;
3873     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3874         return;
3875     }
3876     ASSERT_TRUE(blueToothClientPtr_ != nullptr);
3877     bool enabled = false;
3878     EXPECT_EQ(CallManagerGtest::blueToothClientPtr_->IsInEmergencyCall(enabled), TELEPHONY_SUCCESS);
3879     EXPECT_EQ(enabled, false);
3880 }
3881 
3882 /**
3883  * @tc.number   Telephony_CallManager_IsInEmergencyCall_0300
3884  * @tc.name     test is in emergency call without permission
3885  * @tc.desc     Function test
3886  */
3887 HWTEST_F(CallManagerGtest, Telephony_CallManager_IsInEmergencyCall_0300, Function | MediumTest | Level3)
3888 {
3889     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3890         return;
3891     }
3892     bool enabled = false;
3893     EXPECT_NE(CallManagerGtest::clientPtr_->IsInEmergencyCall(enabled), TELEPHONY_SUCCESS);
3894     EXPECT_EQ(enabled, false);
3895 }
3896 
3897 /****************************************** Test MuteRinger() *******************************************/
3898 /**
3899  * @tc.number   Telephony_CallManager_MuteRinger_0100
3900  * @tc.name     test mute ringer
3901  * @tc.desc     Function test
3902  */
3903 HWTEST_F(CallManagerGtest, Telephony_CallManager_MuteRinger_0100, Function | MediumTest | Level3)
3904 {
3905     AccessToken token;
3906     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3907         return;
3908     }
3909 
3910     EXPECT_EQ(CallManagerGtest::clientPtr_->MuteRinger(), RETURN_VALUE_IS_ZERO);
3911 }
3912 
3913 /********************************************* Test GetImsConfig() ************************************************/
3914 /**
3915  * @tc.number   Telephony_CallManager_GetImsConfig_0100
3916  * @tc.name     test get ims config item video quality
3917  * @tc.desc     Function test
3918  */
3919 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0100, Function | MediumTest | Level3)
3920 {
3921     AccessToken token;
3922     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3923         return;
3924     }
3925 
3926     if (HasSimCard(SIM1_SLOTID)) {
3927         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, ITEM_VIDEO_QUALITY), RETURN_VALUE_IS_ZERO);
3928     }
3929     if (HasSimCard(SIM2_SLOTID)) {
3930         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, ITEM_VIDEO_QUALITY), RETURN_VALUE_IS_ZERO);
3931     }
3932 }
3933 
3934 /**
3935  * @tc.number   Telephony_CallManager_GetImsConfig_0200
3936  * @tc.name     test get ims config item ims switch status
3937  * @tc.desc     Function test
3938  */
3939 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0200, Function | MediumTest | Level3)
3940 {
3941     AccessToken token;
3942     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3943         return;
3944     }
3945 
3946     if (HasSimCard(SIM1_SLOTID)) {
3947         EXPECT_EQ(
3948             CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, ITEM_IMS_SWITCH_STATUS), RETURN_VALUE_IS_ZERO);
3949     }
3950     if (HasSimCard(SIM2_SLOTID)) {
3951         EXPECT_EQ(
3952             CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, ITEM_IMS_SWITCH_STATUS), RETURN_VALUE_IS_ZERO);
3953     }
3954 }
3955 
3956 /**
3957  * @tc.number   Telephony_CallManager_GetImsConfig_0300
3958  * @tc.name     test get ims config item with invalid item
3959  * @tc.desc     Function test
3960  */
3961 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0300, Function | MediumTest | Level3)
3962 {
3963     AccessToken token;
3964     ImsConfigItem item = static_cast<ImsConfigItem>(2);
3965     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3966         return;
3967     }
3968 
3969     if (HasSimCard(SIM1_SLOTID)) {
3970         EXPECT_EQ(
3971             CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, item), RETURN_VALUE_IS_ZERO);
3972     }
3973     if (HasSimCard(SIM2_SLOTID)) {
3974         EXPECT_EQ(
3975             CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, item), RETURN_VALUE_IS_ZERO);
3976     }
3977 }
3978 
3979 /********************************************* Test SetImsConfig() ************************************************/
3980 /**
3981  * @tc.number   Telephony_CallManager_SetImsConfig_0100
3982  * @tc.name     test set ims config item video quality
3983  * @tc.desc     Function test
3984  */
3985 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0100, Function | MediumTest | Level3)
3986 {
3987     AccessToken token;
3988     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
3989         return;
3990     }
3991 
3992     std::u16string value = u"123";
3993     if (HasSimCard(SIM1_SLOTID)) {
3994         EXPECT_EQ(
3995             CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, ITEM_VIDEO_QUALITY, value), RETURN_VALUE_IS_ZERO);
3996     }
3997     if (HasSimCard(SIM2_SLOTID)) {
3998         EXPECT_EQ(
3999             CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, ITEM_VIDEO_QUALITY, value), RETURN_VALUE_IS_ZERO);
4000     }
4001 }
4002 
4003 /**
4004  * @tc.number   Telephony_CallManager_SetImsConfig_0200
4005  * @tc.name     test set ims config item ims switch status
4006  * @tc.desc     Function test
4007  */
4008 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0200, Function | MediumTest | Level3)
4009 {
4010     AccessToken token;
4011     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4012         return;
4013     }
4014 
4015     std::u16string value = u"123";
4016     if (HasSimCard(SIM1_SLOTID)) {
4017         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, ITEM_IMS_SWITCH_STATUS, value),
4018             RETURN_VALUE_IS_ZERO);
4019     }
4020     if (HasSimCard(SIM2_SLOTID)) {
4021         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, ITEM_IMS_SWITCH_STATUS, value),
4022             RETURN_VALUE_IS_ZERO);
4023     }
4024 }
4025 
4026 /**
4027  * @tc.number   Telephony_CallManager_SetImsConfig_0300
4028  * @tc.name     test set ims config item with invalid item
4029  * @tc.desc     Function test
4030  */
4031 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0300, Function | MediumTest | Level3)
4032 {
4033     AccessToken token;
4034     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4035         return;
4036     }
4037 
4038     std::u16string value = u"123";
4039     ImsConfigItem item = static_cast<ImsConfigItem>(2);
4040     if (HasSimCard(SIM1_SLOTID)) {
4041         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, item, value),
4042             RETURN_VALUE_IS_ZERO);
4043     }
4044     if (HasSimCard(SIM2_SLOTID)) {
4045         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, item, value),
4046             RETURN_VALUE_IS_ZERO);
4047     }
4048 }
4049 
4050 /*********************************** Test GetImsFeatureValue() ****************************************/
4051 /**
4052  * @tc.number   Telephony_CallManager_GetImsFeatureValue_0100
4053  * @tc.name     test get ims feature value type voice over lte
4054  * @tc.desc     Function test
4055  */
4056 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0100, Function | MediumTest | Level3)
4057 {
4058     AccessToken token;
4059     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4060         return;
4061     }
4062 
4063     if (HasSimCard(SIM1_SLOTID)) {
4064         EXPECT_EQ(
4065             CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_VOICE_OVER_LTE), RETURN_VALUE_IS_ZERO);
4066     }
4067     if (HasSimCard(SIM2_SLOTID)) {
4068         EXPECT_EQ(
4069             CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_VOICE_OVER_LTE), RETURN_VALUE_IS_ZERO);
4070     }
4071 }
4072 
4073 /**
4074  * @tc.number   Telephony_CallManager_GetImsFeatureValue_0200
4075  * @tc.name     test get ims feature value type video over lte
4076  * @tc.desc     Function test
4077  */
4078 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0200, Function | MediumTest | Level3)
4079 {
4080     AccessToken token;
4081     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4082         return;
4083     }
4084 
4085     if (HasSimCard(SIM1_SLOTID)) {
4086         EXPECT_EQ(
4087             CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_VIDEO_OVER_LTE), RETURN_VALUE_IS_ZERO);
4088     }
4089     if (HasSimCard(SIM2_SLOTID)) {
4090         EXPECT_EQ(
4091             CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_VIDEO_OVER_LTE), RETURN_VALUE_IS_ZERO);
4092     }
4093 }
4094 
4095 /**
4096  * @tc.number   Telephony_CallManager_GetImsFeatureValue_0300
4097  * @tc.name     test get ims feature value type ss over ut
4098  * @tc.desc     Function test
4099  */
4100 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0300, Function | MediumTest | Level3)
4101 {
4102     AccessToken token;
4103     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4104         return;
4105     }
4106 
4107     if (HasSimCard(SIM1_SLOTID)) {
4108         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_SS_OVER_UT), RETURN_VALUE_IS_ZERO);
4109     }
4110     if (HasSimCard(SIM2_SLOTID)) {
4111         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_SS_OVER_UT), RETURN_VALUE_IS_ZERO);
4112     }
4113 }
4114 
4115 /**
4116  * @tc.number   Telephony_CallManager_GetImsFeatureValue_0400
4117  * @tc.name     test get ims feature value with invalid type
4118  * @tc.desc     Function test
4119  */
4120 HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0400, Function | MediumTest | Level3)
4121 {
4122     AccessToken token;
4123     FeatureType type = static_cast<FeatureType>(3);
4124     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4125         return;
4126     }
4127 
4128     if (HasSimCard(SIM1_SLOTID)) {
4129         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, type), RETURN_VALUE_IS_ZERO);
4130     }
4131     if (HasSimCard(SIM2_SLOTID)) {
4132         EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, type), RETURN_VALUE_IS_ZERO);
4133     }
4134 }
4135 
4136 /***************************************** Test SetImsFeatureValue() ***************************************/
4137 /**
4138  * @tc.number   Telephony_CallManager_SetImsFeatureValue_0100
4139  * @tc.name     test set ims feature value type voice over lte
4140  * @tc.desc     Function test
4141  */
4142 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0100, Function | MediumTest | Level3)
4143 {
4144     AccessToken token;
4145     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4146         return;
4147     }
4148 
4149     int32_t value = 1;
4150     if (HasSimCard(SIM1_SLOTID)) {
4151         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_VOICE_OVER_LTE, value),
4152             RETURN_VALUE_IS_ZERO);
4153     }
4154     if (HasSimCard(SIM2_SLOTID)) {
4155         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_VOICE_OVER_LTE, value),
4156             RETURN_VALUE_IS_ZERO);
4157     }
4158 }
4159 
4160 /**
4161  * @tc.number   Telephony_CallManager_SetImsFeatureValue_0200
4162  * @tc.name     test set ims feature value type video over lte
4163  * @tc.desc     Function test
4164  */
4165 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0200, Function | MediumTest | Level3)
4166 {
4167     AccessToken token;
4168     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4169         return;
4170     }
4171 
4172     int32_t value = 1;
4173     if (HasSimCard(SIM1_SLOTID)) {
4174         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_VIDEO_OVER_LTE, value),
4175             RETURN_VALUE_IS_ZERO);
4176     }
4177     if (HasSimCard(SIM2_SLOTID)) {
4178         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_VIDEO_OVER_LTE, value),
4179             RETURN_VALUE_IS_ZERO);
4180     }
4181 }
4182 
4183 /**
4184  * @tc.number   Telephony_CallManager_SetImsFeatureValue_0300
4185  * @tc.name     test set ims feature value type ss over ut
4186  * @tc.desc     Function test
4187  */
4188 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0300, Function | MediumTest | Level3)
4189 {
4190     AccessToken token;
4191     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4192         return;
4193     }
4194 
4195     int32_t value = 1;
4196     if (HasSimCard(SIM1_SLOTID)) {
4197         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_SS_OVER_UT, value),
4198             RETURN_VALUE_IS_ZERO);
4199     }
4200     if (HasSimCard(SIM2_SLOTID)) {
4201         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_SS_OVER_UT, value),
4202             RETURN_VALUE_IS_ZERO);
4203     }
4204 }
4205 
4206 /**
4207  * @tc.number   Telephony_CallManager_SetImsFeatureValue_0400
4208  * @tc.name     test set ims feature value with invalid type
4209  * @tc.desc     Function test
4210  */
4211 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0400, Function | MediumTest | Level3)
4212 {
4213     AccessToken token;
4214     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4215         return;
4216     }
4217 
4218     int32_t value = 1;
4219     FeatureType type = static_cast<FeatureType>(3);
4220     if (HasSimCard(SIM1_SLOTID)) {
4221         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, type, value), RETURN_VALUE_IS_ZERO);
4222     }
4223     if (HasSimCard(SIM2_SLOTID)) {
4224         EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, type, value), RETURN_VALUE_IS_ZERO);
4225     }
4226 }
4227 
4228 /************************************** Test UpdateImsCallMode() ****************************************/
4229 /**
4230  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0100
4231  * @tc.name     test update ims call mode audio only
4232  * @tc.desc     Function test
4233  */
4234 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0100, Function | MediumTest | Level3)
4235 {
4236     AccessToken token;
4237     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4238         return;
4239     }
4240 
4241     int32_t callId = 1;
4242     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_AUDIO_ONLY), RETURN_VALUE_IS_ZERO);
4243 }
4244 
4245 /**
4246  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0200
4247  * @tc.name     test update ims call mode send only
4248  * @tc.desc     Function test
4249  */
4250 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0200, Function | MediumTest | Level3)
4251 {
4252     AccessToken token;
4253     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4254         return;
4255     }
4256 
4257     int32_t callId = 1;
4258     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_SEND_ONLY), RETURN_VALUE_IS_ZERO);
4259 }
4260 
4261 /**
4262  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0300
4263  * @tc.name     test update ims call mode recerve only
4264  * @tc.desc     Function test
4265  */
4266 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0300, Function | MediumTest | Level3)
4267 {
4268     AccessToken token;
4269     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4270         return;
4271     }
4272 
4273     int32_t callId = 1;
4274     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_RECEIVE_ONLY), RETURN_VALUE_IS_ZERO);
4275 }
4276 
4277 /**
4278  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0400
4279  * @tc.name     test update ims call mode send receive
4280  * @tc.desc     Function test
4281  */
4282 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0400, Function | MediumTest | Level3)
4283 {
4284     AccessToken token;
4285     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4286         return;
4287     }
4288 
4289     int32_t callId = 1;
4290     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_SEND_RECEIVE), RETURN_VALUE_IS_ZERO);
4291 }
4292 
4293 /**
4294  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0500
4295  * @tc.name     test update ims call mode video paused
4296  * @tc.desc     Function test
4297  */
4298 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0500, Function | MediumTest | Level3)
4299 {
4300     AccessToken token;
4301     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4302         return;
4303     }
4304 
4305     int32_t callId = 1;
4306     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_VIDEO_PAUSED), RETURN_VALUE_IS_ZERO);
4307 }
4308 
4309 /**
4310  * @tc.number   Telephony_CallManager_UpdateImsCallMode_0600
4311  * @tc.name     test update ims call with invalid mode
4312  * @tc.desc     Function test
4313  */
4314 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0600, Function | MediumTest | Level3)
4315 {
4316     AccessToken token;
4317     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4318         return;
4319     }
4320 
4321     int32_t callId = 1;
4322     ImsCallMode mode = static_cast<ImsCallMode>(5);
4323     EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, mode), RETURN_VALUE_IS_ZERO);
4324 }
4325 
4326 /********************************************* Test StartRtt() ************************************************/
4327 /**
4328  * @tc.number   Telephony_CallManager_StartRtt_0100
4329  * @tc.name     test start rtt
4330  * @tc.desc     Function test
4331  */
4332 HWTEST_F(CallManagerGtest, Telephony_CallManager_StartRtt_0100, Function | MediumTest | Level3)
4333 {
4334     AccessToken token;
4335     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4336         return;
4337     }
4338 
4339     std::u16string msg = u"123";
4340     int32_t callId = 1;
4341     EXPECT_NE(CallManagerGtest::clientPtr_->StartRtt(callId, msg), RETURN_VALUE_IS_ZERO);
4342 }
4343 
4344 /********************************************* Test StopRtt() ************************************************/
4345 /**
4346  * @tc.number   Telephony_CallManager_StopRtt_0100
4347  * @tc.name     test stop rtt
4348  * @tc.desc     Function test
4349  */
4350 HWTEST_F(CallManagerGtest, Telephony_CallManager_StopRtt_0100, Function | MediumTest | Level3)
4351 {
4352     AccessToken token;
4353     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4354         return;
4355     }
4356     int32_t callId = 1;
4357     EXPECT_NE(CallManagerGtest::clientPtr_->StopRtt(callId), RETURN_VALUE_IS_ZERO);
4358 }
4359 
4360 /********************************************* Test JoinConference() *********************************************/
4361 /**
4362  * @tc.number   Telephony_CallManager_JoinConference_0100
4363  * @tc.name     test join conference
4364  * @tc.desc     Function test
4365  */
4366 HWTEST_F(CallManagerGtest, Telephony_CallManager_JoinConference_0100, Function | MediumTest | Level3)
4367 {
4368     AccessToken token;
4369     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4370         return;
4371     }
4372     int32_t callId = 1;
4373     std::vector<std::u16string> numberList { u"0000000000" };
4374     EXPECT_NE(CallManagerGtest::clientPtr_->JoinConference(callId, numberList), RETURN_VALUE_IS_ZERO);
4375 }
4376 
4377 /**
4378  * @tc.number   Telephony_CallManager_JoinConference_0200
4379  * @tc.name     test join conference with empty numberList
4380  * @tc.desc     Function test
4381  */
4382 HWTEST_F(CallManagerGtest, Telephony_CallManager_JoinConference_0200, Function | MediumTest | Level3)
4383 {
4384     AccessToken token;
4385     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4386         return;
4387     }
4388     int32_t callId = 1;
4389     std::vector<std::u16string> numberList;
4390     EXPECT_NE(CallManagerGtest::clientPtr_->JoinConference(callId, numberList), CALL_ERR_PHONE_NUMBER_EMPTY);
4391 }
4392 
4393 /*********************************** Test ReportOttCallDetailsInfo() ***********************************/
4394 /**
4395  * @tc.number   Telephony_CallManager_ReportOttCallDetailsInfo_0100
4396  * @tc.name     test report ott call details info
4397  * @tc.desc     Function test
4398  */
4399 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportOttCallDetailsInfo_0100, Function | MediumTest | Level3)
4400 {
4401     AccessToken token;
4402     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4403         return;
4404     }
4405     OttCallDetailsInfo info;
4406     const char *number = "000000";
4407     memcpy_s(info.phoneNum, kMaxNumberLen, number, strlen(number));
4408     const char *bundleName = "com.ohos.tddtest";
4409     memcpy_s(info.bundleName, kMaxNumberLen, bundleName, strlen(bundleName));
4410     info.callState = TelCallState::CALL_STATUS_DIALING;
4411     info.videoState = VideoStateType::TYPE_VOICE;
4412     std::vector<OttCallDetailsInfo> ottVec { info };
4413     EXPECT_EQ(CallManagerGtest::clientPtr_->ReportOttCallDetailsInfo(ottVec), RETURN_VALUE_IS_ZERO);
4414 }
4415 
4416 /**
4417  * @tc.number   Telephony_CallManager_ReportOttCallDetailsInfo_0200
4418  * @tc.name     test report ott call details info
4419  * @tc.desc     Function test
4420  */
4421 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportOttCallDetailsInfo_0200, Function | MediumTest | Level3)
4422 {
4423     AccessToken token;
4424     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4425         return;
4426     }
4427     std::vector<OttCallDetailsInfo> ottVec;
4428     EXPECT_NE(CallManagerGtest::clientPtr_->ReportOttCallDetailsInfo(ottVec), RETURN_VALUE_IS_ZERO);
4429 }
4430 
4431 /************************************* Test ReportOttCallEventInfo() ************************************/
4432 /**
4433  * @tc.number   Telephony_CallManager_ReportOttCallEventInfo_0100
4434  * @tc.name     test report ott call details info
4435  * @tc.desc     Function test
4436  */
4437 HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportOttCallEventInfo_0100, Function | MediumTest | Level3)
4438 {
4439     AccessToken token;
4440     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4441         return;
4442     }
4443     OttCallEventInfo info;
4444     info.ottCallEventId = OttCallEventId::OTT_CALL_EVENT_FUNCTION_UNSUPPORTED;
4445     char bundlename[] = "com.ohos.tddtest";
4446     memcpy_s(info.bundleName, kMaxNumberLen, bundlename, strlen(bundlename));
4447     EXPECT_NE(CallManagerGtest::clientPtr_->ReportOttCallEventInfo(info), RETURN_VALUE_IS_ZERO);
4448 }
4449 
4450 /*********************************** Test HasVoiceCapability() ***************************************/
4451 /**
4452  * @tc.number   Telephony_CallManager_HasVoiceCapability_0100
4453  * @tc.name     test report ott call details info
4454  * @tc.desc     Function test
4455  */
4456 HWTEST_F(CallManagerGtest, Telephony_CallManager_HasVoiceCapability_0100, Function | MediumTest | Level3)
4457 {
4458     AccessToken token;
4459     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
4460         return;
4461     }
4462 
4463     EXPECT_EQ(CallManagerGtest::clientPtr_->HasVoiceCapability(), true);
4464 }
4465 
4466 /*********************************** Test Dump() ***************************************/
4467 /**
4468  * @tc.number   Telephony_CallManager_TestDump_0100
4469  * @tc.name     Test Dump
4470  * @tc.desc     Function test
4471  */
4472 HWTEST_F(CallManagerGtest, Telephony_CallManager_TestDump_0100, Function | MediumTest | Level3)
4473 {
4474     std::vector<std::u16string> emptyArgs = {};
4475     std::vector<std::u16string> args = { u"test", u"test1" };
4476     EXPECT_EQ(DelayedSingleton<CallManagerService>::GetInstance()->Dump(-1, args), TELEPHONY_ERR_ARGUMENT_INVALID);
4477     EXPECT_EQ(DelayedSingleton<CallManagerService>::GetInstance()->Dump(0, emptyArgs), 0);
4478     EXPECT_EQ(DelayedSingleton<CallManagerService>::GetInstance()->Dump(0, args), 0);
4479 }
4480 
4481 #else // TEL_TEST_UNSUPPORT
4482 /**************************************** Test For Unsupported Platform **********************************************/
4483 /**
4484  * @tc.number   Telephony_CallManager_Mock_0100
4485  * @tc.name     test for unsupported platform
4486  * @tc.desc     Function test
4487  */
4488 HWTEST_F(CallManagerGtest, Telephony_CallManager_Mock_0100, Function | MediumTest | Level3)
4489 {
4490     EXPECT_TRUE(true);
4491 }
4492 
4493 #endif // TEL_TEST_UNSUPPORT
4494 } // namespace Telephony
4495 } // namespace OHOS
4496