1 /*
2 * Copyright (C) 2021-2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #define private public
17 #define protected public
18 #include "call_manager_gtest.h"
19
20 #include <gtest/gtest.h>
21 #include <cstring>
22 #include <string>
23
24 #include "bluetooth_hfp_ag.h"
25 #include "call_manager_connect.h"
26 #include "call_manager_service.h"
27 #include "surface_utils.h"
28 #include "telephony_types.h"
29 #include "voip_call.h"
30
31 using namespace OHOS::Bluetooth;
32 namespace OHOS {
33 namespace Telephony {
34 using namespace testing::ext;
35 constexpr int16_t SIM2_SLOTID = 1;
36 constexpr int16_t SIM1_SLOTID_NO_CARD = 0;
37 constexpr int16_t RETURN_VALUE_IS_ZERO = 0;
38 constexpr int16_t INVALID_NEGATIVE_ID = -100;
39 constexpr int16_t INVALID_POSITIVE_ID = 100;
40 constexpr int INVALID_DIAL_TYPE = 3;
41 constexpr int WAIT_TIME = 3;
42 constexpr int16_t CAMERA_ROTATION_90 = 90;
43 constexpr int16_t CAMERA_ROTATION_ERROR = 50;
44 constexpr int16_t SLEEP_1000_MS = 1000;
45 constexpr int BASE_TIME_MS = 1000;
46 constexpr int SLEEP_TIME_MS = 50;
47 constexpr int MAX_LIMIT_TIME = 18000;
48 constexpr int16_t SIM1_SLOTID = 0;
49 const std::string PHONE_NUMBER = "0000000000";
50
51 std::unordered_map<int32_t, std::unordered_set<int32_t>> g_callStateMap;
52 int32_t g_newCallId = -1;
53 std::mutex CallInfoManager::mutex_;
54 int16_t CallInfoManager::newCallState_;
55 CallAttributeInfo CallInfoManager::updateCallInfo_;
56 std::unordered_set<int32_t> CallInfoManager::callIdSet_;
57
CallDetailsChange(const CallAttributeInfo & info)58 int32_t CallInfoManager::CallDetailsChange(const CallAttributeInfo &info)
59 {
60 TELEPHONY_LOGI("CallDetailsChange Start");
61 std::lock_guard<std::mutex> lock(mutex_);
62 updateCallInfo_ = info;
63 if (callIdSet_.find(updateCallInfo_.callId) == callIdSet_.end()) {
64 TELEPHONY_LOGI("CallDetailsChange new call");
65 callIdSet_.insert(updateCallInfo_.callId);
66 g_newCallId = updateCallInfo_.callId;
67 newCallState_ = (int32_t)updateCallInfo_.callState;
68 std::unordered_set<int32_t> newSet;
69 newSet.clear();
70 g_callStateMap.insert(std::pair<int32_t, std::unordered_set<int32_t>>(g_newCallId, newSet));
71 }
72 g_callStateMap[updateCallInfo_.callId].insert((int32_t)updateCallInfo_.callState);
73 return TELEPHONY_SUCCESS;
74 }
75
MeeTimeDetailsChange(const CallAttributeInfo & info)76 int32_t CallInfoManager::MeeTimeDetailsChange(const CallAttributeInfo &info)
77 {
78 TELEPHONY_LOGI("MeeTimeDetailsChange Start");
79 std::lock_guard<std::mutex> lock(mutex_);
80 updateCallInfo_ = info;
81 if (callIdSet_.find(updateCallInfo_.callId) == callIdSet_.end()) {
82 TELEPHONY_LOGI("MeeTimeDetailsChange new call");
83 callIdSet_.insert(updateCallInfo_.callId);
84 g_newCallId = updateCallInfo_.callId;
85 newCallState_ = (int32_t)updateCallInfo_.callState;
86 std::unordered_set<int32_t> newSet;
87 newSet.clear();
88 g_callStateMap.insert(std::pair<int32_t, std::unordered_set<int32_t>>(g_newCallId, newSet));
89 }
90 g_callStateMap[updateCallInfo_.callId].insert((int32_t)updateCallInfo_.callState);
91 return TELEPHONY_SUCCESS;
92 }
93
HasActiveStatus()94 bool CallInfoManager::HasActiveStatus()
95 {
96 TELEPHONY_LOGI("Waiting for activation !");
97 int sumUseTime = 0;
98 int slipMs = SLEEP_TIME_MS;
99 do {
100 if (!(HasState(g_newCallId, static_cast<int32_t>(TelCallState::CALL_STATUS_ACTIVE)))) {
101 usleep(slipMs * BASE_TIME_MS);
102 sumUseTime += slipMs;
103 } else {
104 TELEPHONY_LOGI("===========wait %d ms callStatus:%d==============", sumUseTime, newCallState_);
105 return true;
106 }
107 } while (sumUseTime < MAX_LIMIT_TIME);
108 TELEPHONY_LOGI("===========wait %d ms callStatus:%d=====not active=========", sumUseTime, newCallState_);
109 return false;
110 }
111
HasState(int callId,int32_t callState)112 bool CallInfoManager::HasState(int callId, int32_t callState)
113 {
114 if (g_callStateMap.find(callId) == g_callStateMap.end()) {
115 return false;
116 }
117 if (g_callStateMap[callId].find(callState) == g_callStateMap[callId].end()) {
118 return false;
119 }
120 return true;
121 }
122
CallEventChange(const CallEventInfo & info)123 int32_t CallInfoManager::CallEventChange(const CallEventInfo &info)
124 {
125 return TELEPHONY_SUCCESS;
126 }
127
Init()128 void CallInfoManager::Init()
129 {
130 g_newCallId = -1;
131 updateCallInfo_.speakerphoneOn = -1;
132 updateCallInfo_.startTime = -1;
133 updateCallInfo_.isEcc = -1;
134 updateCallInfo_.accountId = -1;
135 updateCallInfo_.callType = CallType::TYPE_CS;
136 updateCallInfo_.callId = -1;
137 updateCallInfo_.callState = TelCallState::CALL_STATUS_IDLE;
138 updateCallInfo_.videoState = VideoStateType::TYPE_VOICE;
139 }
140
LockCallId(bool eq,int32_t targetId,int32_t slipMs,int32_t timeoutMs)141 void CallInfoManager::LockCallId(bool eq, int32_t targetId, int32_t slipMs, int32_t timeoutMs)
142 {
143 int32_t useTimeMs = 0;
144 std::cout << "wait for a few seconds......" << std::endl;
145 while ((updateCallInfo_.callId != targetId) && (useTimeMs < timeoutMs)) {
146 usleep(slipMs * SLEEP_1000_MS);
147 useTimeMs += slipMs;
148 }
149 std::cout << "\n===========wait " << useTimeMs << " ms target:" << updateCallInfo_.callId << std::endl;
150 if (eq) {
151 EXPECT_EQ(updateCallInfo_.callId, targetId);
152 } else {
153 EXPECT_NE(updateCallInfo_.callId, targetId);
154 }
155 }
156
LockCallState(bool eq,int32_t targetState,int32_t slipMs,int32_t timeoutMs)157 void CallInfoManager::LockCallState(bool eq, int32_t targetState, int32_t slipMs, int32_t timeoutMs)
158 {
159 if (CallManagerGtest::clientPtr_->GetCallState() == targetState) {
160 return;
161 }
162 int32_t usedTimeMs = 0;
163 std::cout << "wait for a few seconds......" << std::endl;
164 while ((CallManagerGtest::clientPtr_->GetCallState() != targetState) && (usedTimeMs < timeoutMs)) {
165 usleep(slipMs * SLEEP_1000_MS);
166 usedTimeMs += slipMs;
167 }
168 int32_t callState = CallManagerGtest::clientPtr_->GetCallState();
169 std::cout << "waited " << usedTimeMs << " seconds" << std::endl;
170 std::cout << "target call state:" << targetState << std::endl;
171 EXPECT_EQ(callState, targetState);
172 }
173
HangUpCall()174 void CallManagerGtest::HangUpCall()
175 {
176 clientPtr_->HangUpCall(INVALID_CALLID);
177 }
178
179 class ClientErrorBranchTest : public testing::Test {
180 public:
SetUpTestCase()181 static void SetUpTestCase() {};
TearDownTestCase()182 static void TearDownTestCase() {};
SetUp()183 void SetUp() {};
TearDown()184 void TearDown() {};
185 };
186
187 /******************************************* Test SetCameraZoom() *********************************************/
188 /**
189 * @tc.number Telephony_CallManager_SetCameraZoom_0100
190 * @tc.name input zoomRatio 5.0, Test SetCameraZoom
191 * @tc.desc Function test
192 */
193 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0100, Function | MediumTest | Level2)
194 {
195 AccessToken token;
196 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
197 return;
198 }
199 float zoomRatio = 5.0;
200 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
201 }
202
203 /**
204 * @tc.number Telephony_CallManager_SetCameraZoom_0200
205 * @tc.name input zoomRatio 0.1, Test SetCameraZoom
206 * @tc.desc Function test
207 */
208 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0200, Function | MediumTest | Level2)
209 {
210 AccessToken token;
211 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
212 return;
213 }
214 float zoomRatio = 0.1;
215 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
216 }
217
218 /**
219 * @tc.number Telephony_CallManager_SetCameraZoom_0300
220 * @tc.name input zoomRatio 10.0, Test SetCameraZoom
221 * @tc.desc Function test
222 */
223 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0300, Function | MediumTest | Level2)
224 {
225 AccessToken token;
226 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
227 return;
228 }
229 float zoomRatio = 10.0;
230 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
231 }
232
233 /**
234 * @tc.number Telephony_CallManager_SetCameraZoom_0400
235 * @tc.name input invalid para zoomRatio 15.0, Test SetCameraZoom, return error code if failed
236 * @tc.desc Function test
237 */
238 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0400, Function | MediumTest | Level2)
239 {
240 AccessToken token;
241 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
242 return;
243 }
244 float zoomRatio = 15.0;
245 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
246 }
247
248 /**
249 * @tc.number Telephony_CallManager_SetCameraZoom_0500
250 * @tc.name input invalid para zoomRatio 0.0, Test SetCameraZoom, return error code if failed
251 * @tc.desc Function test
252 */
253 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0500, Function | MediumTest | Level2)
254 {
255 AccessToken token;
256 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
257 return;
258 }
259 float zoomRatio = 0.0;
260 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
261 }
262
263 /**
264 * @tc.number Telephony_CallManager_SetCameraZoom_0600
265 * @tc.name input invalid para zoomRatio -1.0, Test SetCameraZoom, return error code if failed
266 * @tc.desc Function test
267 */
268 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0600, Function | MediumTest | Level2)
269 {
270 AccessToken token;
271 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
272 return;
273 }
274 float zoomRatio = -1.0;
275 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
276 }
277
278 /**
279 * @tc.number Telephony_CallManager_SetCameraZoom_0700
280 * @tc.name input invalid para zoomRatio 10.1, Test SetCameraZoom, return error code if failed
281 * @tc.desc Function test
282 */
283 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCameraZoom_0700, Function | MediumTest | Level2)
284 {
285 AccessToken token;
286 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
287 return;
288 }
289 float zoomRatio = 10.1;
290 EXPECT_EQ(CallManagerGtest::clientPtr_->SetCameraZoom(zoomRatio), RETURN_VALUE_IS_ZERO);
291 }
292 /******************************************* Test SetPausePicture() *********************************************/
293 /**
294 * @tc.number Telephony_CallManager_SetPausePicture_0100
295 * @tc.name input locale picture path /system/bin/test.png that does not exist, Test SetPausePicture,
296 * return error code if failed
297 * @tc.desc Function test
298 */
299 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0100, Function | MediumTest | Level2)
300 {
301 AccessToken token;
302 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
303 return;
304 }
305 int32_t callId = 1;
306 std::string pathTemp = "/system/bin/test.png";
307 std::u16string path = Str8ToStr16(pathTemp);
308 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
309 }
310
311 /**
312 * @tc.number Telephony_CallManager_SetPausePicture_0200
313 * @tc.name input an invalid image format file path, Test SetPausePicture, return error code if failed
314 * @tc.desc Function test
315 */
316 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0200, Function | MediumTest | Level2)
317 {
318 AccessToken token;
319 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
320 return;
321 }
322 int32_t callId = 1;
323 std::string pathTemp = "/system/bin/test.jpg";
324 std::u16string path = Str8ToStr16(pathTemp);
325 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
326 }
327
328 /**
329 * @tc.number Telephony_CallManager_SetPausePicture_0300
330 * @tc.name input an invalid image format file path, Test SetPausePicture, return error code if failed
331 * @tc.desc Function test
332 */
333 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0300, Function | MediumTest | Level2)
334 {
335 AccessToken token;
336 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
337 return;
338 }
339 int32_t callId = 1;
340 std::string pathTemp = "/system/bin/test.bmp";
341 std::u16string path = Str8ToStr16(pathTemp);
342 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
343 }
344
345 /**
346 * @tc.number Telephony_CallManager_SetPausePicture_0400
347 * @tc.name input an invalid image format file path, Test SetPausePicture, return error code if failed
348 * @tc.desc Function test
349 */
350 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0400, Function | MediumTest | Level2)
351 {
352 AccessToken token;
353 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
354 return;
355 }
356 int32_t callId = 1;
357 std::string pathTemp = "/system/bin/test.webp";
358 std::u16string path = Str8ToStr16(pathTemp);
359 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
360 }
361
362 /**
363 * @tc.number Telephony_CallManager_SetPausePicture_0500
364 * @tc.name input remote picture path http://callManager.jpg that does not exist, Test SetPausePicture,
365 * return error code if failed
366 * @tc.desc Function test
367 */
368 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0500, Function | MediumTest | Level2)
369 {
370 AccessToken token;
371 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
372 return;
373 }
374 int32_t callId = 1;
375 std::string pathTemp = "http://callManager.jpg";
376 std::u16string path = Str8ToStr16(pathTemp);
377 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
378 }
379
380 /**
381 * @tc.number Telephony_CallManager_SetPausePicture_0600
382 * @tc.name input empty picture path, Test SetPausePicture, return error code if failed
383 * @tc.desc Function test
384 */
385 HWTEST_F(CallManagerGtest, Telephony_CallManager_SetPausePicture_0600, Function | MediumTest | Level2)
386 {
387 AccessToken token;
388 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
389 return;
390 }
391 int32_t callId = 1;
392 std::string pathTemp = "";
393 std::u16string path = Str8ToStr16(pathTemp);
394 EXPECT_NE(CallManagerGtest::clientPtr_->SetPausePicture(callId, path), RETURN_VALUE_IS_ZERO);
395 }
396
397 /**
398 * @tc.number Telephony_CallManager_CancelCallUpgrade_0100
399 * @tc.name input callId:1, Test CancelCallUpgrade, return error code if failed
400 * @tc.desc Function test
401 */
402 HWTEST_F(CallManagerGtest, Telephony_CallManager_CancelCallUpgrade_0100, Function | MediumTest | Level2)
403 {
404 AccessToken token;
405 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
406 return;
407 }
408 int32_t callId = 1;
409 EXPECT_NE(CallManagerGtest::clientPtr_->CancelCallUpgrade(callId), RETURN_VALUE_IS_ZERO);
410 }
411
412 /**
413 * @tc.number Telephony_CallManager_RequestCameraCapabilities_0100
414 * @tc.name input callId:1, Test RequestCameraCapabilities, return error code if failed
415 * @tc.desc Function test
416 */
417 HWTEST_F(CallManagerGtest, Telephony_CallManager_RequestCameraCapabilities_0100, Function | MediumTest | Level2)
418 {
419 AccessToken token;
420 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
421 return;
422 }
423 int32_t callId = 1;
424 EXPECT_NE(CallManagerGtest::clientPtr_->RequestCameraCapabilities(callId), RETURN_VALUE_IS_ZERO);
425 }
426
427 /************************************** Test UpdateImsCallMode() ****************************************/
428 /**
429 * @tc.number Telephony_CallManager_UpdateImsCallMode_0100
430 * @tc.name test update ims call mode audio only
431 * @tc.desc Function test
432 */
433 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0100, Function | MediumTest | Level3)
434 {
435 AccessToken token;
436 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
437 return;
438 }
439
440 int32_t callId = 1;
441 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_AUDIO_ONLY), RETURN_VALUE_IS_ZERO);
442 }
443
444 /**
445 * @tc.number Telephony_CallManager_UpdateImsCallMode_0200
446 * @tc.name test update ims call mode send only
447 * @tc.desc Function test
448 */
449 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0200, Function | MediumTest | Level3)
450 {
451 AccessToken token;
452 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
453 return;
454 }
455
456 int32_t callId = 1;
457 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_SEND_ONLY), RETURN_VALUE_IS_ZERO);
458 }
459
460 /**
461 * @tc.number Telephony_CallManager_UpdateImsCallMode_0300
462 * @tc.name test update ims call mode recerve only
463 * @tc.desc Function test
464 */
465 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0300, Function | MediumTest | Level3)
466 {
467 AccessToken token;
468 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
469 return;
470 }
471
472 int32_t callId = 1;
473 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_RECEIVE_ONLY), RETURN_VALUE_IS_ZERO);
474 }
475
476 /**
477 * @tc.number Telephony_CallManager_UpdateImsCallMode_0400
478 * @tc.name test update ims call mode send receive
479 * @tc.desc Function test
480 */
481 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0400, Function | MediumTest | Level3)
482 {
483 AccessToken token;
484 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
485 return;
486 }
487
488 int32_t callId = 1;
489 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_SEND_RECEIVE), RETURN_VALUE_IS_ZERO);
490 }
491
492 /**
493 * @tc.number Telephony_CallManager_UpdateImsCallMode_0500
494 * @tc.name test update ims call mode video paused
495 * @tc.desc Function test
496 */
497 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0500, Function | MediumTest | Level3)
498 {
499 AccessToken token;
500 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
501 return;
502 }
503
504 int32_t callId = 1;
505 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, CALL_MODE_VIDEO_PAUSED), RETURN_VALUE_IS_ZERO);
506 }
507
508 /**
509 * @tc.number Telephony_CallManager_UpdateImsCallMode_0600
510 * @tc.name test update ims call with invalid mode
511 * @tc.desc Function test
512 */
513 HWTEST_F(CallManagerGtest, Telephony_CallManager_UpdateImsCallMode_0600, Function | MediumTest | Level3)
514 {
515 AccessToken token;
516 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
517 return;
518 }
519
520 int32_t callId = 1;
521 ImsCallMode mode = static_cast<ImsCallMode>(5);
522 EXPECT_NE(CallManagerGtest::clientPtr_->UpdateImsCallMode(callId, mode), RETURN_VALUE_IS_ZERO);
523 }
524
525 /********************************************* Test StartRtt() ************************************************/
526 /**
527 * @tc.number Telephony_CallManager_StartRtt_0100
528 * @tc.name test start rtt
529 * @tc.desc Function test
530 */
531 HWTEST_F(CallManagerGtest, Telephony_CallManager_StartRtt_0100, Function | MediumTest | Level3)
532 {
533 AccessToken token;
534 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
535 return;
536 }
537
538 std::u16string msg = u"123";
539 int32_t callId = 1;
540 EXPECT_NE(CallManagerGtest::clientPtr_->StartRtt(callId, msg), RETURN_VALUE_IS_ZERO);
541 }
542
543 /********************************************* Test StopRtt() ************************************************/
544 /**
545 * @tc.number Telephony_CallManager_StopRtt_0100
546 * @tc.name test stop rtt
547 * @tc.desc Function test
548 */
549 HWTEST_F(CallManagerGtest, Telephony_CallManager_StopRtt_0100, Function | MediumTest | Level3)
550 {
551 AccessToken token;
552 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
553 return;
554 }
555 int32_t callId = 1;
556 EXPECT_NE(CallManagerGtest::clientPtr_->StopRtt(callId), RETURN_VALUE_IS_ZERO);
557 }
558
559 /**************************************** Test CanSetCallTransferTime() ******************************************/
560 /**
561 * @tc.number Telephony_CallManager_CanSetCallTransferTime_0100
562 * @tc.name input invalid slotId, test CanSetCallTransferTime() return failed
563 * @tc.desc Function test
564 */
565 HWTEST_F(CallManagerGtest, Telephony_CallManager_CanSetCallTransferTime_0100, Function | MediumTest | Level3)
566 {
567 AccessToken token;
568 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
569 return;
570 }
571
572 bool result;
573 EXPECT_EQ(CallManagerGtest::clientPtr_->CanSetCallTransferTime(INVALID_SLOT_ID, result), CALL_ERR_INVALID_SLOT_ID);
574 }
575
576 /**
577 * @tc.number Telephony_CallManager_CanSetCallTransferTime_0200
578 * @tc.name input slotId was out of count
579 * test CanSetCallTransferTime() return failed
580 * @tc.desc Function test
581 */
582 HWTEST_F(CallManagerGtest, Telephony_CallManager_CanSetCallTransferTime_0200, Function | MediumTest | Level3)
583 {
584 AccessToken token;
585 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
586 return;
587 }
588
589 bool result;
590 int32_t slotId = SIM_SLOT_COUNT; // out of the count
591 EXPECT_EQ(CallManagerGtest::clientPtr_->CanSetCallTransferTime(slotId, result), CALL_ERR_INVALID_SLOT_ID);
592 }
593
594 /**
595 * @tc.number Telephony_CallManager_CanSetCallTransferTime_0300
596 * @tc.name test CanSetCallTransferTime() without permission
597 * @tc.desc Function test
598 */
599 HWTEST_F(CallManagerGtest, Telephony_CallManager_CanSetCallTransferTime_0300, Function | MediumTest | Level3)
600 {
601 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
602 return;
603 }
604
605 bool result;
606 if (HasSimCard(SIM1_SLOTID)) {
607 EXPECT_EQ(
608 CallManagerGtest::clientPtr_->CanSetCallTransferTime(SIM1_SLOTID, result), TELEPHONY_ERR_PERMISSION_ERR);
609 }
610 if (HasSimCard(SIM2_SLOTID)) {
611 EXPECT_EQ(
612 CallManagerGtest::clientPtr_->CanSetCallTransferTime(SIM2_SLOTID, result), TELEPHONY_ERR_PERMISSION_ERR);
613 }
614 }
615
616 /**
617 * @tc.number Telephony_CallManager_Telephony_CallManager_SendUssdResponse_0100SetAudioDevice_0100
618 * @tc.name input slotId:0, content:1, Test SendUssdResponse, return error code if failed
619 * @tc.desc Function test
620 * @tc.require: issueI5JUAQ
621 */
622 HWTEST_F(CallManagerGtest, Telephony_CallManager_SendUssdResponse_0100, Function | MediumTest | Level2)
623 {
624 AccessToken token;
625 if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
626 return;
627 }
628 std::string content = "1";
629 if (HasSimCard(SIM1_SLOTID)) {
630 EXPECT_EQ(CallManagerGtest::clientPtr_->SendUssdResponse(SIM1_SLOTID, content), RETURN_VALUE_IS_ZERO);
631 return;
632 }
633 if (HasSimCard(SIM2_SLOTID)) {
634 EXPECT_EQ(CallManagerGtest::clientPtr_->SendUssdResponse(SIM2_SLOTID, content), RETURN_VALUE_IS_ZERO);
635 return;
636 }
637 }
638 } // namespace Telephony
639 } // namespace OHOS
640