diff --git a/services/call/include/call_control_manager.h b/services/call/include/call_control_manager.h index 910ce23f2f4f18a96f255a97e5f3ea9b789772e3..b662eb3e7dfb112c22305858d9073c935927d0d1 100644 --- a/services/call/include/call_control_manager.h +++ b/services/call/include/call_control_manager.h @@ -34,6 +34,10 @@ #include "system_ability_status_change_stub.h" #include "ffrt.h" +#ifdef ABILITY_POWER_SUPPORT +#include "power_mgr_client.h" +#endif + /** * Singleton * @ClassName:CallControlManager @@ -135,6 +139,8 @@ public: int32_t CarrierAndVoipConflictProcess(int32_t callId, TelCallState callState); void AcquireIncomingLock(); void ReleaseIncomingLock(); + void AcquireDisconnectedLock(); + void ReleaseDisconnectedLock(); void DisconnectAllCalls(); #ifdef NOT_SUPPORT_MULTICALL bool HangUpFirstCallBtAndESIM(int32_t secondCallId); @@ -190,6 +196,9 @@ private: std::unique_ptr CallRequestHandlerPtr_; // notify when incoming calls are ignored, not rejected or answered std::shared_ptr incomingCallWakeup_; +#ifdef ABILITY_POWER_SUPPORT + std::shared_ptr disconnectedRunningLock_ = nullptr; +#endif std::shared_ptr missedCallNotification_; std::unique_ptr callSettingManagerPtr_; sptr statusChangeListener_ = nullptr; diff --git a/services/call/include/call_status_manager.h b/services/call/include/call_status_manager.h index 7b61b15e361f5b3fb2cced2c1b4d7e3482b76974..e34ec9f1caf5c5704d6795bb2b5f254a66145d52 100644 --- a/services/call/include/call_status_manager.h +++ b/services/call/include/call_status_manager.h @@ -37,7 +37,7 @@ namespace OHOS { namespace Telephony { const int32_t SLOT_NUM = 2; -const std::string ANTIFRAUD_FEATURE = "const.telephony.antifraud.supported"; +const std::string ANTIFRUAD_FEATURE = "const.telephony.antifraud.supported"; class CallStatusManager : public CallStatusPolicy { public: @@ -124,13 +124,12 @@ private: std::vector> GetConferenceCallList(int32_t slotId); void UpdateCallDetailsInfo(const CallDetailsInfo &info); bool IsDistributeCallSourceStatus(); + void ClearPendingState(sptr &call); void HandleBluetoothCallReportInfo(const CallDetailInfo &info); void SetBtCallDialByPhone(const sptr &call, bool isBtCallDialByPhone); void BtCallDialingHandle(sptr &call, const CallDetailInfo &info); - void SetDistributedDeviceDialing(sptr call, bool isDistributedDeviceDialing); void BtCallDialingHandleFirst(sptr call, const CallDetailInfo &infol); int32_t HandleCallReportInfoEx(const CallDetailInfo &info); - void ClearPendingState(sptr &call); void RefreshCallDisconnectReason(const sptr &call, int32_t reason); #ifdef NOT_SUPPORT_MULTICALL void AutoAnswerSecondCall(); @@ -144,6 +143,8 @@ private: void StartOutGoingCallMotionRecognition(); void StopCallMotionRecognition(TelCallState nextState); bool UpdateDialingHandle(const CallDetailInfo &info, bool &isDistributedDeviceDialing); + bool RefreshDialingStateByOtherState(sptr &call, const CallDetailInfo &info); + void AcquireDisconnectedLock(const sptr &call); private: CallDetailInfo callReportInfo_; diff --git a/services/call/src/call_control_manager.cpp b/services/call/src/call_control_manager.cpp index 9bb4d3a9291ede3f96419276ba2b8ee83a65540c..70508caf58ea49e7615f618ca40456f362a9c3a3 100644 --- a/services/call/src/call_control_manager.cpp +++ b/services/call/src/call_control_manager.cpp @@ -48,12 +48,17 @@ #include "call_voice_assistant_manager.h" #include "interoperable_communication_manager.h" +#ifdef ABILITY_POWER_SUPPORT +#include "power_mgr_client.h" +#endif + namespace OHOS { namespace Telephony { bool CallControlManager::alarmSeted = false; constexpr int32_t CRS_TYPE = 2; const uint64_t DISCONNECT_DELAY_TIME = 1000000; static const int32_t SATCOMM_UID = 1096; +constexpr int32_t DISCONNECTED_LOCK_TIMEOUT = 2000; using namespace OHOS::EventFwk; CallControlManager::CallControlManager() : callStateListenerPtr_(nullptr), CallRequestHandlerPtr_(nullptr), incomingCallWakeup_(nullptr), @@ -253,17 +258,20 @@ int32_t CallControlManager::AnswerCall(int32_t callId, int32_t videoState) TELEPHONY_LOGE("call is nullptr"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } + ReportPhoneUEInSuperPrivacy(CALL_ANSWER_IN_SUPER_PRIVACY); + bool isVoipCall = call->GetCallType() == CallType::TYPE_VOIP; if (call->GetCrsType() == CRS_TYPE && static_cast(videoState) != VideoStateType::TYPE_VIDEO) { DelayedSingleton::GetInstance()->SetSpeakerDevActive(false); } - ReportPhoneUEInSuperPrivacy(CALL_ANSWER_IN_SUPER_PRIVACY); - if (CurrentIsSuperPrivacyMode(callId, videoState)) { - return TELEPHONY_SUCCESS; + if (call->GetCrsType() == CRS_TYPE && static_cast(videoState) != VideoStateType::TYPE_VIDEO) { + DelayedSingleton::GetInstance()->SetSpeakerDevActive(false); } call->SetAnsweredCall(true); AnswerHandlerForSatelliteOrVideoCall(call, videoState); TELEPHONY_LOGI("report answered state"); - NotifyCallStateUpdated(call, TelCallState::CALL_STATUS_INCOMING, TelCallState::CALL_STATUS_ANSWERED); + if (!isVoipCall) { + NotifyCallStateUpdated(call, TelCallState::CALL_STATUS_INCOMING, TelCallState::CALL_STATUS_ANSWERED); + } CarrierAndVoipConflictProcess(callId, TelCallState::CALL_STATUS_ANSWERED); if (VoIPCallState_ != CallStateToApp::CALL_STATE_IDLE && call->GetCallType() != CallType::TYPE_VOIP) { TELEPHONY_LOGW("VoIP call is active, waiting for VoIP to disconnect"); @@ -1724,6 +1732,31 @@ void CallControlManager::ReleaseIncomingLock() incomingCallWakeup_->ReleaseIncomingLock(); } +void CallControlManager::AcquireDisconnectedLock() +{ +#ifdef ABILITY_POWER_SUPPORT + if (disconnectedRunningLock_ == nullptr) { + disconnectedRunningLock_ =PowerMgr::PowerMgrClient::GetInstance(). + CreateRunningLock("disconnectedrunninglock", PowerMgr::RunningLockType::RUNNINGLOCK_BACKGROUND_PHONE); + } + if (disconnectedRunningLock_!=nullptr) { + disconnectedRunningLock_->Lock(DISCONNECTED_LOCK_TIMEOUT); + TELEPHONY_LOGI("disconnectedRunningLock_ locked"); + } +#endif +} + +void CallControlManager::ReleaseDisconnectedLock() +{ +#ifdef ABILITY_POWER_SUPPORT + if (disconnectedRunningLock_ == nullptr || !disconnectedRunningLock_->IsUsed()) { + return; + } + disconnectedRunningLock_->UnLock(); + TELEPHONY_LOGI("disconnectedRunningLock_ unlocked"); +#endif +} + void CallControlManager::DisconnectAllCalls() { std::list> allCallList = CallObjectManager::GetAllCallList(); diff --git a/services/call/src/call_request_process.cpp b/services/call/src/call_request_process.cpp index a12a13feee03b3735b45b2631e956a1e235a842a..8c3d2e2dd0eee639e2b2796bc0062890077e7f9b 100644 --- a/services/call/src/call_request_process.cpp +++ b/services/call/src/call_request_process.cpp @@ -94,7 +94,7 @@ int32_t CallRequestProcess::HandleDialRequest(DialParaInfo &info) ret = OttDialProcess(info); break; case DialType::DIAL_BLUETOOTH_TYPE: - ret = BluetoothDialProcess(info); + ret = BluetoothDialProcess(info); break; default: break; @@ -831,7 +831,7 @@ int32_t CallRequestProcess::CarrierDialProcess(DialParaInfo &info) needWaitHold_ = false; return ret; } - std::string tempNumber = info.number; + std:: string tempNumber = info.number; bool isMMiCode = DelayedSingleton::GetInstance()->IsMMICode(newPhoneNum); if (!isMMiCode) { isFirstDialCallAdded_ = false; @@ -996,6 +996,7 @@ int32_t CallRequestProcess::EccDialPolicy() std::list callIdList; std::list> hangupList; std::list> rejectList; + GetCarrierCallList(callIdList); for (int32_t callId : callIdList) { sptr call = GetOneCallObject(callId); @@ -1035,6 +1036,7 @@ int32_t CallRequestProcess::EccDialPolicy() call->RejectCall(); } hangupList.clear(); + rejectList.clear(); return TELEPHONY_SUCCESS; } diff --git a/services/call/src/call_status_manager.cpp b/services/call/src/call_status_manager.cpp index 1b55be85c359bc67a3d006a36fba39133533e61a..130c58e8454506bf58ec6b9f6f60fa686efefccc 100644 --- a/services/call/src/call_status_manager.cpp +++ b/services/call/src/call_status_manager.cpp @@ -395,7 +395,7 @@ int32_t CallStatusManager::HandleOttEventReportInfo(const OttCallEventInfo &info TELEPHONY_LOGE("Number out of limit!"); return CALL_ERR_NUMBER_OUT_OF_RANGE; } - if (memcpy_s(eventInfo.bundleName, kMaxNumberLen, info.bundleName, strlen(info.bundleName)) != EOK) { + if (memcpy_s(eventInfo.bundleName, kMaxBundleNameLen + 1, info.bundleName, strlen(info.bundleName)) != EOK) { TELEPHONY_LOGE("memcpy_s failed!"); return TELEPHONY_ERR_MEMCPY_FAIL; } @@ -502,6 +502,7 @@ void CallStatusManager::SetContactInfo(sptr &call, std::string phoneNu AAFwk::WantParams params = call->GetExtraParams(); params.SetParam("BtCallContactName", AAFwk::String::Box(contactName)); call->SetExtraParams(params); + DelayedSingleton::GetInstance()->SetHfpContactName("", ""); TELEPHONY_LOGI("SetCallerInfo end for type bluetooth."); return; } @@ -728,7 +729,11 @@ int32_t CallStatusManager::DialingHandle(const CallDetailInfo &info) TELEPHONY_LOGE("CreateNewCall failed!"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } - SetDistributedDeviceDialing(call, isDistributedDeviceDialing); + if (isDistributedDeviceDialing) { + AAFwk::WantParams extraParams; + extraParams.SetParam("isDistributedDeviceDialing", AAFwk::String::Box("true")); + call->SetExtraParams(extraParams); + } if (IsDcCallConneceted()) { SetContactInfo(call, std::string(info.phoneNum)); } @@ -740,6 +745,7 @@ int32_t CallStatusManager::DialingHandle(const CallDetailInfo &info) SetBtCallDialByPhone(call, false); StartOutGoingCallMotionRecognition(); } + callRequestEventHandler->RestoreDialingFlag(false); callRequestEventHandler->RemoveEventHandlerTask(); int32_t ret = call->DialingProcess(); @@ -784,7 +790,7 @@ int32_t CallStatusManager::ActiveHandle(const CallDetailInfo &info) CreateAndSaveNewCall(info, CallDirection::CALL_DIRECTION_UNKNOW); call = GetOneCallObjectByIndexSlotIdAndCallType(info.index, info.accountId, info.callType); } - if (call == nullptr) { + if (call == nullptr && !RefreshDialingStateByOtherState(call, info)) { TELEPHONY_LOGE("Call is NULL"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } @@ -820,7 +826,7 @@ int32_t CallStatusManager::ActiveHandle(const CallDetailInfo &info) #endif TELEPHONY_LOGI("handle active state success"); - bool isAntiFraudSupport = OHOS::system::GetBoolParameter(ANTIFRAUD_FEATURE, true); + bool isAntiFraudSupport = OHOS::system::GetBoolParameter(ANTIFRUAD_FEATURE, true); if (isAntiFraudSupport) { SetupAntiFraudService(call, info); } @@ -944,7 +950,7 @@ bool CallStatusManager::IsContactPhoneNum(const std::string &phoneNum) void CallStatusManager::TriggerAntiFraud(int32_t antiFraudState) { - TELEPHONY_LOGI("TriggerAntiState, antiFraudState = %{public}d", antiFraudState); + TELEPHONY_LOGI("TriggerAntiFraud, antiFraudState = %{public}d", antiFraudState); sptr call = nullptr; int32_t antiFraudSlotId = GetAntiFraudSlotId(); if (antiFraudSlotId >= SLOT_NUM || antiFraudSlotId < 0) { @@ -1059,7 +1065,7 @@ int32_t CallStatusManager::AlertHandle(const CallDetailInfo &info) CreateAndSaveNewCall(info, CallDirection::CALL_DIRECTION_OUT); call = GetOneCallObjectByIndexSlotIdAndCallType(info.index, info.accountId, info.callType); } - if (call == nullptr) { + if (call == nullptr && !RefreshDialingStateByOtherState(call, info)) { TELEPHONY_LOGE("Call is NULL"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } @@ -1128,9 +1134,12 @@ int32_t CallStatusManager::DisconnectedHandle(const CallDetailInfo &info) } std::string tmpStr(info.phoneNum); sptr call = GetOneCallObjectByIndexSlotIdAndCallType(info.index, info.accountId, info.callType); - if (call == nullptr) { + if (call == nullptr && !RefreshDialingStateByOtherState(call, info)) { + TELEPHONY_LOGE("Call is Null"); return TELEPHONY_ERR_LOCAL_PTR_NULL; } + //Acquire disconnected lock when the remote hangup and will release after StopSoundtone + AcquireDisconnectedLock(call); StopAntiFraudDetect(call, info); #ifdef NOT_SUPPORT_MULTICALL bool isTwoCallBtCallAndESIM = CallObjectManager::IsTwoCallBtCallAndESIM(); @@ -1158,10 +1167,10 @@ int32_t CallStatusManager::DisconnectedHandle(const CallDetailInfo &info) UpdateCallState(leftOneConferenceCall, leftOneConferenceCall->GetTelCallState()); } } - int32_t currentCallNum = CallObjectManager::GetCurrentCallNum(); - if (currentCallNum <= 0) { + if (CallObjectManager::GetCurrentCallNum() <= 0) { DelayedSingleton::GetInstance()->RestoreSuperPrivacyMode(); } + #ifdef NOT_SUPPORT_MULTICALL if (isTwoCallBtCallAndESIM || IsTwoCallESIMCall) { TELEPHONY_LOGI("Auto AnswerCall"); @@ -1172,6 +1181,16 @@ int32_t CallStatusManager::DisconnectedHandle(const CallDetailInfo &info) return TELEPHONY_SUCCESS; } +void CallStatusManager::AcquireDisconnectedLock(const sptr &call) +{ + std::list carrierCallList; + CallObjectManager::GetCarrierCallList(carrierCallList); + //When only one carrier call and the remote the remote hangup, acquire discnnected lock. + if (carrierCallList.size() == 1 && DelayedSingleton::GetInstance()->IsSoundPlaying()) { + DelayedSingleton::GetInstance()->AcquireDisconnectedLock(); + } +} + void CallStatusManager::StopCallMotionRecognition(TelCallState nextState) { switch (nextState) { @@ -1194,9 +1213,6 @@ void CallStatusManager::StopCallMotionRecognition(TelCallState nextState) std::vector> CallStatusManager::GetConferenceCallList(int32_t slotId) { - if (slotId >= SLOT_NUM || slotId < 0) { - return std::vector>(); - } std::vector> conferenceCallList; for (const auto &it : tmpCallDetailsInfo_[slotId].callVec) { if (it.mpty == 1) { @@ -1447,17 +1463,18 @@ void CallStatusManager::SetVideoCallState(sptr &call, TelCallState nex } int slotId = call->GetSlotId(); bool isSlotIdValid = false; - if (slotId >= SLOT_NUM || slotId < 0) { - return; + if (slotId < SLOT_NUM && slotId >= 0) { + isSlotIdValid = true; } VideoStateType videoState = call->GetVideoStateType(); - TELEPHONY_LOGI("nextVideoState:%{public}d, priorVideoState:%{public}d", videoState, priorVideoState_[slotId]); - if (priorVideoState_[slotId] != videoState) { + TELEPHONY_LOGI("nextVideoState:%{public}d, priorVideoState:%{public}d, isSlotIdValid:%{public}d", videoState, + priorVideoState_[slotId], isSlotIdValid); + if (isSlotIdValid && (priorVideoState_[slotId] != videoState)) { DelayedSingleton::GetInstance()->VideoStateUpdated( call, priorVideoState_[slotId], videoState); priorVideoState_[slotId] = videoState; } - if (nextState == TelCallState::CALL_STATUS_DISCONNECTED) { + if (isSlotIdValid && (nextState == TelCallState::CALL_STATUS_DISCONNECTED)) { priorVideoState_[slotId] = VideoStateType::TYPE_VOICE; } } @@ -2058,6 +2075,22 @@ bool CallStatusManager::IsDistributeCallSourceStatus() return false; } +void CallStatusManager::ClearPendingState(sptr &call) +{ + auto callRequestEventHandler = DelayedSingleton::GetInstance(); + int32_t callId = call->GetCallID(); + TELEPHONY_LOGI("check clear pending state callId = %{public}d", callId); + if (callRequestEventHandler->HasPendingMo(callId)) { + callRequestEventHandler->SetPendingMo(false, -1); + } + if (callRequestEventHandler->HasPendingHangup(callId)) { + if (call->GetCallRunningState() != CallRunningState::CALL_RUNNING_STATE_ENDED) { + call->HangUpCall(); + } + callRequestEventHandler->SetPendingHangup(false, -1); + } +} + void CallStatusManager::SetBtCallDialByPhone(const sptr &call, bool isBtCallDialByPhone) { if (call == nullptr) { @@ -2068,7 +2101,7 @@ void CallStatusManager::SetBtCallDialByPhone(const sptr &call, bool is AAFwk::WantParams object = AAFwk::WantParamWrapper::ParseWantParamsWithBrackets(info.extraParamsString); object.SetParam("isBtCallDialByPhone", AAFwk::Boolean::Box(isBtCallDialByPhone)); call->SetExtraParams(object); - call->GetCallAttributeBaseInfo(info); + call->GetCallAttributeInfo(info); } void CallStatusManager::BtCallDialingHandle(sptr &call, const CallDetailInfo &info) @@ -2085,18 +2118,6 @@ void CallStatusManager::BtCallDialingHandle(sptr &call, const CallDeta } } -void CallStatusManager::SetDistributedDeviceDialing(sptr call, bool isDistributedDeviceDialing) -{ - if (call == nullptr) { - return; - } - if (isDistributedDeviceDialing) { - AAFwk::WantParams extraParams; - extraParams.SetParam("isDistributedDeviceDialing", AAFwk::String::Box("true")); - call->SetExtraParams(extraParams); - } -} - void CallStatusManager::BtCallDialingHandleFirst(sptr call, const CallDetailInfo &info) { if (call == nullptr) { @@ -2132,22 +2153,6 @@ int32_t CallStatusManager::HandleCallReportInfoEx(const CallDetailInfo &info) return ret; } -void CallStatusManager::ClearPendingState(sptr &call) -{ - auto callRequestEventHandler = DelayedSingleton::GetInstance(); - int32_t callId = call->GetCallID(); - TELEPHONY_LOGI("check clear pending state callId = %{public}d", callId); - if (callRequestEventHandler->HasPendingMo(callId)) { - callRequestEventHandler->SetPendingMo(false, -1); - } - if (callRequestEventHandler->HasPendingHangup(callId)) { - if (call->GetCallRunningState() != CallRunningState::CALL_RUNNING_STATE_ENDED) { - call->HangUpCall(); - } - callRequestEventHandler->SetPendingHangup(false, -1); - } -} - void CallStatusManager::RefreshCallDisconnectReason(const sptr &call, int32_t reason) { switch (reason) { @@ -2167,6 +2172,7 @@ void CallStatusManager::RefreshCallDisconnectReason(const sptr &call, break; } } + #ifdef NOT_SUPPORT_MULTICALL void CallStatusManager::AutoAnswerSecondCall() { @@ -2223,6 +2229,7 @@ void CallStatusManager::OneCallAnswerAtPhone(int32_t callId) return; } #endif + bool CallStatusManager::IsFromTheSameNumberAtTheSameTime(const sptr &newCall) { if (newCall == nullptr) { @@ -2386,5 +2393,23 @@ void CallStatusManager::StartOutGoingCallMotionRecognition() MotionRecogntion::SubscribeCloseToEarSensor(); } } + +bool CallStatusManager::RefreshDialingStateByOtherState(sptr &call, const CallDetailInfo &info) +{ + sptr initCall = GetOneCallObjectByIndex(INIT_INDEX); + if (initCall == nullptr) { + TELEPHONY_LOGE("initCall is nullptr!"); + return false; + } + DialingHandle(info); + HandleDsdaInfo(info.accountId); + DelayedSingleton::GetInstance()->GetCallState(); + call = GetOneCallObjectByIndexSlotIdAndCallType(info.index, info.accountId, info.callType); + if (call == nullptr) { + TELEPHONY_LOGE("after recalling dialingHandle, call still is nullptr!"); + return false; + } + return true; +} } // namespace Telephony } // namespace OHOS diff --git a/services/call/src/ott_call.cpp b/services/call/src/ott_call.cpp index a759db6e8f7fbabfdee39cd99274cea7b627fdec..5a5d1701e51b6b0c211a874630d3dd510d0d408b 100644 --- a/services/call/src/ott_call.cpp +++ b/services/call/src/ott_call.cpp @@ -426,7 +426,7 @@ int32_t OTTCall::PackOttCallRequestInfo(OttCallRequestInfo &requestInfo) TELEPHONY_LOGE("Number out of limit!"); return CALL_ERR_NUMBER_OUT_OF_RANGE; } - if (memcpy_s(requestInfo.bundleName, kMaxBundleNameLen, bundleName_.c_str(), bundleName_.length()) != EOK) { + if (memcpy_s(requestInfo.bundleName, kMaxBundleNameLen + 1, bundleName_.c_str(), bundleName_.length()) != EOK) { TELEPHONY_LOGW("memset_s failed!"); return TELEPHONY_ERR_MEMSET_FAIL; } diff --git a/services/call_earthquake_alarm/src/call_earthquake_alarm_locator.cpp b/services/call_earthquake_alarm/src/call_earthquake_alarm_locator.cpp index 214642c579db183ce086fc1b00924b7b30a82fbd..13bbcd7a4e7a6ff168db328621b5fb85fb619126 100644 --- a/services/call_earthquake_alarm/src/call_earthquake_alarm_locator.cpp +++ b/services/call_earthquake_alarm/src/call_earthquake_alarm_locator.cpp @@ -27,8 +27,8 @@ using namespace AppExecFwk; const int MyLocationEngine::DISTANCE_INTERVAL = 10000; /** 10 kilometers */ const int MyLocationEngine::TIMER_INTERVAL = 0; const std::string MyLocationEngine::EMERGENCY_DEVICE_ID = ""; -const std::string MyLocationEngine::EMERGENCY_BUNDLE_NAME = ""; -const std::string MyLocationEngine::EMERGENCY_ABILITY_NAME = ""; +const std::string MyLocationEngine::EMERGENCY_BUNDLE_NAME = "com.huawei.hmos.emergencycommunication"; +const std::string MyLocationEngine::EMERGENCY_ABILITY_NAME = "com.huawei.homs.emergencycommunication.ServiceExAbility"; const std::string MyLocationEngine::EMERGENCY_ABILITY_NAME_ECC = "EccServiceExtAbility"; const std::string MyLocationEngine::PARAMETERS_VALUE = "call_manager_earthquake_alarm"; const char* MyLocationEngine::PARAMETERS_KEY = "callerName"; @@ -177,8 +177,7 @@ int32_t MyLocationEngine::MyLocationCallBack::OnRemoteRequest(uint32_t code, Mes } switch (code) { case RECEIVE_LOCATION_INFO_EVENT: { - std::unique_ptr location = - OHOS::Location::Location::UnmarshallingMakeUnique(data); + std::unique_ptr location =OHOS::Location::Location::Unmarshalling(data); OnLocationReport(location); break; } diff --git a/services/call_manager_service/src/call_manager_service.cpp b/services/call_manager_service/src/call_manager_service.cpp index 38217eddacdcc892217e4c55cb5bad09bb125bd5..dd67d1f1865848233baa0d44ad18cd97aab4b197 100644 --- a/services/call_manager_service/src/call_manager_service.cpp +++ b/services/call_manager_service/src/call_manager_service.cpp @@ -33,14 +33,13 @@ #include "report_call_info_handler.h" #include "telephony_log_wrapper.h" #include "telephony_permission.h" +#include "distributed_call_manager.h" #include "video_control_manager.h" #include "voip_call_connection.h" -#include "distributed_call_manager.h" #include "call_earthquake_alarm_subscriber.h" #include "distributed_communication_manager.h" #include "want_params_wrapper.h" #include "string_wrapper.h" -#include "call_wired_headset.h" #include "bluetooth_call_connection.h" #include "interoperable_communication_manager.h" @@ -51,6 +50,7 @@ #ifdef OHOS_BUILD_ENABLE_TELEPHONY_CUST #include "telephony_cust_wrapper.h" #endif +#include "call_wired_headset.h" namespace OHOS { namespace Telephony { @@ -254,7 +254,7 @@ int32_t CallManagerService::RegisterCallBack(const sptr &c } if (!TelephonyPermission::CheckPermission(OHOS_PERMISSION_SET_TELEPHONY_STATE) && !TelephonyPermission::CheckPermission(OHOS_PERMISSION_GET_TELEPHONY_STATE)) { - TELEPHONY_LOGD("Permission denied."); + TELEPHONY_LOGE("Permission denied."); return TELEPHONY_ERR_PERMISSION_ERR; } return DelayedSingleton::GetInstance()->RegisterCallBack(callback, GetBundleInfo()); @@ -1366,7 +1366,7 @@ int32_t CallManagerService::ReportOttCallDetailsInfo(std::vector::GetInstance()->UpdateCallsReportInfo(detailsInfo); @@ -1705,7 +1705,6 @@ sptr CallManagerService::RegisterBluetoothCallManagerCallba TELEPHONY_LOGE("CallManagerService RegisterBluetoothCallManagerCallbackPtr, Permission denied!"); return nullptr; } - std::lock_guard guard(lock_); if (bluetoothCallCallbackPtr_ == nullptr) { bluetoothCallCallbackPtr_ = new (std::nothrow) CallStatusCallback(); if (bluetoothCallCallbackPtr_ == nullptr) { @@ -1726,6 +1725,7 @@ sptr CallManagerService::RegisterBluetoothCallManagerCallba TELEPHONY_LOGE("profile is nullptr"); } DelayedSingleton::GetInstance()->SetMacAddress(macAddress); + std::lock_guard guard(lock_); return bluetoothCallCallbackPtr_; } diff --git a/services/call_manager_service/src/call_manager_service_stub.cpp b/services/call_manager_service/src/call_manager_service_stub.cpp index ae6d53e6a54384f2ffb60227569e214e90560314..d85630c2c7e9fa35943ca35d673bf16df84cac37 100644 --- a/services/call_manager_service/src/call_manager_service_stub.cpp +++ b/services/call_manager_service/src/call_manager_service_stub.cpp @@ -305,6 +305,7 @@ int32_t CallManagerServiceStub::OnRemoteRequest( int32_t CallManagerServiceStub::OnRegisterCallBack(MessageParcel &data, MessageParcel &reply) { + TELEPHONY_LOGI("onRegisterCallBack entry"); int32_t result = TELEPHONY_ERR_FAIL; sptr remote = data.ReadRemoteObject(); if (remote == nullptr) { @@ -1429,7 +1430,6 @@ int32_t CallManagerServiceStub::SetTimer(uint32_t code) auto TimerCallback = [collieStr](void *) { TELEPHONY_LOGE("OnRemoteRequest timeout func: %{public}s", collieStr.c_str()); - exit(1); }; idTimer = HiviewDFX::XCollie::GetInstance().SetTimer( collieName, XCOLLIE_TIMEOUT_SECONDS, TimerCallback, nullptr, flag); diff --git a/services/call_report/src/app_state_observer.cpp b/services/call_report/src/app_state_observer.cpp index be5cffbf377ea4709b96683b72a1e765b8f2c3b8..cddbeaf93011eb05d724e6ad94830cdae9d55eff 100644 --- a/services/call_report/src/app_state_observer.cpp +++ b/services/call_report/src/app_state_observer.cpp @@ -25,7 +25,6 @@ namespace OHOS { namespace Telephony { namespace { const std::string TAG = "AppStateObserver"; - ffrt::queue unregisterCallbackQueue { "unregister_callback" }; } ApplicationStateObserver::ApplicationStateObserver() {} @@ -33,7 +32,7 @@ ApplicationStateObserver::~ApplicationStateObserver() {} void ApplicationStateObserver::OnProcessDied(const AppExecFwk::ProcessData& processData) { - if (processData.processName == "ui") { + if (processData.processName == "com.huawei.hmos.meetimeservice") { TELEPHONY_LOGE("report voipcall state idle"); DelayedSingleton::GetInstance()->SetVoIPCallState((int32_t)CallStateToApp::CALL_STATE_IDLE); DelayedSingleton::GetInstance()->ClearVoipList(); diff --git a/services/call_report/src/call_ability_report_proxy.cpp b/services/call_report/src/call_ability_report_proxy.cpp index d272047c9faf41d4e87a1c5acc5f0e38f749e5f0..b3267f3e1f65fb6b884dd53986c890f92e2e06bd 100644 --- a/services/call_report/src/call_ability_report_proxy.cpp +++ b/services/call_report/src/call_ability_report_proxy.cpp @@ -21,6 +21,7 @@ #include "app_state_observer.h" #include "bluetooth_call_manager.h" #include "call_ability_callback_death_recipient.h" +#include "call_control_manager.h" #include "call_manager_errors.h" #include "iservice_registry.h" #include "system_ability.h" diff --git a/services/call_voice_assistant/include/call_voice_assistant_manager.h b/services/call_voice_assistant/include/call_voice_assistant_manager.h index 1e85338b6f42acac1f685b23a1b7ca27e9811d32..fa5049d92a545ccb5e0b4d5d02e1a93e1d50a000 100644 --- a/services/call_voice_assistant/include/call_voice_assistant_manager.h +++ b/services/call_voice_assistant/include/call_voice_assistant_manager.h @@ -114,8 +114,8 @@ public: const std::string CONTROL_SWITCH_STATE_CHANGE_EVENT = "usual.event.CALL_UI_REPORT_SWITCH_STATE_CHANGE"; const std::string IS_CONNECT_SERVICE = "isConnectVoiceAssistant"; const std::string IS_PLAY_RING = "call_manager_play_ring"; - const std::string BUNDLE_NAME = ""; - const std::string HICAR_BUNDLE_NAME = ""; + const std::string BUNDLE_NAME = "com.huawei.hmos.vassistant"; + const std::string HICAR_BUNDLE_NAME = "com.huawei.hmos.hicar"; const std::string ABILITY_NAME = "CallVoiceControlAbility"; const std::string CONTROL_CHECK_RESULT = "incomingCallVoiceControlCheckResult"; const std::string BROADCAST_CHECK_RESULT = "incomingCallVoiceBroadcastCheckResult"; diff --git a/services/call_voice_assistant/src/call_voice_assistant_manager.cpp b/services/call_voice_assistant/src/call_voice_assistant_manager.cpp index f446b07e3fc20cf1ff461544dc4df4d2d5a0b434..86b61e5ccc689456a63affd40031062957e39e47 100644 --- a/services/call_voice_assistant/src/call_voice_assistant_manager.cpp +++ b/services/call_voice_assistant/src/call_voice_assistant_manager.cpp @@ -380,8 +380,7 @@ void CallVoiceAssistantManager::SendRequest(const std::shared_ptrdialOrCome).c_str()); return; } - MessageParcel data; - MessageParcel reply; + MessageParcel data, reply; MessageOption option; std::u16string sendStr = GetSendString(info); if (sendStr == DEFAULT_U16STRING) { @@ -723,8 +722,7 @@ bool CallVoiceAssistantManager::GetIsControlSwitchOn() void CallVoiceAssistantManager::UpdateReplyData(const std::string& str) { TELEPHONY_LOGI("receiveData, %{public}s.", str.c_str()); - std::size_t pos1 = 0; - std::size_t pos2 = 0; + std::size_t pos1 = 0, pos2 = 0; std::map replyData; while (pos1 != std::string::npos && pos2 != std::string::npos) { pos1 = str.find("\"", pos2 + 1); diff --git a/services/display/src/fold_status_manager.cpp b/services/display/src/fold_status_manager.cpp index 7c83c184eefcad5af60c2efdb476f5252fd48a1b..cf25c58fd98c0886cc80dac71fa9daa9bdb166ce 100644 --- a/services/display/src/fold_status_manager.cpp +++ b/services/display/src/fold_status_manager.cpp @@ -22,7 +22,8 @@ namespace OHOS { namespace Telephony { const std::string FOLD_PRODUCT_TYPE_KEY = "const.window.foldscreen.type"; -const std::string SMALL_FOLD_PRODUCT_TYPE = "2,0,0,0"; +const char SMALL_FOLD_PRODUCT_TYPE = '2'; +const int FOLD_TYPE_INDEX = 0; FoldStatusManager::~FoldStatusManager() {}; @@ -84,9 +85,12 @@ void FoldStatusManager::FoldStatusListener::OnFoldStatusChanged(Rosen::FoldStatu bool FoldStatusManager::IsSmallFoldDevice() { - std::string foldType = system::GetParameter(FOLD_PRODUCT_TYPE_KEY, "0,0,0,0"); - TELEPHONY_LOGI("IsSmallFoldDevice foldType is %{public}s", foldType.c_str()); - return foldType == SMALL_FOLD_PRODUCT_TYPE; + std::string screenType = system::GetParameter(FOLD_PRODUCT_TYPE_KEY, "0,0,0,0"); + TELEPHONY_LOGI("IsSmallFoldDevice foldType is %{public}s", screenType.c_str()); + if (screenType.empty()) { + return false; + } + return screenType[FOLD_TYPE_INDEX] == SMALL_FOLD_PRODUCT_TYPE; } } // namespace Telephony } // namespace OHOS \ No newline at end of file diff --git a/services/distributed_call/include/dcall/idcall_client.h b/services/distributed_call/include/dcall/idcall_client.h index 55ea19d1a481d2e18563c4caaffb6e81b49c814f..791314ad117fa8b59982c5fbf8e7459e6aa15e2d 100644 --- a/services/distributed_call/include/dcall/idcall_client.h +++ b/services/distributed_call/include/dcall/idcall_client.h @@ -43,7 +43,6 @@ public: extern "C" __attribute__((visibility("default"))) IDCallClient* GetDCallClientInstance(); -} // namespace DistributedHardware -} // namespace OHOS - +} // DistributedHardware +} // OHOS #endif // OHOS_IDCALL_CLIENT_H diff --git a/services/distributed_call/include/distributed_call_proxy.h b/services/distributed_call/include/distributed_call_proxy.h index d2ab058feb7f46ebc8051f16f84e24c835787929..e8c3041825088e6d0f200bbc22e9801092a40338 100644 --- a/services/distributed_call/include/distributed_call_proxy.h +++ b/services/distributed_call/include/distributed_call_proxy.h @@ -47,7 +47,7 @@ private: OHOS::DistributedHardware::IDCallClient* dcallClient_ = nullptr; void *dCallClientHandler_ = nullptr; }; -} // namespace Telephony -} // namespace OHOS +} // Telephony +} // OHOS #endif // TELEPHONY_DISTRIBUTED_CALL_PROXY_H \ No newline at end of file diff --git a/services/distributed_call/src/distributed_call_manager.cpp b/services/distributed_call/src/distributed_call_manager.cpp index e4e731155f893ad0893b4f4280bf64ea2325d8d1..706bfade60f5b16a76bc88f6b9917dbe76ccec7f 100644 --- a/services/distributed_call/src/distributed_call_manager.cpp +++ b/services/distributed_call/src/distributed_call_manager.cpp @@ -363,19 +363,20 @@ bool DistributedCallManager::isCeliaCall() } int32_t celiaCallType = foregroundCall->GetCeliaCallType(); if (celiaCallType == IS_CELIA_CALL) { - TELEPHONY_LOGI("current is celia call, no need switch on dcall device."); + TELEPHONY_LOGI("current is celia call."); return true; } + TELEPHONY_LOGI("current is not celia call."); return false; } void DistributedCallManager::SwitchOnDCallDeviceAsync(const AudioDevice& device) { + TELEPHONY_LOGI("switch dcall device on async"); if (isCeliaCall()) { return; } auto weak = weak_from_this(); - TELEPHONY_LOGI("switch dcall device on async"); std::thread switchThread = std::thread([weak, device]() { auto strong = weak.lock(); if (strong) { @@ -458,7 +459,7 @@ void DistributedCallManager::ReportDistributedDeviceInfo(const AudioDevice& devi TELEPHONY_LOGI("curDecId is the same as devId, devId = %{public}s", GetAnonyString(devId).c_str()); remoteDevice.clear(); - remoteDevice.push_back(*device); + remoteDevice.push_back(std::shared_ptr(*device)); break; } } @@ -489,7 +490,7 @@ void DistributedCallManager::ReportDistributedDeviceInfoForSwitchOff() if ((*device)->deviceType_ == DeviceType::DEVICE_TYPE_EARPIECE) { TELEPHONY_LOGI("curDecType is speaker."); remoteDevice.clear(); - remoteDevice.push_back(*device); + remoteDevice.push_back(std::shared_ptr(*device)); break; } } diff --git a/services/number_identity_proxy/include/number_identity_service.h b/services/number_identity_proxy/include/number_identity_service.h index f8802c1e970c2454fd25a489cc817facb4649d38..4715ca656ee503adf2c3c3394506bc9988c153ff 100644 --- a/services/number_identity_proxy/include/number_identity_service.h +++ b/services/number_identity_proxy/include/number_identity_service.h @@ -104,7 +104,7 @@ enum NumberIdentityServiceMessageCode { class INumberIdentityService : public IRemoteBroker { public: - DECLARE_INTERFACE_DESCRIPTOR(u"com.numberidentity:NumberIdentityService"); + DECLARE_INTERFACE_DESCRIPTOR(u"com.huawei.hmos.numberidentity:NumberIdentityService"); virtual void NotifyNumberMarkDataUpdate() = 0; }; diff --git a/services/number_identity_proxy/src/number_identity_service.cpp b/services/number_identity_proxy/src/number_identity_service.cpp index 00774e29e038031ee9db33f442fc118efeec8581..f512b4b8f23286519f957e04c5be257932a349f6 100644 --- a/services/number_identity_proxy/src/number_identity_service.cpp +++ b/services/number_identity_proxy/src/number_identity_service.cpp @@ -37,7 +37,7 @@ using ffrt::task_attr; using std::lock_guard; inline constexpr const int USER_ID = 100; -const char *NUMBER_IDENTITY_BUNDLE_NAME = "com.numberidentity"; +const char *NUMBER_IDENTITY_BUNDLE_NAME = "com.huawei.hmos.numberidentity"; const char *NUMBER_IDENTITY_SERVICE_EXT_ABILITY = "NumberIdentityServiceExtAbility"; NumberIdentityConnection::NumberIdentityConnection(ConnectedCallback onConnected, DisconnectedCallback onDisconnected) diff --git a/services/satellite_call/src/satellite_call_control.cpp b/services/satellite_call/src/satellite_call_control.cpp index 6d5295276d363e1229771decdac6c74f7eee3ed1..aa801b5cefcda6fff0d417f4cf85eb60fddce2af 100644 --- a/services/satellite_call/src/satellite_call_control.cpp +++ b/services/satellite_call/src/satellite_call_control.cpp @@ -115,7 +115,7 @@ void SatelliteCallControl::SetUsedModem() { char satelliteSupportType[SYSPARA_SIZE] = { 0 }; GetParameter(TEL_SATELLITE_SUPPORT_TYPE, SATELLITE_TYPE_DEFAULT_VALUE, satelliteSupportType, SYSPARA_SIZE); - int satelliteMode = static_cast(std::atoi(satelliteSupportType)); + uint32_t satelliteMode = static_cast(std::atoi(satelliteSupportType)); TELEPHONY_LOGI("satellite satelliteMode = %{public}d.", satelliteMode); if ((satelliteMode & 0b00000100) || (satelliteMode & 0b00010000)) { std::vector> vec = { @@ -146,7 +146,7 @@ void SatelliteCallControl::HandleSatelliteCallStateUpdate(sptr &call, } } std::string model = OHOS::system::GetParameter("const.build.product", "0"); - if (model != "") { + if (model != "ALN") { return; } if (nextState == TelCallState::CALL_STATUS_ACTIVE && !IsShowDialog()) { diff --git a/services/spam_call/src/spam_call_adapter.cpp b/services/spam_call/src/spam_call_adapter.cpp index 7e0d92f7a804da8da5ff9cadc353b33b52319886..72e189914ea1d99d208cade16021920127521e9d 100644 --- a/services/spam_call/src/spam_call_adapter.cpp +++ b/services/spam_call/src/spam_call_adapter.cpp @@ -61,7 +61,7 @@ bool SpamCallAdapter::DetectSpamCall(const std::string &phoneNumber, const int32 TELEPHONY_LOGW("DetectSpamCall start"); phoneNumber_ = phoneNumber; AAFwk::Want want; - std::string bundleName = "com.spamshield"; + std::string bundleName = "com.huawei.hmos.spamshield"; std::string abilityName = "SpamShieldServiceExtAbility"; want.SetElementName(bundleName, abilityName); bool connectResult = ConnectSpamCallAbility(want, phoneNumber, slotId); diff --git a/services/telephony_interaction/src/bluetooth_call_connection.cpp b/services/telephony_interaction/src/bluetooth_call_connection.cpp index 74a8c4f9df26da6ed9ecc1dbfa596787b02e0bad..86bfd69415e447b541b69bd1ddd79ea2df14641c 100644 --- a/services/telephony_interaction/src/bluetooth_call_connection.cpp +++ b/services/telephony_interaction/src/bluetooth_call_connection.cpp @@ -13,8 +13,6 @@ * limitations under the License. */ -#include "voip_call_connection.h" - #include "bluetooth_call_connection.h" #include "telephony_log_wrapper.h" #include "call_control_manager.h" diff --git a/services/telephony_interaction/src/call_status_callback.cpp b/services/telephony_interaction/src/call_status_callback.cpp index 4db8ba001b0e53ab09435c0fb1bf1115d7f91fc8..b002bb3c21bc215532df11772de01c5f60ccc572 100644 --- a/services/telephony_interaction/src/call_status_callback.cpp +++ b/services/telephony_interaction/src/call_status_callback.cpp @@ -63,7 +63,7 @@ int32_t CallStatusCallback::UpdateCallReportInfo(const CallReportInfo &info) detailInfo.voiceDomain = info.voiceDomain; detailInfo.mpty = info.mpty; (void)memcpy_s(detailInfo.phoneNum, kMaxNumberLen, info.accountNum, kMaxNumberLen); - (void)memset_s(detailInfo.bundleName, kMaxBundleNameLen, 0, kMaxBundleNameLen); + (void)memset_s(detailInfo.bundleName, kMaxBundleNameLen +1 , 0, kMaxBundleNameLen + 1); sptr callPtr = CallObjectManager::GetOneCallObjectByIndex(INIT_INDEX); if (callPtr != nullptr && callPtr->GetCallType() == CallType::TYPE_BLUETOOTH && callPtr->GetTelCallState() == TelCallState::CALL_STATUS_DIALING && callPtr->GetCallIndex() == INIT_INDEX && @@ -75,7 +75,8 @@ int32_t CallStatusCallback::UpdateCallReportInfo(const CallReportInfo &info) if (ret != TELEPHONY_SUCCESS) { TELEPHONY_LOGE("UpdateCallReportInfo failed! errCode:%{public}d", ret); } else { - TELEPHONY_LOGW("UpdateCallReportInfo success! state:%{public}d, index:%{public}d", info.state, info.index); + TELEPHONY_LOGW("UpdateCallReportInfo success! state:%{public}d, index:%{public}d, callType=%{public}d", + info.state, info.index, info.callType); } return ret; } @@ -99,7 +100,7 @@ int32_t CallStatusCallback::UpdateCallsReportInfo(const CallsReportInfo &info) detailInfo.crsType = (*it).crsType; detailInfo.originalCallType = (*it).originalCallType; (void)memcpy_s(detailInfo.phoneNum, kMaxNumberLen, (*it).accountNum, kMaxNumberLen); - (void)memset_s(detailInfo.bundleName, kMaxBundleNameLen, 0, kMaxBundleNameLen); + (void)memset_s(detailInfo.bundleName, kMaxBundleNameLen + 1, 0, kMaxBundleNameLen + 1); detailInfo.name = (*it).name; detailInfo.namePresentation = (*it).namePresentation; detailInfo.reason = (*it).reason; @@ -108,7 +109,7 @@ int32_t CallStatusCallback::UpdateCallsReportInfo(const CallsReportInfo &info) detailsInfo.slotId = callsInfo.slotId; CallManagerHisysevent::WriteCallStateBehaviorEvent( detailsInfo.slotId, static_cast(detailInfo.state), detailInfo.index); - (void)memset_s(detailsInfo.bundleName, kMaxBundleNameLen, 0, kMaxBundleNameLen); + (void)memset_s(detailsInfo.bundleName, kMaxBundleNameLen + 1, 0, kMaxBundleNameLen + 1); if (detailInfo.state == TelCallState::CALL_STATUS_INCOMING) { CallManagerHisysevent::WriteIncomingCallBehaviorEvent( diff --git a/services/telephony_interaction/src/report_call_info_handler.cpp b/services/telephony_interaction/src/report_call_info_handler.cpp index 08fb12cd61c1054bf3c15b8552a090dbc096231e..8b15187bd829118bf1e3f28049cde9cec4274e26 100644 --- a/services/telephony_interaction/src/report_call_info_handler.cpp +++ b/services/telephony_interaction/src/report_call_info_handler.cpp @@ -80,7 +80,7 @@ void ReportCallInfoHandler::BuildCallDetailsInfo(CallDetailsInfo &info, CallDeta callDetailInfo.crsType = (*iter).crsType; callDetailInfo.originalCallType = (*iter).originalCallType; (void)memcpy_s(callDetailInfo.phoneNum, kMaxNumberLen, (*iter).phoneNum, kMaxNumberLen); - (void)memcpy_s(callDetailInfo.bundleName, kMaxBundleNameLen, (*iter).bundleName, kMaxBundleNameLen); + (void)memcpy_s(callDetailInfo.bundleName, kMaxBundleNameLen + 1, (*iter).bundleName, kMaxBundleNameLen + 1); callDetailInfo.name = (*iter).name; callDetailInfo.namePresentation = (*iter).namePresentation; callDetailInfo.reason = (*iter).reason; @@ -96,7 +96,7 @@ int32_t ReportCallInfoHandler::UpdateCallsReportInfo(CallDetailsInfo &info) } CallDetailsInfo callDetailsInfo; callDetailsInfo.slotId = info.slotId; - (void)memcpy_s(callDetailsInfo.bundleName, kMaxBundleNameLen, info.bundleName, kMaxBundleNameLen); + (void)memcpy_s(callDetailsInfo.bundleName, kMaxBundleNameLen + 1, info.bundleName, kMaxBundleNameLen + 1); BuildCallDetailsInfo(info, callDetailsInfo); std::weak_ptr callStatusManagerPtr = callStatusManagerPtr_; TELEPHONY_LOGW("UpdateCallsReportInfo submit task enter"); @@ -152,7 +152,6 @@ int32_t ReportCallInfoHandler::UpdateDisconnectedCause(const DisconnectedDetails TELEPHONY_LOGE("HandleDisconnectedCause failed! ret:%{public}d", ret); } }); - return TELEPHONY_SUCCESS; } @@ -175,7 +174,6 @@ int32_t ReportCallInfoHandler::UpdateEventResultInfo(const CellularCallEventInfo TELEPHONY_LOGE("HandleEventResultReportInfo failed! ret:%{public}d", ret); } }); - return TELEPHONY_SUCCESS; } @@ -199,7 +197,6 @@ int32_t ReportCallInfoHandler::UpdateOttEventInfo(const OttCallEventInfo &info) TELEPHONY_LOGE("HandleOttEventReportInfo failed! ret:%{public}d", ret); } }); - return TELEPHONY_SUCCESS; } diff --git a/test/fuzztest/callabilitycallback_fuzzer/callabilitycallback_fuzzer.cpp b/test/fuzztest/callabilitycallback_fuzzer/callabilitycallback_fuzzer.cpp index d7d59434fbd8c9b47f98d96e0addb4607e860919..73827172f43dca0c00e1841daca41fdafcdf2397 100644 --- a/test/fuzztest/callabilitycallback_fuzzer/callabilitycallback_fuzzer.cpp +++ b/test/fuzztest/callabilitycallback_fuzzer/callabilitycallback_fuzzer.cpp @@ -76,7 +76,7 @@ int32_t UpdateCallStateInfo(const uint8_t *data, size_t size) int32_t accountLength = msg.length() > kMaxNumberLen ? kMaxNumberLen : msg.length(); int32_t bundleLength = msg.length() > kMaxBundleNameLen ? kMaxBundleNameLen : msg.length(); memcpy_s(info.accountNumber, kMaxNumberLen, msg.c_str(), accountLength); - memcpy_s(info.bundleName, kMaxBundleNameLen, msg.c_str(), bundleLength); + memcpy_s(info.bundleName, kMaxBundleNameLen + 1, msg.c_str(), bundleLength); info.accountId = static_cast(size % ACCOUNT_ID_NUM); info.startTime = static_cast(size); info.callId = static_cast(size % CALL_ID_NUM); @@ -125,7 +125,7 @@ int32_t UpdateCallEvent(const uint8_t *data, size_t size) int32_t phoneLength = msg.length() > kMaxNumberLen ? kMaxNumberLen : msg.length(); int32_t bundleLength = msg.length() > kMaxBundleNameLen ? kMaxBundleNameLen : msg.length(); memcpy_s(info.phoneNum, kMaxNumberLen, msg.c_str(), phoneLength); - memcpy_s(info.bundleName, kMaxBundleNameLen, msg.c_str(), bundleLength); + memcpy_s(info.bundleName, kMaxBundleNameLen + 1, msg.c_str(), bundleLength); int32_t length = sizeof(CallEventInfo); MessageParcel messageParcel; messageParcel.WriteInt32(length); diff --git a/test/fuzztest/callvoiceassistantmanager_fuzzer/BUILD.gn b/test/fuzztest/callvoiceassistantmanager_fuzzer/BUILD.gn index fe55fb781ef73b524e37a528db15cfb91840cbe4..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/test/fuzztest/callvoiceassistantmanager_fuzzer/BUILD.gn +++ b/test/fuzztest/callvoiceassistantmanager_fuzzer/BUILD.gn @@ -1,75 +0,0 @@ -# Copyright (c) 2023 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#####################hydra-fuzz################### -import("//build/config/features.gni") -import("//build/ohos.gni") -import("//build/test.gni") -import("../../../callmanager.gni") - -##############################fuzztest########################################## -CALL_MANAGER_PATH = "../../.." -ohos_fuzztest("CallVoiceAssistantManagerFuzzTest") { - module_output_path = "call_manager/call_manager" - module_out_path = module_output_path - fuzz_config_file = - "${CALL_MANAGER_PATH}/test/fuzztest/callvoiceassistantmanager_fuzzer" - - include_dirs = [ - "${CALL_MANAGER_PATH}/interfaces/innerkits", - "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer", - ] - include_dirs += call_manager_include_dirs - - deps = [ - "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api", - "//third_party/cJSON:cjson", - "//third_party/libphonenumber/cpp:phonenumber_standard", - ] - - external_deps = [ - "access_token:libnativetoken", - "access_token:libtoken_setproc", - ] - external_deps += call_manager_external_deps - - defines = [ - "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"", - "LOG_DOMAIN = 0xD000F00", - ] - defines += call_manager_defines - - cflags = [ - "-g", - "-O0", - "-Wno-unused-variable", - "-fno-omit-frame-pointer", - ] - - sources = [ - "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp", - "callvoiceassistantmanager_fuzzer.cpp", - ] - sources += call_manager_sources -} - -############################################################################### -group("fuzztest") { - testonly = true - deps = [] - deps += [ - # deps file - ":CallVoiceAssistantManagerFuzzTest", - ] -} -############################################################################### diff --git a/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.cpp b/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.cpp deleted file mode 100644 index a795562faf89100dab6a6568e6d45c55d371414b..0000000000000000000000000000000000000000 --- a/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "callvoiceassistantmanager_fuzzer.h" - -#include -#include -#define private public -#include "addcalltoken_fuzzer.h" -#include "cs_call.h" -#include "call_voice_assistant_manager.h" -#include "call_manager_base.h" - -using namespace OHOS::Telephony; -namespace OHOS { -const int32_t CALL_STATE_NUM = 8; -const int32_t CALL_ID = -1; -const int32_t ACCOUNT_ID = -1; -const std::string CONTROL_SWITCH = "incoming_call_voice_control_switch"; -const std::string INCOMING = "come"; -const std::string DIALING = "dial"; - -void ListenCallStateFunc(const uint8_t *data, size_t size) -{ - if (!IsServiceInited()) { - return; - } - - DialParaInfo paraInfo; - sptr callObjectPtr = std::make_unique(paraInfo).release(); - TelCallState priorState = static_cast(size % CALL_STATE_NUM); - TelCallState nextState = static_cast(size % CALL_STATE_NUM); - std::shared_ptr voicePtr = CallVoiceAssistantManager::GetInstance(); - voicePtr->CallStateUpdated(callObjectPtr, priorState, nextState); - voicePtr->CallStatusDialing(CALL_ID, ACCOUNT_ID); - voicePtr->CallStatusIncoming(CALL_ID, ACCOUNT_ID); - voicePtr->CallStatusActive(CALL_ID, ACCOUNT_ID); - voicePtr->CallStatusDisconnected(CALL_ID, ACCOUNT_ID); - voicePtr->ConnectAbility(ACCOUNT_ID); - voicePtr->OnStartService(INCOMING, ACCOUNT_ID); - voicePtr->RegisterListenSwitchState(); - voicePtr->PublishCommonEvent(true, INCOMING); - voicePtr->DisconnectAbility(); - voicePtr->UnRegisterListenSwitchState(); - voicePtr->PublishCommonEvent(false, DIALING); - voicePtr->OnStopService(); - voicePtr->Release(); -} - -void SendRequestFunc(const uint8_t *data, size_t size) -{ - if (!IsServiceInited()) { - return; - } - - std::string value = ""; - ContactInfo contactInfo; - sptr remoteObject = sptr::MakeSptr(ACCOUNT_ID); - std::shared_ptr voicePtr = CallVoiceAssistantManager::GetInstance(); - auto infoptr = voicePtr->GetContactInfo(ACCOUNT_ID); - voicePtr->UpdateNumberLocation(value, ACCOUNT_ID); - voicePtr->UpdateContactInfo(contactInfo, ACCOUNT_ID); - voicePtr->OnStopService(); - voicePtr->Initial(); - voicePtr->QueryValue(CONTROL_SWITCH, value); - voicePtr->IsStartVoiceBroadcast(); - voicePtr->IsSwitchOn(CONTROL_SWITCH); - voicePtr->OnStartService(DIALING, ACCOUNT_ID); - voicePtr->MuteRinger(); - voicePtr->UpdateReplyData(value); - voicePtr->GetSendString(infoptr); - voicePtr->SendRequest(infoptr, true); - voicePtr->OnStopService(); - voicePtr->Release(); -} - -void UpdateValueFunc(const uint8_t *data, size_t size) -{ - if (!IsServiceInited()) { - return; - } - - AppExecFwk::ElementName element; - sptr connectCallback = sptr::MakeSptr(ACCOUNT_ID); - sptr settingsCallback = sptr::MakeSptr(); - std::shared_ptr voicePtr = CallVoiceAssistantManager::GetInstance(); - sptr remoteObject = sptr::MakeSptr(CALL_STATE_NUM); - std::string event = "test.test.test.test"; - EventFwk::MatchingSkills matchingSkills; - matchingSkills.AddEvent(event); - EventFwk::CommonEventSubscribeInfo subscribeInfo(matchingSkills); - auto subscriber = std::make_shared(subscribeInfo); - EventFwk::CommonEventData eventData; - AAFwk::Want want; - want.SetAction(event); - want.SetParam(event, event); - eventData.SetWant(want); - settingsCallback->OnChange(); - connectCallback->OnAbilityConnectDone(element, remoteObject, ACCOUNT_ID); - connectCallback->OnAbilityDisconnectDone(element, ACCOUNT_ID); - subscriber->OnReceiveEvent(eventData); - subscriber->Initial(); - subscriber->Release(); - voicePtr->SetIsControlSwitchOn(true); - voicePtr->GetIsControlSwitchOn(); - voicePtr->GetIsPlayRing(); - voicePtr->UpdateVoipCallState(ACCOUNT_ID); -} - -void DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) -{ - if (data == nullptr || size == 0) { - return; - } - - ListenCallStateFunc(data, size); - SendRequestFunc(data, size); - UpdateValueFunc(data, size); -} -} // namespace OHOS - -/* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) -{ - OHOS::AddCallTokenFuzzer token; - /* Run your code on data */ - OHOS::DoSomethingInterestingWithMyAPI(data, size); - return 0; -} diff --git a/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.h b/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.h deleted file mode 100644 index a0b1c6e0ff3fd85c8db8fb19f226f52ef262c595..0000000000000000000000000000000000000000 --- a/test/fuzztest/callvoiceassistantmanager_fuzzer/callvoiceassistantmanager_fuzzer.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CALLVOICEASSISTANTMANAGER_FUZZER_H -#define CALLVOICEASSISTANTMANAGER_FUZZER_H - -#define FUZZ_PROJECT_NAME "callvoiceassistantmanager_fuzzer" - -#endif // CALLVOICEASSISTANTMANAGER_FUZZER_H diff --git a/test/fuzztest/callvoiceassistantmanager_fuzzer/corpus/init b/test/fuzztest/callvoiceassistantmanager_fuzzer/corpus/init deleted file mode 100644 index 5a594ba56c8278eb51062e96e8dc9c2b85e032db..0000000000000000000000000000000000000000 --- a/test/fuzztest/callvoiceassistantmanager_fuzzer/corpus/init +++ /dev/null @@ -1,19 +0,0 @@ - /* - * Copyright (c) 2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /* - * corpus is necessary - */ - FUZZ \ No newline at end of file diff --git a/test/fuzztest/callvoiceassistantmanager_fuzzer/project.xml b/test/fuzztest/callvoiceassistantmanager_fuzzer/project.xml deleted file mode 100644 index 4fdbc407f205680885fa42663163b5c987f123a6..0000000000000000000000000000000000000000 --- a/test/fuzztest/callvoiceassistantmanager_fuzzer/project.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 1000 - - 300 - - 4096 - - diff --git a/test/fuzztest/display_fuzzer/display_fuzzer.cpp b/test/fuzztest/display_fuzzer/display_fuzzer.cpp index f6313a1a41662bed3cdb6a634ae945dd86ce6d4d..974bfae19adfd02c6dba1aa7130f3f5aa79c013f 100644 --- a/test/fuzztest/display_fuzzer/display_fuzzer.cpp +++ b/test/fuzztest/display_fuzzer/display_fuzzer.cpp @@ -26,7 +26,7 @@ namespace OHOS { void FoldStatusManagerFunc(const uint8_t *data, size_t size) { std::shared_ptr foldStatusManager = DelayedSingleton::GetInstance(); - reinterpret_cast(data); + (void *)(data); foldStatusManager->UnregisterFoldableListener(); foldStatusManager->RegisterFoldableListener(); foldStatusManager->RegisterFoldableListener(); diff --git a/test/fuzztest/formatphonenumber_fuzzer/formatphonenumber_fuzzer.cpp b/test/fuzztest/formatphonenumber_fuzzer/formatphonenumber_fuzzer.cpp index 58fd44e4b0e215d45cd678a0c1300315ef39a604..286a6020de5d8a3ecf5459b374cd23e101d7d242 100644 --- a/test/fuzztest/formatphonenumber_fuzzer/formatphonenumber_fuzzer.cpp +++ b/test/fuzztest/formatphonenumber_fuzzer/formatphonenumber_fuzzer.cpp @@ -93,7 +93,7 @@ int32_t ReportOttCallDetailsInfo(const uint8_t *data, size_t size) std::string msg(reinterpret_cast(data), size); int32_t phoneLength = msg.length() > kMaxNumberLen ? kMaxNumberLen : msg.length(); int32_t bundleLength = msg.length() > kMaxBundleNameLen ? kMaxBundleNameLen : msg.length(); - memcpy_s(info.phoneNum, kMaxNumberLen, msg.c_str(), phoneLength); + memcpy_s(info.phoneNum, kMaxNumberLen + 1, msg.c_str(), phoneLength); memcpy_s(info.bundleName, kMaxBundleNameLen, msg.c_str(), bundleLength); info.callState = TelCallState::CALL_STATUS_DIALING; info.videoState = VideoStateType::TYPE_VOICE; @@ -114,7 +114,7 @@ int32_t ReportOttCallEventInfo(const uint8_t *data, size_t size) info.ottCallEventId = OttCallEventId::OTT_CALL_EVENT_FUNCTION_UNSUPPORTED; std::string msg(reinterpret_cast(data), size); int32_t bundleLength = msg.length() > kMaxBundleNameLen ? kMaxBundleNameLen : msg.length(); - memcpy_s(info.bundleName, kMaxBundleNameLen, msg.c_str(), bundleLength); + memcpy_s(info.bundleName, kMaxBundleNameLen + 1, msg.c_str(), bundleLength); MessageParcel messageParcel; messageParcel.WriteRawData((const void *)&info, sizeof(OttCallEventInfo)); messageParcel.RewindRead(0); diff --git a/test/unittest/call_earthquake_alarm_test/src/call_earthquake_alarm_test.cpp b/test/unittest/call_earthquake_alarm_test/src/call_earthquake_alarm_test.cpp index 2b6ee8ed6b143849b24749023c632cd2e8174c93..e367fd2824394ddd65202b7d7ba3e5923513014a 100644 --- a/test/unittest/call_earthquake_alarm_test/src/call_earthquake_alarm_test.cpp +++ b/test/unittest/call_earthquake_alarm_test/src/call_earthquake_alarm_test.cpp @@ -124,7 +124,7 @@ HWTEST_F(LocationEngineTest, Telephony_MyLocationEngine_002, Function | MediumTe return; } Parcel parcel; - std::unique_ptr location = Location::Location::UnmarshallingMakeUnique(parcel); + std::unique_ptr location = Location::Location::Unmarshalling(parcel); engine->locatorCallback_->OnLocationReport(location); uint32_t code = 0; MessageParcel data1; @@ -286,26 +286,26 @@ HWTEST_F(LocationEngineTest, Telephony_DataShareSwitchState_001, Function | Medi */ HWTEST_F(LocationEngineTest, Telephony_LocationSystemAbilityListener_001, Function | MediumTest | Level3) { - int32_t ability1301 = OHOS::DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID; - int32_t ability2802 = OHOS::LOCATION_LOCATOR_SA_ID; - int32_t ability2805 = OHOS::LOCATION_NOPOWER_LOCATING_SA_ID; + int32_t ability_1301 = OHOS::DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID; + int32_t ability_2802 = OHOS::LOCATION_LOCATOR_SA_ID; + int32_t ability_2805 = OHOS::LOCATION_NOPOWER_LOCATING_SA_ID; const std::string deviceId = "11111111111test"; sptr locationAbility = sptr::MakeSptr(); locationAbility->systemAbilityStatus = {}; - locationAbility->GetSystemAbility(ability1301); - locationAbility->GetSystemAbility(ability2802); - locationAbility->GetSystemAbility(ability2805); + locationAbility->GetSystemAbility(ability_1301); + locationAbility->GetSystemAbility(ability_2802); + locationAbility->GetSystemAbility(ability_2805); locationAbility->statusChangeListener_ = sptr::MakeSptr(); locationAbility->SystemAbilitySubscriber(); locationAbility->statusChangeListener_ = nullptr; locationAbility->SystemAbilitySubscriber(); sptr callback = sptr::MakeSptr(); - callback->OnAddSystemAbility(ability1301, deviceId); - callback->OnAddSystemAbility(ability2802, deviceId); - callback->OnAddSystemAbility(ability2805, deviceId); - callback->OnRemoveSystemAbility(ability1301, deviceId); - callback->OnRemoveSystemAbility(ability2802, deviceId); - callback->OnRemoveSystemAbility(ability2805, deviceId); + callback->OnAddSystemAbility(ability_1301, deviceId); + callback->OnAddSystemAbility(ability_2802, deviceId); + callback->OnAddSystemAbility(ability_2805, deviceId); + callback->OnRemoveSystemAbility(ability_1301, deviceId); + callback->OnRemoveSystemAbility(ability_2802, deviceId); + callback->OnRemoveSystemAbility(ability_2805, deviceId); ASSERT_TRUE(locationAbility->SystemAbilitySubscriber() == true); ASSERT_TRUE(locationAbility->statusChangeListener_ != nullptr); } diff --git a/test/unittest/call_manager_gtest/src/call_manager1_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager1_gtest.cpp index 30ecd96abd7529ef679181cc52c95672a649982e..b03efad2a82b212381c2915aae29f6e471d90be2 100644 --- a/test/unittest/call_manager_gtest/src/call_manager1_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager1_gtest.cpp @@ -185,7 +185,198 @@ public: void TearDown() {}; }; +/********************************************* Test RejectCall() ***********************************************/ +/** + * @tc.number Telephony_CallManager_RejectCall_0100 + * @tc.name test RejectCall with the callId does not exist + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + std::u16string textMessage = Str8ToStr16("this is a test message"); + EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_RejectCall_0200 + * @tc.name test RejectCall without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0200, Function | MediumTest | Level2) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + std::u16string textMessage = Str8ToStr16("this is a test message"); + EXPECT_NE(CallManagerGtest::clientPtr_->RejectCall(callId, true, textMessage), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_RejectCall_0300 + * @tc.name test RejectCall with the callId does not exist + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_RejectCall_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(bluetoothCallClient.RejectCall(), RETURN_VALUE_IS_ZERO); +} + +/******************************************* Test HangUpCall() *********************************************/ +/** + * @tc.number Telephony_CallManager_HangUpCall_0100 + * @tc.name test disconnect call with wrong callId + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HangUpCall_0200 to do ... + * @tc.name test ring disconnect call after DialCall, + * wait for the correct status of the callback to execute correctly + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HangUpCall_0300 to do ... + * @tc.name test ring disconnect call after DialCall without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0300, Function | MediumTest | Level2) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HangUpCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HangUpCall_0400 to do ... + * @tc.name test ring disconnect call after DialCall + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HangUpCall_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(bluetoothCallClient.HangUpCall(), RETURN_VALUE_IS_ZERO); +} + +/******************************************* Test GetCallState() *********************************************/ +/** + * @tc.number Telephony_CallManager_GetCallState_0100 + * @tc.name test GetCallState() without call + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0100, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE); +} + +/** + * @tc.number Telephony_CallManager_GetCallState_0200 to do ... + * @tc.name test GetCallState() after call + * wait for the correct status of the callback to execute correctly + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0200, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE); +} + +/** + * @tc.number Telephony_CallManager_GetCallState_0300 + * @tc.name test GetCallState() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallState_0300, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_EQ(bluetoothCallClient.GetCallState(), TELEPHONY_SUCCESS); +} + /**************************** Test ReportAudioDeviceInfo() ****************************/ +/** + * @tc.number Telephony_CallManager_ReportAudioDeviceInfo_0100 + * @tc.name test report audio device info + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportAudioDeviceInfo_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "10086"; + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_), RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_GE(CallManagerGtest::clientPtr_->ReportAudioDeviceInfo(), RETURN_VALUE_IS_ZERO); + sleep(1); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + /** * @tc.number Telephony_CallManager_ReportAudioDeviceInfo_0200 * @tc.name test report audio device info without active call @@ -215,5 +406,571 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportAudioDeviceInfo_0300, Fun } EXPECT_NE(CallManagerGtest::clientPtr_->ReportAudioDeviceInfo(), RETURN_VALUE_IS_ZERO); } + +/******************************************* Test HoldCall() *********************************************/ +/** + * @tc.number Telephony_CallManager_HoldCall_0100 + * @tc.name Hold calls for non-existent call ID + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HoldCall_0200 to do ... + * @tc.name coming call test hold call, return non 0 + * wait for the correct status of the callback to execute correctly + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HoldCall_0300 to do ... + * @tc.name coming call test hold call without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0300, Function | MediumTest | Level2) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->HoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_HoldCall_0400 + * @tc.name Hold calls for non-existent call ID + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HoldCall_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(bluetoothCallClient.HoldCall(), RETURN_VALUE_IS_ZERO); +} + +/******************************************* Test UnHoldCall() *********************************************/ +/** + * @tc.number Telephony_CallManager_UnHoldCall_0100 + * @tc.name Replies calls to a call ID that does not exist, return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_UnHoldCall_0200 to do ... + * @tc.name Passing in the suspended call ID, test UnHoldCall() return non 0 + * wait for the correct status of the callback to execute correctly + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_UnHoldCall_0300 + * @tc.name Replies calls to a call ID that does not exist without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0300, Function | MediumTest | Level2) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->UnHoldCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_UnHoldCall_0400 + * @tc.name Replies calls to a call ID that does not exist, return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_UnHoldCall_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(bluetoothCallClient.UnHoldCall(), RETURN_VALUE_IS_ZERO); +} + +/******************************************* Test SwitchCall() *********************************************/ +/** + * @tc.number Telephony_CallManager_SwitchCall_0100 + * @tc.name Test returns 0 after switching call + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SwitchCall_0200 + * @tc.name Test returns 0 after switching call without permission + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0200, Function | MediumTest | Level2) +{ + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SwitchCall_0300 + * @tc.name Test returns 0 after switching call + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(bluetoothCallClient.SwitchCall(), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SwitchCall_0400 + * @tc.name Test returns 0 after switching call, and DialCall(), return true + * wait for the correct status of the callback to execute correctly + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SwitchCall_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string phoneNumber = "44444444444"; + int32_t callId = INVALID_NEGATIVE_ID; + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(CallManagerGtest::clientPtr_->SwitchCall(callId), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/********************************************* Test HasCall() ***********************************************/ +/** + * @tc.number Telephony_CallManager_HasCall_0100 + * @tc.name in CALL_STATE_IDLE status, than test Hascall(), return false + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callState = CallManagerGtest::clientPtr_->GetCallState(); + int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE; + ASSERT_EQ(callState, idleState); + EXPECT_EQ(CallManagerGtest::clientPtr_->HasCall(), false); +} + +/** + * @tc.number Telephony_CallManager_HasCall_0200 to do ... + * @tc.name The wrong number is not on call, return false + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0200, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string phoneNumber = ""; + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_NE(ret, RETURN_VALUE_IS_ZERO); + bool isRet = CallManagerGtest::clientPtr_->HasCall(); + EXPECT_NE(isRet, true); +} + +/** + * @tc.number Telephony_CallManager_HasCall_0300 to do ... + * @tc.name Free time test Hascall(), return false + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0300, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + bool isRet = CallManagerGtest::clientPtr_->HasCall(); + EXPECT_NE(isRet, true); +} + +/** + * @tc.number Telephony_CallManager_HasCall_0400 + * @tc.name in CALL_STATE_IDLE status, than test Hascall(), return false + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_HasCall_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + ASSERT_EQ(CallManagerGtest::clientPtr_->GetCallState(), (int32_t)CallStateToApp::CALL_STATE_IDLE); + EXPECT_EQ(bluetoothCallClient.HasCall(), false); +} + +/********************************* Test IsNewCallAllowed() ***************************************/ +/** + * @tc.number Telephony_CallManager_IsNewCallAllowed_0100 + * @tc.name The call failed after making a call without the card + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0100, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string phoneNumber = "55555555555"; + InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, + (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + ASSERT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + bool enabled = false; + EXPECT_EQ(CallManagerGtest::clientPtr_->IsNewCallAllowed(enabled), TELEPHONY_SUCCESS); + EXPECT_EQ(enabled, false); + sleep(WAIT_TIME); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_IsNewCallAllowed_0200 + * @tc.name The call failed after making a call without the card + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_IsNewCallAllowed_0200, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + bool enabled = false; + EXPECT_EQ(bluetoothCallClient.IsNewCallAllowed(enabled), TELEPHONY_SUCCESS); + EXPECT_EQ(enabled, true); +} + +/********************************************* Test IsRinging() ***********************************************/ +/** + * @tc.number Telephony_CallManager_IsRinging_0100 + * @tc.name There is no call, return true + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0100, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callState = CallManagerGtest::clientPtr_->GetCallState(); + int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE; + ASSERT_EQ(callState, idleState); + bool enabled = false; + EXPECT_EQ(CallManagerGtest::clientPtr_->IsRinging(enabled), TELEPHONY_SUCCESS); + EXPECT_NE(enabled, true); +} + +/** + * @tc.number Telephony_CallManager_IsRinging_0200 + * @tc.name There is no call, return true + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_IsRinging_0200, Function | MediumTest | Level1) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t callState = CallManagerGtest::clientPtr_->GetCallState(); + int32_t idleState = (int32_t)CallStateToApp::CALL_STATE_IDLE; + ASSERT_EQ(callState, idleState); + bool enabled = false; + EXPECT_EQ(bluetoothCallClient.IsRinging(enabled), TELEPHONY_SUCCESS); + EXPECT_NE(enabled, true); +} + +/***************************************** Test CombineConference() ********************************************/ +/** + * @tc.number Telephony_CallManager_CombineConference_0100 + * @tc.name Import callId "@&%¥", test CombineConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_CombineConference_0200 + * @tc.name Import callId "100", test CombineConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_POSITIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_CombineConference_0300 + * @tc.name Import callId "@&%¥", test CombineConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_NE(bluetoothCallClient.CombineConference(), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_CombineConference_0400 + * @tc.name Import callId "@&%¥", test CombineConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CombineConference_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string phoneNumber = "10086"; + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_), RETURN_VALUE_IS_ZERO); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_NE(CallManagerGtest::clientPtr_->CombineConference(g_newCallId), RETURN_VALUE_IS_ZERO); + } + sleep(WAIT_TIME); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/***************************************** Test SeparateConference() ********************************************/ +/** + * @tc.number Telephony_CallManager_SeparateConference_0100 + * @tc.name Import callId " -100", test SeparateConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SeparateConference_0200 + * @tc.name Import callId "100", test SeparateConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_POSITIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SeparateConference_0300 + * @tc.name Import callId " -100", test SeparateConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_NE(bluetoothCallClient.SeparateConference(), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_SeparateConference_0400 + * @tc.name Import callId normal, test SeparateConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SeparateConference_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16("10086"), dialInfo_), RETURN_VALUE_IS_ZERO); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_NE(CallManagerGtest::clientPtr_->SeparateConference(g_newCallId), RETURN_VALUE_IS_ZERO); + } + sleep(WAIT_TIME); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/***************************************** Test KickOutFromConference() ********************************************/ +/** + * @tc.number Telephony_CallManager_KickOutFromConference_0100 + * @tc.name Import callId " -100", test KickOutFromConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_NEGATIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->KickOutFromConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_KickOutFromConference_0200 + * @tc.name Import callId "100", test KickOutFromConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t callId = INVALID_POSITIVE_ID; + EXPECT_NE(CallManagerGtest::clientPtr_->KickOutFromConference(callId), RETURN_VALUE_IS_ZERO); +} + +/** + * @tc.number Telephony_CallManager_KickOutFromConference_0300 + * @tc.name Import callId " -100", test KickOutFromConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_NE(bluetoothCallClient.KickOutFromConference(), RETURN_VALUE_IS_ZERO); +} } // namespace Telephony } // namespace OHOS \ No newline at end of file diff --git a/test/unittest/call_manager_gtest/src/call_manager3_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager3_gtest.cpp index b3607c93d27405769c00f70038c4ef341960f23a..7ce8d261438f1e02c26aa7d491ceaa1b1a8ccc06 100644 --- a/test/unittest/call_manager_gtest/src/call_manager3_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager3_gtest.cpp @@ -324,6 +324,27 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_FormatPhoneNumberToE164_0800, F RETURN_VALUE_IS_ZERO); } +/********************************************* Test SetCallWaiting() ***********************************************/ +/** + * @tc.number Telephony_CallManager_SetCallWaiting_0100 + * @tc.name input slotId 0, test SetCallWaiting() enable callWaiting + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM1_SLOTID, true), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM2_SLOTID, true), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetCallWaiting_0200 * @tc.name input invalid slotId, test SetCallWaiting() enable callWaiting @@ -355,6 +376,26 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0300, Function | EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(slotId, true), CALL_ERR_INVALID_SLOT_ID); } +/** + * @tc.number Telephony_CallManager_SetCallWaiting_0400 + * @tc.name input slotId 0, test SetCallWaiting() disable callWaiting + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0400, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM1_SLOTID, false), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallWaiting(SIM2_SLOTID, false), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetCallWaiting_0500 * @tc.name input invalid slotId, test SetCallWaiting() disable callWaiting @@ -406,6 +447,29 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallWaiting_0700, Function | } /******************************************* Test GetCallRestriction() ********************************************/ +/** + * @tc.number Telephony_CallManager_GetCallRestriction_0100 + * @tc.name input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_INCOMING, test GetCallRestriction() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction( + SIM1_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction( + SIM2_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING), + RETURN_VALUE_IS_ZERO); + } +} /** * @tc.number Telephony_CallManager_GetCallRestriction_0200 @@ -444,6 +508,30 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0300, Functi CALL_ERR_INVALID_SLOT_ID); } +/** + * @tc.number Telephony_CallManager_GetCallRestriction_0400 + * @tc.name input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, test GetCallRestriction() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0400, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction( + SIM1_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallRestriction( + SIM2_SLOTID, CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING), + RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_GetCallRestriction_0500 * @tc.name input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, test GetCallRestriction() @@ -505,6 +593,35 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallRestriction_0700, Functi } /******************************************* Test SetCallRestriction() ********************************************/ +/** + * @tc.number Telephony_CallManager_SetCallRestriction_0100 + * @tc.name input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, + * CallRestrictionMode::RESTRICTION_MODE_ACTIVATION, + * test SetCallRestriction() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallRestrictionInfo info; + info.fac = CallRestrictionType::RESTRICTION_TYPE_ALL_OUTGOING; + info.mode = CallRestrictionMode::RESTRICTION_MODE_ACTIVATION; + if (strcpy_s(info.password, kMaxNumberLen + 1, "555") != EOK) { + TELEPHONY_LOGE("strcpy_s fail."); + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM1_SLOTID, info), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestriction(SIM2_SLOTID, info), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetCallRestriction_0200 * @tc.name input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_OUTGOING, @@ -581,6 +698,32 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestriction_0400, Functi } /**************************************** Test SetCallRestrictionPassword() *****************************************/ +/** + * @tc.number Telephony_CallManager_SetCallRestrictionPassword_0100 + * @tc.name input slotId 0, CallRestrictionType RESTRICTION_TYPE_ALL_CALLS, + * old pasword, new password, test SetCallRestrictionPassword() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestrictionPassword_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + const char oldPassword[kMaxNumberLen + 1] = "1111"; + const char newPassword[kMaxNumberLen + 1] = "2222"; + CallRestrictionType fac = CallRestrictionType::RESTRICTION_TYPE_ALL_CALLS; + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestrictionPassword(SIM1_SLOTID, fac, oldPassword, newPassword), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallRestrictionPassword(SIM2_SLOTID, fac, oldPassword, newPassword), + RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetCallRestrictionPassword_0200 * @tc.name input invalid slotId, CallRestrictionType RESTRICTION_TYPE_ALL_CALLS, @@ -698,6 +841,28 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallRestrictionPassword_0600 } /******************************************* Test GetCallTransferInfo() ********************************************/ +/** + * @tc.number Telephony_CallManager_GetCallTransferInfo_0100 + * @tc.name input slotId 0, CallTransferType TRANSFER_TYPE_BUSY, test GetCallTransferInfo() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_BUSY), + RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_GetCallTransferInfo_0200 * @tc.name input invalid slotId, CallTransferType TRANSFER_TYPE_BUSY, test GetCallTransferInfo() return failed @@ -732,6 +897,30 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0300, Funct CALL_ERR_INVALID_SLOT_ID); } +/** + * @tc.number Telephony_CallManager_GetCallTransferInfo_0400 + * @tc.name input slotId 0, CallTransferType TRANSFER_TYPE_NO_REPLY, test GetCallTransferInfo() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0400, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_NO_REPLY), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetCallTransferInfo(SIM2_SLOTID, CallTransferType::TRANSFER_TYPE_NO_REPLY), + RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_GetCallTransferInfo_0500 * @tc.name input invalid slotId, CallTransferType TRANSFER_TYPE_NO_REPLY, test GetCallTransferInfo() return failed @@ -767,6 +956,30 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0600, Funct CALL_ERR_INVALID_SLOT_ID); } +/** + * @tc.number Telephony_CallManager_GetCallTransferInfo_0700 + * @tc.name input slotId 0, CallTransferType TRANSFER_TYPE_NOT_REACHABLE, test GetCallTransferInfo() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_0700, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo( + SIM1_SLOTID, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallTransferInfo( + SIM2_SLOTID, CallTransferType::TRANSFER_TYPE_NOT_REACHABLE), + RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_GetCallTransferInfo_0800 * @tc.name input invalid slotId, CallTransferType TRANSFER_TYPE_NOT_REACHABLE, test GetCallTransferInfo() return diff --git a/test/unittest/call_manager_gtest/src/call_manager4_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager4_gtest.cpp index be3f189959bdf2a22917ed191252cf1049aa4c07..45fd18e63535340dd444bc88b65d3e8dc1399bf4 100644 --- a/test/unittest/call_manager_gtest/src/call_manager4_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager4_gtest.cpp @@ -185,6 +185,32 @@ public: void TearDown() {}; }; +/** + * @tc.number Telephony_CallManager_KickOutFromConference_0400 + * @tc.name Import callId normal, test KickOutFromConference(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_KickOutFromConference_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string number = "10086"; + InitDialInfo( + 0, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, (int32_t)DialType::DIAL_CARRIER_TYPE); + EXPECT_EQ(CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(number), dialInfo_), RETURN_VALUE_IS_ZERO); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_NE(CallManagerGtest::clientPtr_->KickOutFromConference(g_newCallId), RETURN_VALUE_IS_ZERO); + } + sleep(WAIT_TIME); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + /********************************************* Test GetMainCallId() ***********************************************/ /** * @tc.number Telephony_CallManager_GetMainCallId_0100 @@ -496,6 +522,27 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_IsEmergencyPhoneNumber_1000, Fu } /********************************************* Test GetCallWaiting() ***********************************************/ + +/** + * @tc.number Telephony_CallManager_GetCallWaiting_0100 + * @tc.name Import slotId 1, test GetCallWaiting(), return 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallWaiting_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM1_SLOTID), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetCallWaiting(SIM2_SLOTID), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_GetCallWaiting_0200 * @tc.name test GetCallWaiting without permission @@ -565,6 +612,38 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_StartDtmf_0300, Function | Medi EXPECT_NE(bluetoothCallClient.StartDtmf(str), RETURN_VALUE_IS_ZERO); } +/** + * @tc.number Telephony_CallManager_StartDtmf_0400 + * @tc.name Import callId abcd, test StartDtmf(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_StartDtmf_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + std::string phoneNumber = "10086"; + InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, + (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_EQ(CallManagerGtest::clientPtr_->StartDtmf(g_newCallId, '1'), RETURN_VALUE_IS_ZERO); + } + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(WAIT_TIME); + HangUpCall(); + } +} + /********************************************* Test StopDtmf() ***********************************************/ /** @@ -611,6 +690,38 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_StopDtmf_0300, Function | Mediu EXPECT_NE(bluetoothCallClient.StopDtmf(), RETURN_VALUE_IS_ZERO); } +/** + * @tc.number Telephony_CallManager_StopDtmf_0400 + * @tc.name Import callId abcd, test StopDtmf(), return non 0 + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_StopDtmf_0400, Function | MediumTest | Level2) +{ + AccessToken token; + std::string phoneNumber = "10086"; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, + (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + sleep(WAIT_TIME); + EXPECT_EQ(CallManagerGtest::clientPtr_->StopDtmf(g_newCallId), RETURN_VALUE_IS_ZERO); + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(WAIT_TIME); + HangUpCall(); + } +} + /** * @tc.number Telephony_CallManager_PostDialProceed_0100 * @tc.name test post dial continue with proceed false @@ -644,7 +755,59 @@ HWTEST_F( EXPECT_NE(CallManagerGtest::clientPtr_->PostDialProceed(callId, proceed), RETURN_VALUE_IS_ZERO); } +/** + * @tc.number Telephony_CallManager_PostDialProceed_0300 + * @tc.name test post dial in normal scene + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_PostDialProceed_0300, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + if (HasSimCard(SIM1_SLOTID)) { + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo(SIM1_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, + (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16("10086;123"), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, + SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + sleep(1); + EXPECT_EQ(CallManagerGtest::clientPtr_->PostDialProceed(g_newCallId, true), RETURN_VALUE_IS_ZERO); + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(1); + HangUpCall(); + } + } + if (HasSimCard(SIM2_SLOTID)) { + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + InitDialInfo(SIM2_SLOTID, (int32_t)VideoStateType::TYPE_VOICE, (int32_t)DialScene::CALL_NORMAL, + (int32_t)DialType::DIAL_CARRIER_TYPE); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16("10086;456"), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, + SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + sleep(1); + EXPECT_EQ(CallManagerGtest::clientPtr_->PostDialProceed(g_newCallId, true), RETURN_VALUE_IS_ZERO); + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(1); + HangUpCall(); + } + } +} + /******************************** Test FormatPhoneNumber() * **************************************/ + /** * @tc.number Telephony_CallManager_FormatPhoneNumber_0100 * @tc.name Import phonyNumber 01085198749, test FormatPhoneNumber(), return 010-8519-8748 diff --git a/test/unittest/call_manager_gtest/src/call_manager5_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager5_gtest.cpp index d11a618ba5d4dc46dc85f713872eecacca8cd720..7882e906ca2f27013a17f45f6d86ce469e36d0d6 100644 --- a/test/unittest/call_manager_gtest/src/call_manager5_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager5_gtest.cpp @@ -424,6 +424,319 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_RequestCameraCapabilities_0100, EXPECT_NE(CallManagerGtest::clientPtr_->RequestCameraCapabilities(callId), RETURN_VALUE_IS_ZERO); } +/********************************************* Test GetImsConfig() ************************************************/ +/** + * @tc.number Telephony_CallManager_GetImsConfig_0100 + * @tc.name test get ims config item video quality + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, ITEM_VIDEO_QUALITY), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, ITEM_VIDEO_QUALITY), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_GetImsConfig_0200 + * @tc.name test get ims config item ims switch status + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, ITEM_IMS_SWITCH_STATUS), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, ITEM_IMS_SWITCH_STATUS), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_GetImsConfig_0300 + * @tc.name test get ims config item with invalid item + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsConfig_0300, Function | MediumTest | Level3) +{ + AccessToken token; + ImsConfigItem item = static_cast(2); + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM1_SLOTID, item), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsConfig(SIM2_SLOTID, item), RETURN_VALUE_IS_ZERO); + } +} + +/********************************************* Test SetImsConfig() ************************************************/ +/** + * @tc.number Telephony_CallManager_SetImsConfig_0100 + * @tc.name test set ims config item video quality + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + std::u16string value = u"123"; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, ITEM_VIDEO_QUALITY, value), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, ITEM_VIDEO_QUALITY, value), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetImsConfig_0200 + * @tc.name test set ims config item ims switch status + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + std::u16string value = u"123"; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, ITEM_IMS_SWITCH_STATUS, value), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, ITEM_IMS_SWITCH_STATUS, value), + RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetImsConfig_0300 + * @tc.name test set ims config item with invalid item + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsConfig_0300, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + std::u16string value = u"123"; + ImsConfigItem item = static_cast(2); + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM1_SLOTID, item, value), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsConfig(SIM2_SLOTID, item, value), RETURN_VALUE_IS_ZERO); + } +} + +/*********************************** Test GetImsFeatureValue() ****************************************/ +/** + * @tc.number Telephony_CallManager_GetImsFeatureValue_0100 + * @tc.name test get ims feature value type voice over lte + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_VOICE_OVER_LTE), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_VOICE_OVER_LTE), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_GetImsFeatureValue_0200 + * @tc.name test get ims feature value type video over lte + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_VIDEO_OVER_LTE), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ( + CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_VIDEO_OVER_LTE), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_GetImsFeatureValue_0300 + * @tc.name test get ims feature value type ss over ut + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0300, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, TYPE_SS_OVER_UT), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, TYPE_SS_OVER_UT), + RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_GetImsFeatureValue_0400 + * @tc.name test get ims feature value with invalid type + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_GetImsFeatureValue_0400, Function | MediumTest | Level3) +{ + AccessToken token; + FeatureType type = static_cast(3); + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM1_SLOTID, type), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->GetImsFeatureValue(SIM2_SLOTID, type), RETURN_VALUE_IS_ZERO); + } +} + +/***************************************** Test SetImsFeatureValue() ***************************************/ +/** + * @tc.number Telephony_CallManager_SetImsFeatureValue_0100 + * @tc.name test set ims feature value type voice over lte + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + int32_t value = 1; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_VOICE_OVER_LTE, value), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_VOICE_OVER_LTE, value), + RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetImsFeatureValue_0200 + * @tc.name test set ims feature value type video over lte + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + int32_t value = 1; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_VIDEO_OVER_LTE, value), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_VIDEO_OVER_LTE, value), + RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetImsFeatureValue_0300 + * @tc.name test set ims feature value type ss over ut + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0300, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + int32_t value = 1; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, TYPE_SS_OVER_UT, value), + RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, TYPE_SS_OVER_UT, value), + RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetImsFeatureValue_0400 + * @tc.name test set ims feature value with invalid type + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetImsFeatureValue_0400, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + int32_t value = 1; + FeatureType type = static_cast(3); + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM1_SLOTID, type, value), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetImsFeatureValue(SIM2_SLOTID, type, value), RETURN_VALUE_IS_ZERO); + } +} + /************************************** Test UpdateImsCallMode() ****************************************/ /** * @tc.number Telephony_CallManager_UpdateImsCallMode_0100 @@ -613,6 +926,77 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_CanSetCallTransferTime_0300, Fu } } +/** + * @tc.number Telephony_CallManager_CanSetCallTransferTime_0400 + * @tc.name test CanSetCallTransferTime() with normal situation + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CanSetCallTransferTime_0400, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + bool result; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->CanSetCallTransferTime(SIM1_SLOTID, result), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->CanSetCallTransferTime(SIM2_SLOTID, result), RETURN_VALUE_IS_ZERO); + } +} + +/********************************************* Test SetAudioDevice()***********************************************/ +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0100 + * @tc.name make a normal buletoothAddress, set active bluetooth device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "66666666666"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + + HandsFreeAudioGateway *profile = HandsFreeAudioGateway::GetProfile(); + vector devices = profile->GetConnectedDevices(); + int deviceNum = devices.size(); + std::string address = ""; + const int32_t zeroDevice = 0; + if (deviceNum > zeroDevice) { + address = devices[0].GetDeviceAddr(); + } + + AudioDevice audioDevice; + if (memset_s(&audioDevice, sizeof(AudioDevice), 0, sizeof(AudioDevice)) != EOK) { + TELEPHONY_LOGE("memset_s fail"); + return; + } + audioDevice.deviceType = AudioDeviceType::DEVICE_BLUETOOTH_SCO; + if (address.length() > kMaxAddressLen) { + TELEPHONY_LOGE("address is not too long"); + return; + } + if (memcpy_s(audioDevice.address, kMaxAddressLen, address.c_str(), address.length()) != EOK) { + TELEPHONY_LOGE("memcpy_s address fail"); + return; + } + + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); +} + /** * @tc.number Telephony_CallManager_Telephony_CallManager_SendUssdResponse_0100SetAudioDevice_0100 * @tc.name input slotId:0, content:1, Test SendUssdResponse, return error code if failed @@ -636,4 +1020,4 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SendUssdResponse_0100, Function } } } // namespace Telephony -} // namespace OHOS +} // namespace OHOS \ No newline at end of file diff --git a/test/unittest/call_manager_gtest/src/call_manager6_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager6_gtest.cpp index 3df081eb12519d3a352ca508ea0fbcf07aec2a02..c8baf038b25aaf5fa4358ce485df98c77a4c6c06 100644 --- a/test/unittest/call_manager_gtest/src/call_manager6_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager6_gtest.cpp @@ -24,6 +24,7 @@ #include "bluetooth_hfp_ag.h" #include "call_manager_connect.h" #include "call_manager_service.h" +#include "interoperable_settings_handler.h" #include "surface_utils.h" #include "telephony_types.h" #include "voip_call.h" @@ -47,6 +48,9 @@ constexpr int SLEEP_TIME_MS = 50; constexpr int MAX_LIMIT_TIME = 18000; constexpr int16_t SIM1_SLOTID = 0; const std::string PHONE_NUMBER = "0000000000"; +constexpr const char *SYNERGY_INCOMING_MUTE_URI = + "datashare:///com.ohos.settingsdata/entry/settingsdata/SETTINGSDATA?Proxy=true&key=synergy_incoming_mute"; +constexpr const char *SYNERGY_MUTE_KEY = "synergy_incoming_mute"; std::unordered_map> g_callStateMap; int32_t g_newCallId = -1; @@ -246,6 +250,34 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetCallTransferInfo_1100, Funct } /******************************************* Test SetCallTransferInfo() ********************************************/ +/** + * @tc.number Telephony_CallManager_SetCallTransferInfo_0100 + * @tc.name input slotId 0, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType TRANSFER_TYPE_BUSY, + * test SetCallTransferInfo() + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + CallTransferInfo info; + info.settingType = CallTransferSettingType::CALL_TRANSFER_ENABLE; + info.type = CallTransferType::TRANSFER_TYPE_BUSY; + if (strcpy_s(info.transferNum, kMaxNumberLen + 1, "111") != EOK) { + TELEPHONY_LOGE("strcpy_s fail."); + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM1_SLOTID, info), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetCallTransferInfo(SIM2_SLOTID, info), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetCallTransferInfo_0200 * @tc.name input invalid slotId, CallTransferSettingType CALL_TRANSFER_ENABLE, CallTransferType TRANSFER_TYPE_BUSY, @@ -412,6 +444,26 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetCallTransferInfo_0700, Funct } /******************************************* Test EnableImsSwitch() ********************************************/ +/** + * @tc.number Telephony_CallManager_EnableImsSwitch_0100 + * @tc.name input slotId 0, test EnableImsSwitch + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM1_SLOTID), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->EnableImsSwitch(SIM2_SLOTID), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_EnableImsSwitch_0200 * @tc.name input invalid slotId, test EnableImsSwitch return failed @@ -463,6 +515,26 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_EnableImsSwitch_0400, Function } /******************************************* Test DisableImsSwitch() ********************************************/ +/** + * @tc.number Telephony_CallManager_DisableImsSwitch_0100 + * @tc.name input slotId 0, test DisableImsSwitch + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_DisableImsSwitch_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(SIM1_SLOTID), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->DisableImsSwitch(SIM2_SLOTID), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_DisableImsSwitch_0200 * @tc.name input invalid slotId, test DisableImsSwitch return failed @@ -550,6 +622,46 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_IsImsSwitchEnabled_0300, Functi } /******************************************* Test SetVoNRState() ********************************************/ +/** + * @tc.number Telephony_CallManager_SetVoNRState_0100 + * @tc.name input slotId 0, VoNRstate ON(0) test SetVoNRState + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetVoNRState_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t state = 0; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetVoNRState(SIM1_SLOTID, state), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetVoNRState(SIM2_SLOTID, state), RETURN_VALUE_IS_ZERO); + } +} + +/** + * @tc.number Telephony_CallManager_SetVoNRState_0200 + * @tc.name input slotId 0, VoNRstate OFF(1) test SetVoNRState + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetVoNRState_0200, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + int32_t state = 1; + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetVoNRState(SIM1_SLOTID, state), RETURN_VALUE_IS_ZERO); + } + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetVoNRState(SIM2_SLOTID, state), RETURN_VALUE_IS_ZERO); + } +} + /** * @tc.number Telephony_CallManager_SetVoNRState_0300 * @tc.name input invalid slotId, test SetVoNRState return failed @@ -887,5 +999,21 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_SetDeviceDirection_0300, Functi int32_t rotation = CAMERA_ROTATION_90; EXPECT_NE(CallManagerGtest::clientPtr_->SetDeviceDirection(callId, rotation), RETURN_VALUE_IS_ZERO); } + +/** + * @tc.number Telephony_InteroperableSettingsHandlerTest_001 + * @tc.name test interoperable settings handler + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_InteroperableSettingsHandlerTest_001, Function | MediumTest | Level2) +{ + Uri uri(SYNERGY_INCOMING_MUTE_URI); + auto helper = DelayedSingleton().GetInstance(); + + EXPECT_EQ(helper->RegisterToDataShare(uri, nullptr), true); + EXPECT_EQ(helper->Update(uri, SYNERGY_MUTE_KEY, "3"), -1); + EXPECT_EQ(helper->Update(uri, "nokey", "0"), -1); + EXPECT_EQ(helper->Insert(uri, SYNERGY_MUTE_KEY, "0"), -1); +} } // namespace Telephony } // namespace OHOS diff --git a/test/unittest/call_manager_gtest/src/call_manager7_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager7_gtest.cpp index c156d49bd61e90699e2f52baafe54780085c9dc5..8daecbe447dbb29fd916ab7e3ba326e824183900 100644 --- a/test/unittest/call_manager_gtest/src/call_manager7_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager7_gtest.cpp @@ -309,7 +309,7 @@ HWTEST_F(CallManagerGtest, Telephony_CallManagerService_003, Function | MediumTe const char *number = "000000"; memcpy_s(info.phoneNum, kMaxNumberLen, number, strlen(number)); const char *bundleName = "com.ohos.tddtest"; - memcpy_s(info.bundleName, kMaxNumberLen, bundleName, strlen(bundleName)); + memcpy_s(info.bundleName, kMaxBundleNameLen + 1, bundleName, strlen(bundleName)); info.callState = TelCallState::CALL_STATUS_DIALING; info.videoState = VideoStateType::TYPE_VOICE; std::vector ottVec { info }; diff --git a/test/unittest/call_manager_gtest/src/call_manager8_gtest.cpp b/test/unittest/call_manager_gtest/src/call_manager8_gtest.cpp index 36bc30e1dd82c49e8c455aa7c119da46133b333e..c1fb8832b959bdf6ccc26d13698847e626d63e72 100644 --- a/test/unittest/call_manager_gtest/src/call_manager8_gtest.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager8_gtest.cpp @@ -182,6 +182,296 @@ void CallManagerGtest::HangUpCall() clientPtr_->HangUpCall(INVALID_CALLID); } +class ClientErrorBranchTest : public testing::Test { +public: + static void SetUpTestCase() {}; + static void TearDownTestCase() {}; + void SetUp() {}; + void TearDown() {}; +}; + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0200 + * @tc.name make EARPIECE device type, set active EARPIECE device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "77777777777"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_EARPIECE, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_EQ(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0300 + * @tc.name make SPEAKER device type, set active SPEAKER device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "88888888888"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_SPEAKER, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_EQ(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0400 + * @tc.name make DEVICE_WIRED_HEADSET device type, set active DEVICE_WIRED_HEADSET device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0400, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + std::string phoneNumber = "99999999999"; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_WIRED_HEADSET, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0500 + * @tc.name make a empty buletoothAddress, set active bluetooth device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0500, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "00000001111"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_BLUETOOTH_SCO, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0600 + * @tc.name make SPEAKER device type, set disable device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0600, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "00000002222"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_DISABLE, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetAudioDevice_0700 + * @tc.name make SPEAKER device type, set unknown device + * @tc.desc Function test + * @tc.require: issueI5JUAQ + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetAudioDevice_0700, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "00000003333"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + AudioDevice audioDevice = { + .deviceType = AudioDeviceType::DEVICE_UNKNOWN, + .address = { 0 }, + }; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + EXPECT_NE(clientPtr_->SetAudioDevice(audioDevice), RETURN_VALUE_IS_ZERO); + sleep(WAIT_TIME); + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } +} + +/********************************************* Test SetMuted()***********************************************/ +/** + * @tc.number Telephony_CallManager_SetMuted_0100 + * @tc.name set muted true + * @tc.desc Function test + * @tc.require: issueI5K59I + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0100, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string phoneNumber = "00000004444"; + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + bool muted = true; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), RETURN_VALUE_IS_ZERO); + } + + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(WAIT_TIME); + HangUpCall(); + } +} + +/** + * @tc.number Telephony_CallManager_SetMuted_0200 + * @tc.name without call, set muted failed + * @tc.desc Function test + * @tc.require: issueI5K59I + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0200, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + bool muted = true; + + EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), CALL_ERR_AUDIO_SETTING_MUTE_FAILED); +} + +/** + * @tc.number Telephony_CallManager_SetMuted_0300 + * @tc.name set muted true + * @tc.desc Function test + * @tc.require: issueI5K59I + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetMuted_0300, Function | MediumTest | Level2) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + EXPECT_EQ(CallManagerGtest::IsServiceConnected(), true); + std::string phoneNumber = "00000000000"; + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + HangUpCall(); + } + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_IDLE, SLEEP_200_MS, SLEEP_30000_MS); + int32_t ret = CallManagerGtest::clientPtr_->DialCall(Str8ToStr16(phoneNumber), dialInfo_); + EXPECT_EQ(ret, RETURN_VALUE_IS_ZERO); + bool muted = false; + CallInfoManager::LockCallState(false, (int32_t)CallStateToApp::CALL_STATE_OFFHOOK, SLEEP_200_MS, SLEEP_30000_MS); + if (CallInfoManager::HasActiveStatus()) { + EXPECT_EQ(CallManagerGtest::clientPtr_->SetMuted(muted), RETURN_VALUE_IS_ZERO); + } + if (clientPtr_->GetCallState() == static_cast(CallStateToApp::CALL_STATE_OFFHOOK)) { + sleep(WAIT_TIME); + HangUpCall(); + } +} + /********************************************* Test RegisterCallBack() ***********************************************/ /** * @tc.number Telephony_CallManager_RegisterCallBack_0100 @@ -437,7 +727,7 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportOttCallDetailsInfo_0100, const char *number = "000000"; memcpy_s(info.phoneNum, kMaxNumberLen, number, strlen(number)); const char *bundleName = "com.ohos.tddtest"; - memcpy_s(info.bundleName, kMaxNumberLen, bundleName, strlen(bundleName)); + memcpy_s(info.bundleName, kMaxBundleNameLen + 1, bundleName, strlen(bundleName)); info.callState = TelCallState::CALL_STATUS_DIALING; info.videoState = VideoStateType::TYPE_VOICE; std::vector ottVec { info }; @@ -474,7 +764,7 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_ReportOttCallEventInfo_0100, Fu OttCallEventInfo info; info.ottCallEventId = OttCallEventId::OTT_CALL_EVENT_FUNCTION_UNSUPPORTED; char bundlename[] = "com.ohos.tddtest"; - memcpy_s(info.bundleName, kMaxNumberLen, bundlename, strlen(bundlename)); + memcpy_s(info.bundleName, kMaxBundleNameLen, bundlename, strlen(bundlename)); EXPECT_EQ(CallManagerGtest::clientPtr_->ReportOttCallEventInfo(info), RETURN_VALUE_IS_ZERO); } @@ -494,6 +784,44 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_HasVoiceCapability_0100, Functi EXPECT_EQ(CallManagerGtest::clientPtr_->HasVoiceCapability(), true); } +/************************************* Test CloseUnFinishedUssd() ************************************/ +/** + * @tc.number Telephony_CallManager_CloseUnFinishedUssd_0100 + * @tc.name test Close Unfinished ussd + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_CloseUnFinishedUssd_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + + if (HasSimCard(SIM1_SLOTID)) { + EXPECT_NE(CallManagerGtest::clientPtr_->CloseUnFinishedUssd(SIM1_SLOTID), RETURN_VALUE_IS_ZERO); + } + + if (HasSimCard(SIM2_SLOTID)) { + EXPECT_NE(CallManagerGtest::clientPtr_->CloseUnFinishedUssd(SIM2_SLOTID), RETURN_VALUE_IS_ZERO); + } +} + +/************************************* Test InputDialerSpecialCode() ************************************/ +/** + * @tc.number Telephony_CallManager_InputDialerSpecialCode_0100 + * @tc.name test Input Dialer Special Code with support code + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_InputDialerSpecialCode_0100, Function | MediumTest | Level3) +{ + AccessToken token; + if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) { + return; + } + std::string specialCode = "2846579"; + EXPECT_EQ(CallManagerGtest::clientPtr_->InputDialerSpecialCode(specialCode), RETURN_VALUE_IS_ZERO); +} + /** * @tc.number Telephony_CallManager_InputDialerSpecialCode_0200 * @tc.name test Input Dialer Special Code with unsupport code @@ -629,6 +957,43 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_GetVoIPCallState_0200, Function EXPECT_EQ(CallManagerGtest::clientPtr_->GetVoIPCallState(state), RETURN_VALUE_IS_ZERO); } +/******************************************* Test SetVoIPCallInfo() ********************************************/ +/** + * @tc.number Telephony_CallManager_SetVoIPCallInfo_0100 + * @tc.name test SetVoIPCallInfo + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetVoIPCallInfo_0100, Function | MediumTest | Level3) +{ + AccessToken token; + int32_t callId = 10001; + int32_t state = 4; + std::string phoneNumber = "12345678901"; + std::shared_ptr callManagerService = std::make_shared(); + EXPECT_EQ(callManagerService->SetVoIPCallInfo(callId, state, phoneNumber), TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API); +} + +/** + * @tc.number Telephony_CallManager_SetVoIPCallInfo_0200 + * @tc.name test SetVoIPCallInfo + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_CallManager_SetVoIPCallInfo_0200, Function | MediumTest | Level3) +{ + std::shared_ptr client = std::make_shared(); + AccessToken token; + int32_t callId = 10020; + int32_t state = 5; + std::string phoneNumber = "12345678901"; + int32_t systemAbilityId = 100; + client->Init(systemAbilityId); + ASSERT_EQ(client->SetVoIPCallInfo(callId, state, phoneNumber), TELEPHONY_ERR_PERMISSION_ERR); + ASSERT_EQ(client->GetVoIPCallInfo(callId, state, phoneNumber), TELEPHONY_SUCCESS); + client->UnInit(); + ASSERT_EQ(client->SetVoIPCallInfo(callId, state, phoneNumber), TELEPHONY_ERR_UNINIT); + ASSERT_EQ(client->GetVoIPCallInfo(callId, state, phoneNumber), TELEPHONY_ERR_UNINIT); +} + /** * @tc.number Telephony_CallControlManager_SetVoIPCallInfo_0300 * @tc.name test SetVoIPCallInfo @@ -683,6 +1048,37 @@ HWTEST_F(CallManagerGtest, Telephony_CallManager_TestDump_0100, Function | Mediu EXPECT_GE(DelayedSingleton::GetInstance()->Dump(0, args), 0); } +/******************************************* Test VoipCallObject() ********************************************/ +/** + * @tc.number Telephony_VoipCallObject_0100 + * @tc.name Test VoipCallObject + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_VoipCallObject_0100, Function | MediumTest | Level3) +{ + CallObjectManager::ClearVoipList(); + CallAttributeInfo callAttrInfo; + int32_t callId = 12345; + callAttrInfo.callId = callId; + callAttrInfo.callState = TelCallState::CALL_STATUS_WAITING; + EXPECT_EQ(CallObjectManager::IsVoipCallExist(), true); + + EXPECT_EQ(CallObjectManager::IsVoipCallExist(TelCallState::CALL_STATUS_WAITING, callId), true); + + int32_t newCallId = -1; + EXPECT_EQ(CallObjectManager::IsVoipCallExist(TelCallState::CALL_STATUS_WAITING, newCallId), true); + + CallAttributeInfo retrievedCallAttrInfo = CallObjectManager::GetVoipCallInfo(); + EXPECT_EQ(retrievedCallAttrInfo.callId, callId); + + TelCallState nextState = TelCallState::CALL_STATUS_ACTIVE; + EXPECT_EQ(CallObjectManager::UpdateOneVoipCallObjectByCallId(callId, nextState), TELEPHONY_SUCCESS); + + EXPECT_EQ(CallObjectManager::DeleteOneVoipCallObject(callId), TELEPHONY_SUCCESS); + + CallObjectManager::ClearVoipList(); +} + /** * @tc.number Telephony_VoipCallObject_0200 * @tc.name Test VoipCallObject @@ -852,6 +1248,17 @@ HWTEST_F(CallManagerGtest, Telephony_AntiFraudHsdrHelper_0001, Function | Medium connection->connectedCallback_ = nullptr; connection->OnAbilityConnectDone(element, failRemoteObj, 0); EXPECT_EQ(connection->remoteObject_, nullptr); + auto &helper = DelayedRefSingleton().GetInstance(); + helper.connection_ = connection; + connection->remoteObject_ = ucsRemoteObj; + EXPECT_EQ(helper.ConnectHsdr([](const sptr &remoteObject) {}), 0); + connection->remoteObject_ = failRemoteObj; + EXPECT_EQ(helper.ConnectHsdr([](const sptr &remoteObject) {}), 0); + helper.DisconnectHsdr(); + EXPECT_EQ(helper.ConnectHsdr([](const sptr &remoteObject) {}), 0); + helper.DisconnectHsdr(); + helper.DisconnectHsdr(); + EXPECT_EQ(helper.connection_, nullptr); } /** @@ -892,6 +1299,29 @@ HWTEST_F(CallManagerGtest, Telephony_AntiFraudHsdrHelper_0002, Function | Medium EXPECT_EQ(callbackStub->OnRemoteRequest(0, data2, reply, option), 0); } +/** + * @tc.number Telephony_AnonymizeAdapter_0100 + * @tc.name Test AnonymizeAdapter + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_AnonymizeAdapter_0100, Function | MediumTest | Level3) +{ + auto antiFraudService = DelayedSingleton::GetInstance(); + EXPECT_EQ(antiFraudService->AnonymizeText(), 1000); + + auto anonymizeAdapter = DelayedSingleton::GetInstance(); + anonymizeAdapter->ReleaseLibAnonymize(); + EXPECT_EQ(anonymizeAdapter->libAnonymize_, nullptr); + anonymizeAdapter->GetLibAnonymize(); + anonymizeAdapter->ReleaseLibAnonymize(); + EXPECT_EQ(anonymizeAdapter->libAnonymize_, nullptr); + + void *config = nullptr; + void *assistant = nullptr; + EXPECT_EQ(anonymizeAdapter->ReleaseConfig(&config), 0); + EXPECT_EQ(anonymizeAdapter->ReleaseAnonymize(&assistant), 0); +} + /** * @tc.number Telephony_AntiFraud_0100 * @tc.name Test AntiFraud @@ -916,7 +1346,6 @@ HWTEST_F(CallManagerGtest, Telephony_AntiFraud_0100, Function | MediumTest | Lev EXPECT_EQ(antiFraudService->antiFraudState_, 3); antiFraudService->RecordDetectResult(fraudResult, phoneNum, 0, 1); EXPECT_EQ(antiFraudService->antiFraudState_, 3); - fraudResult.result = true; antiFraudService->RecordDetectResult(fraudResult, phoneNum, 1, 0); EXPECT_EQ(antiFraudService->antiFraudState_, 2); @@ -932,5 +1361,48 @@ HWTEST_F(CallManagerGtest, Telephony_AntiFraud_0100, Function | MediumTest | Lev antiFraudAdapter->ReleaseAntiFraud(); EXPECT_EQ(antiFraudAdapter->libAntiFraud_, nullptr); } + +/** + * @tc.number Telephony_NumberIdentityConnection_0001 + * @tc.name Test antiFraud hsdr helper + * @tc.desc Function test + */ +HWTEST_F(CallManagerGtest, Telephony_NumberIdentityConnection_0001, Function | MediumTest | Level3) +{ + sptr connection = new (std::nothrow) NumberIdentityConnection( + [](const sptr &remoteObject) {}, []() {}); + if (connection == nullptr) { + std::cout << "connection is nullptr" << std::endl; + return; + } + AppExecFwk::ElementName element; + sptr failRemoteObj = new MockRemoteObject(-1); + connection->OnAbilityConnectDone(element, failRemoteObj, -1); + EXPECT_EQ(connection->remoteObject_, nullptr); + connection->OnAbilityConnectDone(element, nullptr, 0); + EXPECT_EQ(connection->remoteObject_, nullptr); + EXPECT_FALSE(connection->IsAlive()); + connection->OnAbilityConnectDone(element, failRemoteObj, 0); + EXPECT_NE(connection->remoteObject_, nullptr); + EXPECT_FALSE(connection->IsAlive()); + connection->OnAbilityDisconnectDone(element, 0); + EXPECT_EQ(connection->remoteObject_, nullptr); + sptr ucsRemoteObj = new MockRemoteObject(UCS_SERVICE_COMMAND); + connection->remoteObject_ = ucsRemoteObj; + EXPECT_TRUE(connection->IsAlive()); + connection->OnAbilityDisconnectDone(element, -1); + EXPECT_EQ(connection->remoteObject_, nullptr); + connection->connectedCallback_ = nullptr; + connection->OnAbilityConnectDone(element, failRemoteObj, 0); + EXPECT_EQ(connection->remoteObject_, nullptr); + auto &helper = DelayedRefSingleton().GetInstance(); + helper.connection_ = connection; + connection->remoteObject_ = ucsRemoteObj; + EXPECT_EQ(helper.Connect([](const sptr &remoteObject) {}, []() {}), 0); + connection->remoteObject_ = failRemoteObj; + helper.Disconnect(); + EXPECT_EQ(helper.connection_, nullptr); + helper.NotifyNumberMarkDataUpdate(); +} } // namespace Telephony } // namespace OHOS diff --git a/test/unittest/call_manager_gtest/src/call_manager_connect.cpp b/test/unittest/call_manager_gtest/src/call_manager_connect.cpp index 8034b54eef9a2dd9f8ebd66f83bf4daee073d229..485f3cb31ada57bd736c54a35ad1848aa5888980 100644 --- a/test/unittest/call_manager_gtest/src/call_manager_connect.cpp +++ b/test/unittest/call_manager_gtest/src/call_manager_connect.cpp @@ -26,7 +26,7 @@ int32_t CallAbilityCallbackStub::OnUpdateCallStateInfoRequest(MessageParcel &dat if (strncpy_s(parcelPtr.accountNumber, kMaxNumberLen + 1, data.ReadCString(), kMaxNumberLen + 1) != EOK) { TELEPHONY_LOGE("strncpy_s accountNumber failed"); } - if (strncpy_s(parcelPtr.bundleName, kMaxNumberLen + 1, data.ReadCString(), kMaxNumberLen + 1) != EOK) { + if (strncpy_s(parcelPtr.bundleName, kMaxBundleNameLen + 1, data.ReadCString(), kMaxBundleNameLen + 1) != EOK) { TELEPHONY_LOGE("strncpy_s bundleName failed"); } parcelPtr.speakerphoneOn = data.ReadBool(); diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch2_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch2_test.cpp index 05a305611c760d296666a0460f4ddf8433c10e04..f7562741910695dcdb935dff15e1bc765a31be64 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch2_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch2_test.cpp @@ -112,6 +112,43 @@ HWTEST_F(SpamCallTest, Telephony_CallbackStubHelper_001, Function | MediumTest | ASSERT_EQ(reminderCallbackStubHelper.OnResult(errCode, result), TELEPHONY_SUCCESS); } +/** + * @tc.number Telephony_CallbackStubHelper_002 + * @tc.name test error branch + * @tc.desc Function test + */ +HWTEST_F(SpamCallTest, Telephony_CallbackStubHelper_002, Function | MediumTest | Level1) +{ + std::shared_ptr spamCallAdapter; + + CallbackStubHelper callbackStubHelper(spamCallAdapter); + int32_t errCode = 0; + std::string result; + ASSERT_NE(callbackStubHelper.OnResult(errCode, result), 0); + ReminderCallbackStubHelper reminderCallbackStubHelper(spamCallAdapter); + ASSERT_NE(reminderCallbackStubHelper.OnResult(errCode, result), 0); +} + +/** + * @tc.number Telephony_CallbackStubHelper_003 + * @tc.name test error branch + * @tc.desc Function test + */ +HWTEST_F(SpamCallTest, Telephony_CallbackStubHelper_003, Function | MediumTest | Level1) +{ + std::shared_ptr spamCallAdapter = std::make_shared(); + + CallbackStubHelper callbackStubHelper(spamCallAdapter); + MessageParcel data; + MessageParcel reply; + MessageOption option; + int32_t errCode = 0; + std::string result; + int32_t res = 0; + res = callbackStubHelper.OnRemoteRequest(errCode, data, reply, option); + ASSERT_NE(res, ERR_NONE); +} + /** * @tc.number Telephony_SpamCallConnection_001 * @tc.name test error branch diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch3_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch3_test.cpp index 3fc28fd311d7450ea3bef8df4d8c621d1d591904..4c63d6a924be24c1a24a9954ef9fc51dcc8895e4 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch3_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch3_test.cpp @@ -1303,8 +1303,22 @@ HWTEST_F(ZeroBranch4Test, Telephony_CallStatusManager_009, Function | MediumTest callStatusManager->antiFraudIndex_ = 0; CallObjectManager::AddOneCallObject(voipCall); callStatusManager->SetupAntiFraudService(voipCall, info); + callStatusManager->StopAntiFraudDetect(voipCall, info); + callStatusManager->HandleCeliaCall(voipCall); callStatusManager->SetConferenceCall({voipCall}); EXPECT_EQ(CallObjectManager::callObjectPtrList_.size(), 1); + EXPECT_EQ(callStatusManager->HandleVoipEventReportInfo(voipCallEventInfo),TELEPHONY_ERR_FAIL); + voipCall->SetCallRunningState(CallRunningState::CALL_RUNNING_STATE_ACTIVE); + EXPECT_EQ(callStatusManager->HandleVoipEventReportInfo(voipCallEventInfo),TELEPHONY_SUCCESS); + voipCall->SetCallRunningState(CallRunningState::CALL_RUNNING_STATE_DIALING); + voipCallEventInfo.voipCallEvent = VoipCallEvent::VOIP_CALL_EVENT_MUTED; + EXPECT_EQ(callStatusManager->HandleVoipEventReportInfo(voipCallEventInfo),TELEPHONY_SUCCESS); + voipCallEventInfo.voipCallEvent = VoipCallEvent::VOIP_CALL_EVENT_UNMUTED; + EXPECT_EQ(callStatusManager->HandleVoipEventReportInfo(voipCallEventInfo),TELEPHONY_SUCCESS); + EXPECT_EQ(callStatusManager->IncomingVoipCallHandle(info),TELEPHONY_SUCCESS); + EXPECT_EQ(callStatusManager->OutgoingVoipCallHandle(info),TELEPHONY_SUCCESS); + info.callMode = VideoStateType::TYPE_VIDEO; + EXPECT_NE(callStatusManager->OutgoingVoipCallHandle(info), TELEPHONY_ERR_LOCAL_PTR_NULL); } HWTEST_F(ZeroBranch4Test, Telephony_CallStatusManager_010, Function | MediumTest | Level3) @@ -1341,56 +1355,6 @@ HWTEST_F(ZeroBranch4Test, Telephony_CallStatusManager_011, Function | MediumTest sleep(WAIT_TIME); } -HWTEST_F(ZeroBranch4Test, Telephony_CallStatusManager_013, Function | MediumTest | Level3) -{ - std::shared_ptr callStatusManager = std::make_shared(); - CallDetailInfo info; - bool isExistedOldCall = false; - CallObjectManager::callObjectPtrList_.clear(); - EXPECT_EQ(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_SUCCESS); - info.state = TelCallState::CALL_STATUS_ACTIVE; - info.callType = CallType::TYPE_IMS; - info.callMode = VideoStateType::TYPE_VOICE; - callStatusManager->tmpCallDetailsInfo_[0].callVec.push_back(info); - EXPECT_TRUE(callStatusManager->GetConferenceCallList(0).empty()); - auto &tmpInfo = callStatusManager->tmpCallDetailsInfo_[0].callVec[0]; - tmpInfo.mpty = 1; - EXPECT_TRUE(callStatusManager->GetConferenceCallList(0).empty()); - sptr call = callStatusManager->CreateNewCall(info, CallDirection::CALL_DIRECTION_IN); - ASSERT_TRUE(call != nullptr); - DialParaInfo paraInfo; - AppExecFwk::PacMap extras; - EXPECT_TRUE(callStatusManager->CreateNewCallByCallTypeEx(paraInfo, info, CallDirection::CALL_DIRECTION_IN, - extras) == nullptr); - CallObjectManager::AddOneCallObject(call); - callStatusManager->StartInComingCallMotionRecognition(); - EXPECT_FALSE(callStatusManager->GetConferenceCallList(0).empty()); - callStatusManager->StopCallMotionRecognition(TelCallState::CALL_STATUS_DISCONNECTED); - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - info.callType = CallType::TYPE_CS; - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - info.state = TelCallState::CALL_STATUS_HOLDING; - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - info.callMode = VideoStateType::TYPE_VIDEO; - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - info.callType = CallType::TYPE_IMS; - info.state = TelCallState::CALL_STATUS_ACTIVE; - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - info.callType = CallType::TYPE_CS; - info.callMode = VideoStateType::TYPE_VOICE; - EXPECT_GT(callStatusManager->RefreshOldCall(info, isExistedOldCall), TELEPHONY_ERROR); - call->SetCallRunningState(CallRunningState::CALL_RUNNING_STATE_HOLD); - callStatusManager->StartInComingCallMotionRecognition(); - callStatusManager->BtCallDialingHandleFirst(call, info); - info.state = TelCallState::CALL_STATUS_ALERTING; - callStatusManager->BtCallDialingHandleFirst(call, info); - call->SetTelCallState(TelCallState::CALL_STATUS_ALERTING); - callStatusManager->BtCallDialingHandleFirst(call, info); - EXPECT_EQ(call->GetTelCallState(), TelCallState::CALL_STATUS_DIALING); - callStatusManager->BtCallDialingHandle(call, info); - EXPECT_EQ(call->phoneOrWatch_, static_cast(PhoneOrWatchDial::WATCH_DIAL)); -} - HWTEST_F(ZeroBranch4Test, Telephony_CallStatusManager_014, Function | MediumTest | Level3) { std::shared_ptr manager = std::make_shared(); diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch4_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch4_test.cpp index e5095cc81ad8a09b1b754a34d746e8329f34a800..77e16a90f0b41a60677e85c216deb2dd90426f62 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch4_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch4_test.cpp @@ -291,7 +291,7 @@ HWTEST_F(ZeroBranch3Test, Telephony_VideoCallState_003, Function | MediumTest | videoReceiveState.SendUpdateCallMediaModeResponse(ImsCallMode::CALL_MODE_AUDIO_ONLY), TELEPHONY_ERR_SUCCESS); ASSERT_EQ( videoReceiveState.SendUpdateCallMediaModeResponse(ImsCallMode::CALL_MODE_SEND_ONLY), TELEPHONY_ERR_SUCCESS); - ASSERT_EQ( + ASSERT_NE( videoReceiveState.SendUpdateCallMediaModeResponse(ImsCallMode::CALL_MODE_RECEIVE_ONLY), TELEPHONY_ERR_SUCCESS); ASSERT_NE( videoReceiveState.SendUpdateCallMediaModeResponse(ImsCallMode::CALL_MODE_SEND_RECEIVE), TELEPHONY_ERR_SUCCESS); diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch6_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch6_test.cpp index bbfbfbd434f7a738471f672981c08ece247dea66..70137e2bd5557cf6d88d64a6e77c95a3f5472cdf 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch6_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch6_test.cpp @@ -92,10 +92,7 @@ const int32_t VALID_CALLID = 1; const int32_t ERROR_CALLID = -1; const int32_t ONE_TIME = 1; const int32_t STEP_1 = 1; -const int32_t IS_CELIA_CALL = 1; const int32_t SOURCE_CALL = 2; -const int32_t TELEPHONY_EXT_SA_ID = 4011; -const int32_t DISTRIBUTED_CALL_SOURCE_SA_ID = 9855; constexpr int16_t DEFAULT_TIME = 0; constexpr const char *TEST_STR = "123"; constexpr const char *LONG_STR = @@ -239,9 +236,6 @@ HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_004, Function | MediumTest callStatusManager->HandleHoldCallOrAutoAnswerCall(callObjectPtr, callIdList, previousState, priorState); callStatusManager->AutoAnswerForVoiceCall(callObjectPtr, SIM1_SLOTID, true); callStatusManager->SetVideoCallState(callObjectPtr, TelCallState::CALL_STATUS_ACTIVE); - callObjectPtr->SetSlotId(-1); - callStatusManager->SetVideoCallState(callObjectPtr, TelCallState::CALL_STATUS_ACTIVE); - EXPECT_TRUE(callStatusManager->GetConferenceCallList(-1).empty()); callStatusManager->ShouldRejectIncomingCall(); callStatusManager->IsRingOnceCall(callObjectPtr, callDetailInfo); sptr callObjectPtr1 = nullptr; @@ -250,6 +244,78 @@ HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_004, Function | MediumTest ASSERT_NE(res, TELEPHONY_SUCCESS); } +/** + * @tc.number Telephony_CallStatusManager_005 + * @tc.name test error branch + * @tc.desc Function test + */ + HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_005, Function | MediumTest | Level3) +{ + std::shared_ptr callStatusManager = std::make_shared(); + ASSERT_TRUE(callStatusManager != nullptr); + callStatusManager->Init(); + CallObjectManager::callObjectPtrList_.clear(); + CallDetailInfo info; + info.state = TelCallState::CALL_STATUS_DIALING; + info.callType = CallType::TYPE_IMS; + info.index = 0; + std::string number = "10086"; + memcpy_s(&info.phoneNum, kMaxNumberLen, number.c_str(), number.length()); + EXPECT_NE(callStatusManager->HandleCallReportInfo(info), TELEPHONY_SUCCESS); + info.index = 1; + info.state = TelCallState::CALL_STATUS_ALERTING; + callStatusManager->HandleCallReportInfo(info); + info.state = TelCallState::CALL_STATUS_DISCONNECTED; + callStatusManager->HandleCallReportInfo(info); +} + +/** + * @tc.number Telephony_CallStatusManager_006 + * @tc.name test error branch + * @tc.desc Function test + */ + HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_006, Function | MediumTest | Level3) +{ + std::shared_ptr callStatusManager = std::make_shared(); + ASSERT_TRUE(callStatusManager != nullptr); + callStatusManager->Init(); + CallObjectManager::callObjectPtrList_.clear(); + CallDetailInfo info; + info.state = TelCallState::CALL_STATUS_DIALING; + info.callType = CallType::TYPE_IMS; + info.index = 0; + std::string number = "10086"; + memcpy_s(&info.phoneNum, kMaxNumberLen, number.c_str(), number.length()); + EXPECT_NE(callStatusManager->HandleCallReportInfo(info), TELEPHONY_SUCCESS); + info.index = 1; + info.state = TelCallState::CALL_STATUS_ACTIVE; + callStatusManager->HandleCallReportInfo(info); + info.state = TelCallState::CALL_STATUS_DISCONNECTED; + callStatusManager->HandleCallReportInfo(info); +} + +/** + * @tc.number Telephony_CallStatusManager_007 + * @tc.name test error branch + * @tc.desc Function test + */ + HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_007, Function | MediumTest | Level3) +{ + std::shared_ptr callStatusManager = std::make_shared(); + ASSERT_TRUE(callStatusManager != nullptr); + callStatusManager->Init(); + CallObjectManager::callObjectPtrList_.clear(); + CallDetailInfo info; + info.state = TelCallState::CALL_STATUS_DIALING; + info.callType = CallType::TYPE_IMS; + info.index = 0; + std::string number = "10086"; + memcpy_s(&info.phoneNum, kMaxNumberLen, number.c_str(), number.length()); + EXPECT_NE(callStatusManager->HandleCallReportInfo(info), TELEPHONY_SUCCESS); + info.index = 1; + info.state = TelCallState::CALL_STATUS_DISCONNECTED; + callStatusManager->HandleCallReportInfo(info); +} /** * @tc.number Telephony_IncomingCallWakeup_001 * @tc.name test error branch @@ -257,10 +323,9 @@ HWTEST_F(ZeroBranch5Test, Telephony_CallStatusManager_004, Function | MediumTest */ HWTEST_F(ZeroBranch5Test, Telephony_IncomingCallWakeup_001, Function | MediumTest | Level3) { - auto incomingCallWakeup = std::make_shared(); + IncomingCallWakeup incomingCallWakeup; sptr callObjectPtr = nullptr; - incomingCallWakeup->NewCallCreated(callObjectPtr); - EXPECT_TRUE(incomingCallWakeup != nullptr); + incomingCallWakeup.NewCallCreated(callObjectPtr); } /** @@ -602,15 +667,12 @@ HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallManager_001, Function | Mediu { DistributedCallManager manager; AudioDevice device; - std::string deviceId = "{ \"devIds\": \"101\" }"; device.deviceType = AudioDeviceType::DEVICE_EARPIECE; std::string restr = manager.GetDevIdFromAudioDevice(device); EXPECT_FALSE(manager.IsSelectVirtualModem()); EXPECT_TRUE(manager.SwitchOnDCallDeviceSync(device)); device.deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PHONE; std::string devId = ""; - std::vector devices; - devices.push_back("TEST_STR"); manager.CreateDAudioDevice(devId, device); manager.CreateDAudioDevice(TEST_STR, device); manager.dcallProxy_ = std::make_shared(); @@ -633,109 +695,9 @@ HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallManager_001, Function | Mediu manager.OnDCallSystemAbilityAdded(TEST_STR); manager.IsDistributedCarDeviceOnline(); manager.ReportDistributedDeviceInfoForSwitchOff(); - manager.NotifyOnlineDCallDevices(devices); - manager.RemoveDCallDevice(TEST_STR); - device.deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PHONE; - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - manager.GetDevIdFromAudioDevice(device); - deviceId = "{ \"devId\": \"101\" }"; - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - manager.GetDevIdFromAudioDevice(device); EXPECT_TRUE(restr.empty()); } -/** - * @tc.number Telephony_DistributedCallManager_002 - * @tc.name test normal branch - * @tc.desc Function test - */ -HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallManager_002, Function | MediumTest | Level3) -{ - DistributedCallManager manager; - AudioDevice device; - std::string deviceId = ""; - DialParaInfo dialParaInfo; - sptr call = new IMSCall(dialParaInfo); - manager.statusChangeListener_ = nullptr; - manager.Init(); - manager.statusChangeListener_ = new (std::nothrow) DCallSystemAbilityListener(); - manager.Init(); - manager.AddDCallDevice(LONG_STR); - manager.RemoveDCallDevice(LONG_STR); - manager.ClearDCallDevices(); - manager.GetConnectedDCallDeviceType(); - manager.isCallActived_.store(false); - ASSERT_TRUE(manager.SwitchOnDCallDeviceSync(device)); - manager.isCallActived_.store(true); - device.deviceType = AudioDeviceType::DEVICE_UNKNOWN; - ASSERT_FALSE(manager.SwitchOnDCallDeviceSync(device)); - - device.deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PHONE; - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - ASSERT_FALSE(manager.SwitchOnDCallDeviceSync(device)); - - deviceId = "{ \"devId\": \"101\" }"; - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - manager.dcallProxy_ = nullptr; - manager.SwitchOnDCallDeviceSync(device); - manager.dcallProxy_ = std::make_shared(); - manager.SwitchOnDCallDeviceSync(device); - manager.SetCallState(false); - manager.DealDisconnectCall(); - manager.onlineDCallDevices_["101"] = device; - ASSERT_TRUE(manager.IsDistributedCarDeviceOnline()); - manager.onlineDCallDevices_.clear(); - ASSERT_FALSE(manager.IsDistributedCarDeviceOnline()); - CallObjectManager::callObjectPtrList_.clear(); - ASSERT_FALSE(manager.isCeliaCall()); - call->callType_ = CallType::TYPE_IMS; - call->callState_ = TelCallState::CALL_STATUS_WAITING; - call->celiaCallType_ = IS_CELIA_CALL; - CallObjectManager::callObjectPtrList_.push_back(call); - EXPECT_TRUE(manager.isCeliaCall()); - manager.SwitchOnDCallDeviceAsync(device); // is celia call, return - CallObjectManager::callObjectPtrList_.clear(); - call->celiaCallType_ = IS_CELIA_CALL + 1; - CallObjectManager::callObjectPtrList_.push_back(call); - EXPECT_FALSE(manager.isCeliaCall()); - manager.SwitchOnDCallDeviceAsync(device); // not celia call - CallObjectManager::callObjectPtrList_.clear(); -} - -/** - * @tc.number Telephony_DistributedCallManager_003 - * @tc.name test normal branch - * @tc.desc Function test - */ -HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallManager_003, Function | MediumTest | Level3) -{ - AudioDevice device; - std::string deviceId = ""; - DistributedCallManager manager; - auto listener = new (std::nothrow) DCallSystemAbilityListener(); - manager.onlineDCallDevices_.clear(); - ASSERT_FALSE(manager.IsSelectVirtualModem()); - manager.onlineDCallDevices_["101"] = device; - manager.dcallProxy_ = nullptr; - ASSERT_FALSE(manager.IsSelectVirtualModem()); - manager.dcallProxy_ = std::make_shared(); - manager.IsSelectVirtualModem(); - manager.onlineDCallDevices_.clear(); - - manager.IsDCallDeviceSwitchedOn(); - manager.OnDCallSystemAbilityRemoved(deviceId); - listener->OnAddSystemAbility(-1, deviceId); // invalid sa id - listener->OnAddSystemAbility(TELEPHONY_EXT_SA_ID, deviceId); - listener->OnAddSystemAbility(DISTRIBUTED_CALL_SOURCE_SA_ID, deviceId); - listener->OnRemoveSystemAbility(-1, deviceId); - listener->OnRemoveSystemAbility(TELEPHONY_EXT_SA_ID, deviceId); - listener->OnRemoveSystemAbility(DISTRIBUTED_CALL_SOURCE_SA_ID, deviceId); - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - manager.SetCallState(true); - manager.ReportDistributedDeviceInfo(device); - ASSERT_TRUE(manager.isCallActived_); -} - /** * @tc.number Telephony_DistributedCallProxy_001 * @tc.name test error branch @@ -744,11 +706,7 @@ HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallManager_003, Function | Mediu HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallProxy_001, Function | MediumTest | Level3) { std::unique_ptr proxy = std::make_unique(); - std::shared_ptr callback = nullptr; - std::string name = "123"; proxy->GetDCallClient(); - proxy->RegisterDeviceCallback(name, callback); - proxy->UnRegisterDeviceCallback(name); int32_t res = proxy->Init(); proxy->GetDCallClient(); proxy->dcallClient_ = nullptr; @@ -765,14 +723,6 @@ HWTEST_F(ZeroBranch5Test, Telephony_DistributedCallProxy_001, Function | MediumT int32_t res7 = proxy->GetOnlineDeviceList(devList); proxy->GetDCallDeviceInfo(TEST_STR, devInfo); int32_t res8 = proxy->UnInit(); - proxy->GetDCallClient(); - proxy->UnInit(); - proxy->SwitchDevice(TEST_STR, 1); - proxy->GetDCallDeviceInfo(TEST_STR, devInfo); - proxy->RegisterDeviceCallback(name, callback); - proxy->UnRegisterDeviceCallback(name); - proxy->GetDCallDeviceInfo(TEST_STR, devInfo); - proxy->IsSelectVirtualModem(); EXPECT_NE(res, TELEPHONY_SUCCESS); EXPECT_NE(res1, TELEPHONY_SUCCESS); EXPECT_FALSE(res2); diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch7_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch7_test.cpp index b48b544d83af589acbcf072da17ed4a06b6a91cc..e46854dac37061ceeeb538b0d2fbb71d83c644cc 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch7_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch7_test.cpp @@ -173,6 +173,26 @@ void ZeroBranch8Test::InitDialInfo(int32_t accountId, int32_t videoState, int32_ dialInfo_.PutIntValue("dialType", dialType); } +HWTEST_F(ZeroBranch8Test, Telephony_CallPolicy_001, Function | MediumTest | Level1) +{ + AccessToken token; + CallPolicy mCallPolicy; + std::u16string testEmptyStr = u""; + AppExecFwk::PacMap mPacMap; + mPacMap.PutIntValue("dialType", static_cast(DialType::DIAL_OTT_TYPE)); + mPacMap.PutIntValue("callType", static_cast(CallType::TYPE_BLUETOOTH)); + mPacMap.PutIntValue("dialType", static_cast(DialType::DIAL_CARRIER_TYPE)); + EXPECT_EQ(mCallPolicy.DialPolicy(testEmptyStr, mPacMap, true), TELEPHONY_ERR_ARGUMENT_INVALID); + mPacMap.PutIntValue("callType", static_cast(CallType::TYPE_CS)); + mPacMap.PutIntValue("dialScene", 3); + EXPECT_EQ(mCallPolicy.DialPolicy(testEmptyStr, mPacMap, true), TELEPHONY_ERR_ARGUMENT_INVALID); + mPacMap.PutIntValue("dialScene", static_cast(DialScene::CALL_EMERGENCY)); + mPacMap.PutIntValue("videoState", static_cast(VideoStateType::TYPE_VOICE)); + EXPECT_NE(mCallPolicy.DialPolicy(testEmptyStr, mPacMap, true), TELEPHONY_ERR_ARGUMENT_INVALID); + mPacMap.PutIntValue("videoState", static_cast(VideoStateType::TYPE_SEND_ONLY)); + EXPECT_EQ(mCallPolicy.DialPolicy(testEmptyStr, mPacMap, true), TELEPHONY_ERR_ARGUMENT_INVALID); +} + HWTEST_F(ZeroBranch8Test, Telephony_CallManagerService_001, Function | MediumTest | Level1) { AccessToken token; @@ -570,5 +590,24 @@ HWTEST_F(ZeroBranch8Test, Telephony_VoipCallConnection_001, Function | MediumTes std::string voipCallId = "123"; EXPECT_NE(voipCallConnection->SendCallUiEvent(voipCallId, callAudioEvent), TELEPHONY_ERROR); } + +HWTEST_F(ZeroBranch8Test, Telephony_CallSuperPrivacyControlManager_001, Function | MediumTest | Level1) +{ + int32_t callId = 0; + int32_t videoState = 0; + std::u16string phoneNumber = u""; + int32_t accountId = 1; + int32_t dialType = 0; + int32_t dialScene = 0; + int32_t callType = 0; + auto controlManager = DelayedSingleton::GetInstance(); + controlManager->RestoreSuperPrivacyMode(); + EXPECT_FALSE(controlManager->GetIsChangeSuperPrivacyMode()); + controlManager->SetIsChangeSuperPrivacyMode(true); + controlManager->RestoreSuperPrivacyMode(); + EXPECT_FALSE(controlManager->GetIsChangeSuperPrivacyMode()); + controlManager->CloseAnswerSuperPrivacyMode(callId, videoState); + controlManager->CloseCallSuperPrivacyMode(phoneNumber, accountId, videoState, dialType, dialScene, callType); +} } // namespace Telephony -} // namespace OHOS +} // namespace OHOS \ No newline at end of file diff --git a/test/unittest/call_manager_zero_gtest/src/zero_branch8_test.cpp b/test/unittest/call_manager_zero_gtest/src/zero_branch8_test.cpp index 327b9f9010d935b616201b969e90201dfbd35421..919e2968e275eb5dcce7c563b4b113a61f5414f7 100644 --- a/test/unittest/call_manager_zero_gtest/src/zero_branch8_test.cpp +++ b/test/unittest/call_manager_zero_gtest/src/zero_branch8_test.cpp @@ -79,6 +79,7 @@ HWTEST_F(ZeroBranch7Test, Telephony_AudioControlManager_001, Function | MediumTe audioControl->UpdateDeviceTypeForVideoOrSatelliteCall(); audioControl->MuteNetWorkRingTone(); audioControl->IsBtOrWireHeadPlugin(); + ASSERT_TRUE(audioControl->IsVideoCall(VideoStateType::TYPE_RECEIVE_ONLY)); sptr call = nullptr; audioControl->IncomingCallHungUp(call, false, ""); audioControl->CallStateUpdated(call, TelCallState::CALL_STATUS_DIALING, TelCallState::CALL_STATUS_ALERTING); @@ -109,7 +110,7 @@ HWTEST_F(ZeroBranch7Test, Telephony_AudioControlManager_001, Function | MediumTe call->SetCallType(CallType::TYPE_ERR_CALL); audioControl->HandleNewActiveCall(call); audioControl->GetCallList().empty(); - EXPECT_TRUE(audioControl != nullptr); + ASSERT_TRUE(audioControl->GetCurrentActiveCall() == nullptr); } /** @@ -147,7 +148,7 @@ HWTEST_F(ZeroBranch7Test, Telephony_AudioControlManager_002, Function | MediumTe audioControl->IsEmergencyCallExists(); audioControl->SetToneState(ToneState::TONEING); audioControl->IsNumberAllowed(NUMBER); - ASSERT_TRUE(audioControl != nullptr); + ASSERT_TRUE(audioControl->IsAudioActivated()); } /** @@ -213,7 +214,6 @@ HWTEST_F(ZeroBranch7Test, Telephony_CallBroadcastSubscriber_001, Function | Medi ASSERT_NO_THROW(subscriber.UpdateBluetoothDeviceName(eventData)); ASSERT_NO_THROW(subscriber.ConnectCallUiUserSwitchedBroadcast(eventData)); ASSERT_NO_THROW(subscriber.ShutdownBroadcast(eventData)); - ASSERT_NO_THROW(subscriber.HsdrEventBroadcast(eventData)); ASSERT_NO_THROW(subscriber.ScreenUnlockedBroadcast(eventData)); } diff --git a/test/unittest/call_voice_assistant_test/src/call_voice_assistant_test.cpp b/test/unittest/call_voice_assistant_test/src/call_voice_assistant_test.cpp index f4c2b5c78bb8dc9493502b6ebfdfa5fe859f1b7a..24a3ef2a929a787cb946c0ef2f036124601c9b23 100644 --- a/test/unittest/call_voice_assistant_test/src/call_voice_assistant_test.cpp +++ b/test/unittest/call_voice_assistant_test/src/call_voice_assistant_test.cpp @@ -51,10 +51,10 @@ public: */ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_CallVoiceAssistantManager_001, Function | MediumTest | Level3) { - const int32_t callId = -1; - const int32_t accountId = -1; - const std::string incoming = "come"; - const std::string dialing = "dial"; + const int32_t CALL_ID = -1; + const int32_t ACCOUNT_ID = -1; + const std::string INCOMING = "come"; + const std::string DIALING = "dial"; DialParaInfo paraInfo; sptr callObjectPtr = std::make_unique(paraInfo).release(); TelCallState priorState = TelCallState::CALL_STATUS_DIALING; @@ -66,17 +66,17 @@ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_CallVoiceAssistantManager_001, } voicePtr->mInstance_ = voicePtr; voicePtr->CallStateUpdated(callObjectPtr, priorState, nextState); - voicePtr->CallStatusDialing(callId, accountId); - voicePtr->CallStatusIncoming(callId, accountId); - voicePtr->CallStatusActive(callId, accountId); - voicePtr->CallStatusDisconnected(callId, accountId); - voicePtr->ConnectAbility(accountId); - voicePtr->OnStartService(incoming, accountId); + voicePtr->CallStatusDialing(CALL_ID, ACCOUNT_ID); + voicePtr->CallStatusIncoming(CALL_ID, ACCOUNT_ID); + voicePtr->CallStatusActive(CALL_ID, ACCOUNT_ID); + voicePtr->CallStatusDisconnected(CALL_ID, ACCOUNT_ID); + voicePtr->ConnectAbility(ACCOUNT_ID); + voicePtr->OnStartService(INCOMING, ACCOUNT_ID); voicePtr->RegisterListenSwitchState(); - voicePtr->PublishCommonEvent(true, incoming); + voicePtr->PublishCommonEvent(true, INCOMING); voicePtr->DisconnectAbility(); voicePtr->UnRegisterListenSwitchState(); - voicePtr->PublishCommonEvent(false, dialing); + voicePtr->PublishCommonEvent(false, DIALING); voicePtr->OnStopService(); voicePtr->Release(); ASSERT_TRUE(voicePtr->GetInstance() != nullptr); @@ -92,15 +92,15 @@ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_CallVoiceAssistantManager_001, */ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_CallVoiceAssistantManager_002, Function | MediumTest | Level3) { - const int32_t callId = -1; - const int32_t accountId = -1; - const std::string controlSwitch = "incoming_call_voice_control_switch"; - const std::string incoming = "come"; - const std::string dialing = "dial"; + const int32_t CALL_ID = -1; + const int32_t ACCOUNT_ID = -1; + const std::string CONTROL_SWITCH = "incoming_call_voice_control_switch"; + const std::string INCOMING = "come"; + const std::string DIALING = "dial"; std::string value = ""; ContactInfo contactInfo; std::shared_ptr voicePtr = CallVoiceAssistantManager::GetInstance(); - sptr remoteObject = sptr::MakeSptr(accountId); + sptr remoteObject = sptr::MakeSptr(ACCOUNT_ID); if (voicePtr == nullptr) { TELEPHONY_LOGE("voicePtr is nullptr"); return; @@ -109,17 +109,17 @@ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_CallVoiceAssistantManager_002, voicePtr->SetIsControlSwitchOn(true); voicePtr->GetIsControlSwitchOn(); voicePtr->GetIsPlayRing(); - voicePtr->UpdateVoipCallState(accountId); - auto infoptr = voicePtr->GetContactInfo(accountId); - voicePtr->UpdateNumberLocation(value, accountId); - voicePtr->UpdateContactInfo(contactInfo, accountId); - voicePtr->UpdateRemoteObject(remoteObject, accountId, nullptr); + voicePtr->UpdateVoipCallState(ACCOUNT_ID); + auto infoptr = voicePtr->GetContactInfo(ACCOUNT_ID); + voicePtr->UpdateNumberLocation(value, ACCOUNT_ID); + voicePtr->UpdateContactInfo(contactInfo, ACCOUNT_ID); + voicePtr->UpdateRemoteObject(remoteObject, ACCOUNT_ID, nullptr); voicePtr->OnStopService(); voicePtr->Initial(); - voicePtr->QueryValue(controlSwitch, value); + voicePtr->QueryValue(CONTROL_SWITCH, value); voicePtr->IsStartVoiceBroadcast(); - voicePtr->IsSwitchOn(controlSwitch); - voicePtr->OnStartService(dialing, accountId); + voicePtr->IsSwitchOn(CONTROL_SWITCH); + voicePtr->OnStartService(DIALING, ACCOUNT_ID); voicePtr->MuteRinger(); voicePtr->UpdateReplyData(value); voicePtr->GetSendString(infoptr); @@ -151,12 +151,12 @@ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_VoiceAssistantSwitchObserver_0 */ HWTEST_F(CallVoiceAssistantManagerTest, Telephony_VoiceAssistantConnectCallback_001, Function | MediumTest | Level3) { - const int32_t accountId = 1; - sptr remoteObject = sptr::MakeSptr(accountId); + const int32_t ACCOUNT_ID = 1; + sptr remoteObject = sptr::MakeSptr(ACCOUNT_ID); AppExecFwk::ElementName element; - sptr connectCallback = sptr::MakeSptr(accountId); - connectCallback->OnAbilityConnectDone(element, remoteObject, accountId); - connectCallback->OnAbilityDisconnectDone(element, accountId); + sptr connectCallback = sptr::MakeSptr(ACCOUNT_ID); + connectCallback->OnAbilityConnectDone(element, remoteObject, ACCOUNT_ID); + connectCallback->OnAbilityDisconnectDone(element, ACCOUNT_ID); ASSERT_TRUE(connectCallback != nullptr); } diff --git a/test/unittest/distributed_communication_test/BUILD.gn b/test/unittest/distributed_communication_test/BUILD.gn index 802d5411904258ab856eb0abc77682b4c969dca1..88f0ed24bd9c06136aef06302ad2aee9965dcbca 100644 --- a/test/unittest/distributed_communication_test/BUILD.gn +++ b/test/unittest/distributed_communication_test/BUILD.gn @@ -61,6 +61,5 @@ ohos_unittest("distributed_communication_test") { "LOG_DOMAIN = 0xD000F00", "private = public", "protected = public", - "ABILITY_BLUETOOTH_SUPPORT = 0x1", ] } diff --git a/test/unittest/distributed_communication_test/src/distributed_communication_manager_test.cpp b/test/unittest/distributed_communication_test/src/distributed_communication_manager_test.cpp index b167c407674e91f82cd2e243910bfe884722a915..4397c3ae0ee80f37c8a0e0f6e9b51ac428f9d58e 100644 --- a/test/unittest/distributed_communication_test/src/distributed_communication_manager_test.cpp +++ b/test/unittest/distributed_communication_test/src/distributed_communication_manager_test.cpp @@ -23,8 +23,6 @@ #include "distributed_device_observer.h" #include "distributed_communication_manager.h" #include "call_manager_disconnected_details.h" -#include "distributed_data_sink_controller.h" -#include "distributed_sink_switch_controller.h" namespace OHOS { namespace Telephony { @@ -71,24 +69,26 @@ HWTEST_F(DistributedCommunicationManagerTest, Telephony_DcManagerTest_001, Funct ASSERT_TRUE(ret == TELEPHONY_ERROR); ASSERT_NO_THROW(dcManager->InitExtWrapper()); - ASSERT_NO_THROW(dcManager->InitExtWrapper()); // extWrapperHandler_ != nullptr case + + ret = dcManager->RegDevCallbackWrapper(deviceListener); + ASSERT_TRUE(ret != TELEPHONY_ERROR); + + ret = dcManager->UnRegDevCallbackWrapper(); + ASSERT_TRUE(ret != TELEPHONY_ERROR); + + ret = dcManager->SwitchDevWrapper(devId, direction); + ASSERT_TRUE(ret != TELEPHONY_ERROR); + + ASSERT_FALSE(dcManager->IsDistributedDev(devId)); + + deviceObserver = dcManager->GetDistributedDeviceObserver(); + ASSERT_TRUE(deviceObserver != nullptr); ASSERT_NO_THROW(dcManager->SetMuted(true)); ASSERT_NO_THROW(dcManager->MuteRinger()); ASSERT_NO_THROW(dcManager->ProcessCallInfo(csCall, DistributedDataType::LOCATION)); ASSERT_NO_THROW(dcManager->NewCallCreated(csCall)); ASSERT_NO_THROW(dcManager->CallDestroyed(details)); ASSERT_NO_THROW(dcManager->DeInitExtWrapper()); - ASSERT_NO_THROW(dcManager->dataController_ = std::make_shared()); - ASSERT_NO_THROW(dcManager->SetMuted(true)); - ASSERT_NO_THROW(dcManager->MuteRinger()); - ASSERT_NO_THROW(dcManager->ProcessCallInfo(csCall, DistributedDataType::LOCATION)); - csCall->SetCallType(CallType::TYPE_CS); - dcManager->role_ = DistributedRole::SINK; - ASSERT_NO_THROW(dcManager->NewCallCreated(csCall)); - dcManager->peerDevices_.push_back("device"); - ASSERT_NO_THROW(dcManager->NewCallCreated(csCall)); - ASSERT_NO_THROW(dcManager->CallDestroyed(details)); - ASSERT_NO_THROW(dcManager->peerDevices_.clear()); } /** @@ -135,7 +135,7 @@ HWTEST_F(DistributedCommunicationManagerTest, Telephony_DcManager_DeviceOffline_ auto dcManager = DelayedSingleton::GetInstance(); ASSERT_NO_THROW(dcManager->OnDeviceOffline(devId, devName, deviceType, devRole)); - ASSERT_NO_THROW(dcManager->IsConnected()); + ASSERT_FALSE(dcManager->IsConnected()); ASSERT_NO_THROW(dcManager->Init()); ASSERT_NO_THROW(dcManager->OnDeviceOnline(devId, devName, deviceType, devRole)); @@ -143,14 +143,6 @@ HWTEST_F(DistributedCommunicationManagerTest, Telephony_DcManager_DeviceOffline_ ASSERT_NO_THROW(dcManager->OnDeviceOffline(devId, devName, deviceType, devRole)); ASSERT_FALSE(dcManager->IsConnected()); - - dcManager->devObserver_ = nullptr; - ASSERT_NO_THROW(dcManager->OnDeviceOffline(devId, devName, deviceType, devRole)); - - dcManager->devObserver_ = std::make_shared(); - dcManager->peerDevices_.push_back("hello"); - ASSERT_NO_THROW(dcManager->OnDeviceOffline(devId, devName, deviceType, devRole)); - dcManager->peerDevices_.clear(); } /** @@ -165,43 +157,11 @@ HWTEST_F(DistributedCommunicationManagerTest, Telephony_DcManager_SwitchDevice_0 std::string devName = "UnitTestDeviceName"; AudioDeviceType deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PAD; auto dcManager = DelayedSingleton::GetInstance(); - ASSERT_NO_THROW(dcManager->SwitchToSourceDevice()); + ASSERT_FALSE(dcManager->SwitchToSourceDevice()); ASSERT_NO_THROW(dcManager->Init()); ASSERT_NO_THROW(dcManager->OnDeviceOnline(devId, devName, deviceType, devRole)); ASSERT_TRUE(dcManager->SwitchToSourceDevice()); - dcManager->devSwitchController_->isAudioOnSink_ = true; - ASSERT_NO_THROW(dcManager->SwitchToSourceDevice()); - dcManager->devSwitchController_->isAudioOnSink_ = false; } -/** - * @tc.number Telephony_DcManager_SwitchToSinkDevice - * @tc.name test switch to sink device - * @tc.desc Function test - */ -HWTEST_F(DistributedCommunicationManagerTest, Telephony_DcManager_SwitchToSinkDevice, Function | MediumTest | Level1) -{ - AudioDevice device; - std::string deviceId = "{ \"devId\": \"101\" }"; - std::string deviceName = "deviceName"; - device.deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PAD; - auto dcManager = DelayedSingleton::GetInstance(); - ASSERT_FALSE(dcManager->SwitchToSinkDevice(device)); // deviceId is empty - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - ASSERT_EQ(memcpy_s(device.deviceName, kMaxDeviceNameLen + 1, deviceName.c_str(), deviceName.size()), EOK); - ASSERT_FALSE(dcManager->SwitchToSinkDevice(device)); // not dc device - dcManager->peerDevices_.push_back("101"); - ASSERT_FALSE(dcManager->SwitchToSinkDevice(device)); - dcManager->devSwitchController_ = nullptr; - ASSERT_FALSE(dcManager->SwitchToSinkDevice(device)); - dcManager->devSwitchController_ = std::make_shared(); - dcManager->devSwitchController_->isAudioOnSink_ = true; - ASSERT_TRUE(dcManager->SwitchToSinkDevice(device)); - dcManager->devSwitchController_->isAudioOnSink_ = false; - dcManager->peerDevices_.clear(); - deviceId = "not Json string"; - ASSERT_EQ(memcpy_s(device.address, kMaxAddressLen + 1, deviceId.c_str(), deviceId.size()), EOK); - ASSERT_EQ(dcManager->ParseDevIdFromAudioDevice(device), ""); -} } // namespace Telephony } // namespace OHOS diff --git a/test/unittest/distributed_communication_test/src/distributed_data_test.cpp b/test/unittest/distributed_communication_test/src/distributed_data_test.cpp index 92700513e0945abf8fde469b2ac2879fe80b5c0b..f161a3c139023cf0cb2563a8166b6515fdee3ff6 100644 --- a/test/unittest/distributed_communication_test/src/distributed_data_test.cpp +++ b/test/unittest/distributed_communication_test/src/distributed_data_test.cpp @@ -210,14 +210,9 @@ HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_008, Function | Medi CallObjectManager::callObjectPtrList_.emplace_back(nullptr); CallObjectManager::callObjectPtrList_.emplace_back(call1); CallObjectManager::callObjectPtrList_.emplace_back(call2); - sptr call = new IMSCall(paraInfo); - call->callType_ = CallType::TYPE_IMS; - CallObjectManager::callObjectPtrList_.push_back(call); + auto controller = std::make_shared(); ASSERT_NO_THROW(controller->SendCurrentDataQueryReq()); - std::shared_ptr callback = std::make_shared(); - controller->session_ = DelayedSingleton::GetInstance()->CreateServerSession(callback); - ASSERT_NO_THROW(controller->SendCurrentDataQueryReq()); CallObjectManager::callObjectPtrList_.clear(); } @@ -246,9 +241,6 @@ HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_009, Function | Medi msg = cJSON_Parse("{ \"itemType\": 0, \"num\": \"123456\", \"direction\": 0 }"); ASSERT_NO_THROW(controller->HandleCurrentDataQueryRsp(msg)); - std::string num = "123"; - std::string reqMsg = controller->CreateCurrentDataReqMsg(num); - EXPECT_FALSE(reqMsg.empty()); cJSON_Delete(msg); } @@ -323,9 +315,6 @@ HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_011, Function | Medi ASSERT_NO_THROW(sourceController->HandleCurrentDataQueryMsg(msg)); ASSERT_NO_THROW(sourceController->HandleDataQueryMsg(msg)); ASSERT_NO_THROW(sourceController->HandleDataQueryMsg(msg)); - - msg = cJSON_Parse("{ \"itemType\": 0, \"num\": \"\" }"); - ASSERT_NO_THROW(sourceController->HandleDataQueryMsg(msg)); std::string rspMsg = sourceController->CreateCurrentDataRspMsg(num, isMuted, direction); ASSERT_FALSE(rspMsg.empty()); cJSON_Delete(msg); @@ -420,78 +409,5 @@ HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_015, Function | Medi cJSON_Delete(msg); } -/** - * @tc.number Telephony_DistributedDataTest_016 - * @tc.name test data msg - * @tc.desc Function test - */ -HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_016, Function | MediumTest | Level1) -{ - DialParaInfo mDialParaInfo; - sptr imsCall = nullptr; - ContactInfo info; - info.name = "name"; - auto sourceController = std::make_shared(); - ASSERT_NO_THROW(sourceController->SaveLocalData(imsCall, DistributedDataType::LOCATION)); - imsCall = new IMSCall(mDialParaInfo); - imsCall->SetCallerInfo(info); - imsCall->SetAccountNumber("number"); - ASSERT_NO_THROW(sourceController->SaveLocalData(imsCall, DistributedDataType::NAME)); - std::shared_ptr callback = std::make_shared(); - sourceController->session_ = DelayedSingleton::GetInstance()->CreateServerSession(callback); - sourceController->session_->socket_ = INVALID_SOCKET_ID + 1; // session is ready - ASSERT_NO_THROW(sourceController->SendLocalDataRsp()); // both localInfo_ and queryInfo_ empty - sourceController->queryInfo_["name_1"] = 1; - sourceController->queryInfo_["name_2"] = 2; - sourceController->queryInfo_["name_3"] = 2; // local info not contain queried number - std::map localInfo; - sourceController->localInfo_["name_1"] = localInfo; - sourceController->localInfo_["name_2"] = localInfo; - ASSERT_NO_THROW(sourceController->SendLocalDataRsp()); // localInfo_["name"] is empty - localInfo[0] = "zero"; - localInfo[1] = "one"; - localInfo[2] = "two"; - sourceController->localInfo_["name_1"] = localInfo; - sourceController->localInfo_["name_2"] = localInfo; - ASSERT_NO_THROW(sourceController->SendLocalDataRsp()); // both localInfo_ and queryInfo_ not empty - sourceController->localInfo_.clear(); - sourceController->queryInfo_.clear(); - cJSON *msg = cJSON_Parse("{ \"num\": \"123\" }"); - imsCall->SetAccountNumber("123"); - CallObjectManager::callObjectPtrList_.push_back(imsCall); - ASSERT_NO_THROW(sourceController->HandleCurrentDataQueryMsg(msg)); - msg = cJSON_Parse("{ \"num\": \"2\" }"); - ASSERT_NO_THROW(sourceController->HandleCurrentDataQueryMsg(msg)); // not find distributed call - CallObjectManager::callObjectPtrList_.clear(); - cJSON_Delete(msg); -} - -/** - * @tc.number Telephony_DistributedDataTest_017 - * @tc.name test data msg - * @tc.desc Function test - */ -HWTEST_F(DistributedDataTest, Telephony_DistributedDataTest_017, Function | MediumTest | Level1) -{ - DialParaInfo mDialParaInfo; - AudioDeviceType deviceType = AudioDeviceType::DEVICE_DISTRIBUTED_PHONE; - std::string devId = "UnitTestDeviceId"; - std::string devName = "UnitTestDeviceName"; - sptr imsCall = new IMSCall(mDialParaInfo); - imsCall->callType_ = CallType::TYPE_IMS; - auto sourceController = std::make_shared(); - std::shared_ptr callback = std::make_shared(); - sourceController->session_ = DelayedSingleton::GetInstance()->CreateServerSession(callback); - ASSERT_NO_THROW(sourceController->OnDeviceOnline(devId, devName, deviceType)); - sourceController->session_ = nullptr; - CallObjectManager::callObjectPtrList_.emplace_back(nullptr); - CallObjectManager::callObjectPtrList_.emplace_back(imsCall); - ASSERT_NO_THROW(sourceController->OnDeviceOnline(devId, devName, deviceType)); - ASSERT_NO_THROW(sourceController->OnCallCreated(imsCall, devId)); - CallObjectManager::callObjectPtrList_.clear(); - ASSERT_NO_THROW(sourceController->OnCallDestroyed()); - ASSERT_NO_THROW(sourceController->ProcessCallInfo(imsCall, DistributedDataType::NAME)); -} - } // namespace Telephony } // namespace OHOS diff --git a/test/unittest/distributed_communication_test/src/distributed_dev_observer_test.cpp b/test/unittest/distributed_communication_test/src/distributed_dev_observer_test.cpp index d09151857c0b91e944c02798e2163f3b5a6db1fe..57b1bc7f6f092de0ed8d7e2ae832fc808527be17 100644 --- a/test/unittest/distributed_communication_test/src/distributed_dev_observer_test.cpp +++ b/test/unittest/distributed_communication_test/src/distributed_dev_observer_test.cpp @@ -59,13 +59,9 @@ HWTEST_F(DistributedDevObserverTest, Telephony_DcDeviceObserver_001, Function | callback = std::make_shared(); ASSERT_NO_THROW(deviceObserver->RegisterDevStatusCallback(callback)); - ASSERT_NO_THROW(deviceObserver->Init()); ASSERT_NO_THROW(deviceObserver->OnDeviceOnline(devId, devName, deviceType)); ASSERT_NO_THROW(deviceObserver->OnDeviceOffline(devId, devName, deviceType)); ASSERT_NO_THROW(deviceObserver->OnRemoveSystemAbility()); - deviceObserver->callbacks_.push_back(callback); - ASSERT_NO_THROW(deviceObserver->OnDistributedAudioDeviceChange(devId, devName, - static_cast(devType), devRole)); ASSERT_NO_THROW(saListener->OnAddSystemAbility(otherSaId, devId)); ASSERT_NO_THROW(saListener->OnAddSystemAbility(dcCallSaId, devId)); ASSERT_NO_THROW(saListener->OnRemoveSystemAbility(otherSaId, devId)); diff --git a/test/unittest/distributed_communication_test/src/distributed_dev_switch_test.cpp b/test/unittest/distributed_communication_test/src/distributed_dev_switch_test.cpp index 745d1953737e7e2d5f5045f5be935090f14bced9..6e851735f0d73b1ebbecff8047c5ee02160ed7e6 100644 --- a/test/unittest/distributed_communication_test/src/distributed_dev_switch_test.cpp +++ b/test/unittest/distributed_communication_test/src/distributed_dev_switch_test.cpp @@ -50,46 +50,15 @@ HWTEST_F(DistributedDevSwitchTest, Telephony_DcDevSwitch_001, Function | MediumT ASSERT_TRUE(sourceSwitchController->IsAudioOnSink()); ASSERT_NO_THROW(sourceSwitchController->OnRemoveSystemAbility()); ASSERT_FALSE(sourceSwitchController->IsAudioOnSink()); - ASSERT_NO_THROW(sourceSwitchController->SwitchDevice(devId, 1)); auto sinkSwitchController = std::make_shared(); ASSERT_NO_THROW(sinkSwitchController->OnDeviceOnline(devId, devName, deviceType)); ASSERT_NO_THROW(sinkSwitchController->OnDeviceOffline(devId, devName, deviceType)); - ASSERT_NO_THROW(sinkSwitchController->hfpListener_ = std::make_shared()); ASSERT_NO_THROW(sinkSwitchController->OnDistributedAudioDeviceChange(devId, devName, deviceType, static_cast(devRole))); ASSERT_TRUE(sinkSwitchController->IsAudioOnSink()); - ASSERT_NO_THROW(sinkSwitchController->hfpListener_ = std::make_shared()); ASSERT_NO_THROW(sinkSwitchController->OnRemoveSystemAbility()); ASSERT_FALSE(sinkSwitchController->IsAudioOnSink()); } -#ifdef ABILITY_BLUETOOTH_SUPPORT -/** - * @tc.number Telephony_DcCallHfpListenerTest - * @tc.name test hfp listeber normal func - * @tc.desc Function test - */ -HWTEST_F(DistributedDevSwitchTest, Telephony_DcCallHfpListenerTest, Function | MediumTest | Level1) -{ - DcCallHfpListener listener; - DcCallSourceHfpListener sourceListener; - Bluetooth::BluetoothRemoteDevice device; - ASSERT_NO_THROW(listener.SetPreAction(1)); - ASSERT_NO_THROW(listener.SwitchToBtHeadset(device)); - ASSERT_NO_THROW(listener.OnHfpStackChanged(device, 0)); // WEAR_ACTION - ASSERT_NO_THROW(listener.OnHfpStackChanged(device, 1)); // UNWEAR_ACTION - ASSERT_NO_THROW(listener.OnHfpStackChanged(device, 2)); // ENABLE_FROM_REMOTE_ACTION - ASSERT_NO_THROW(listener.OnHfpStackChanged(device, 3)); // DISABLE_FROM_REMOTE_ACTION - ASSERT_NO_THROW(listener.OnHfpStackChanged(device, 6)); // USER_SELECTION_ACTION - ASSERT_NO_THROW(sourceListener.OnHfpStackChanged(device, 0)); - - auto dcManager = DelayedSingleton::GetInstance(); - ASSERT_NO_THROW(dcManager->devSwitchController_ = std::make_shared()); - dcManager->devSwitchController_->isAudioOnSink_ = true; - ASSERT_NO_THROW(sourceListener.IsNeedSwitchToSource(device, 1)); - dcManager->devSwitchController_->isAudioOnSink_ = false; - ASSERT_NO_THROW(sourceListener.IsNeedSwitchToSource(device, 1)); -} -#endif } // namespace Telephony } // namespace OHOS diff --git a/test/unittest/distributed_communication_test/src/distributed_transmission_test.cpp b/test/unittest/distributed_communication_test/src/distributed_transmission_test.cpp index 34fec32a11d1cc71f8445e7596e30bf9bbb3592a..4e15b9119d20f86b11a87474640dda8865cf3033 100644 --- a/test/unittest/distributed_communication_test/src/distributed_transmission_test.cpp +++ b/test/unittest/distributed_communication_test/src/distributed_transmission_test.cpp @@ -16,7 +16,6 @@ #include #include "transmission_manager.h" #include "server_session.h" -#include "client_session.h" namespace OHOS { namespace Telephony { @@ -71,19 +70,6 @@ HWTEST_F(DistributedTransmissionTest, Telephony_DistributedTransmissionTest_002, session->Disconnect(); session->OnSessionShutdown(0); EXPECT_EQ(session->socket_, INVALID_SOCKET_ID); - - std::string peerDevice = ""; - std::string localName = "localName"; - std::string peerName = "peerName"; - auto clientSession = std::make_shared(callback); - clientSession->clientSocket_ = INVALID_SOCKET_ID + 1; - clientSession->Connect("", SESSION_NAME, SESSION_NAME); // already connect - clientSession->socket_ = INVALID_SOCKET_ID + 1; - clientSession->Disconnect(); - clientSession->socket_ = 1; - clientSession->clientSocket_ = 1; - clientSession->OnSessionShutdown(1); - EXPECT_EQ(clientSession->CreateSocket(peerDevice, localName, peerName), INVALID_SOCKET_ID); } /** @@ -105,13 +91,7 @@ HWTEST_F(DistributedTransmissionTest, Telephony_DistributedTransmissionTest_003, session->OnSessionShutdown(66); session->OnSessionShutdown(session->serverSocket_); session->serverSocket_ = 0; - - session->serverSocket_ = INVALID_SOCKET_ID + 1; - EXPECT_NO_THROW(session->Create("123")); - session->serverSocket_ = INVALID_SOCKET_ID; - EXPECT_NO_THROW(session->Destroy()); - session->serverSocket_ = INVALID_SOCKET_ID + 1; - EXPECT_NO_THROW(session->Destroy()); + session->Destroy(); EXPECT_EQ(session->serverSocket_, INVALID_SOCKET_ID); } diff --git a/test/unittest/ui_client/ui_client_test.cpp b/test/unittest/ui_client/ui_client_test.cpp index 36afc12096ae7d822da2795acd3c841bf0686537..181426673d2b6fe71bd195918573521c6a5c002c 100644 --- a/test/unittest/ui_client/ui_client_test.cpp +++ b/test/unittest/ui_client/ui_client_test.cpp @@ -1003,11 +1003,11 @@ void ControlCamera() std::cout << "please input cameraId(1~3):" << std::endl; std::string cameraId = ""; std::cin >> cameraId; - std::u16string u16CameraId; - u16CameraId.clear(); - u16CameraId = Str8ToStr16(cameraId); + std::u16string CameraID; + CameraID.clear(); + CameraID = Str8ToStr16(cameraId); - int32_t ret = g_clientPtr->ControlCamera(callId, u16CameraId); + int32_t ret = g_clientPtr->ControlCamera(callId, CameraID); std::cout << "return value:" << ret << std::endl; std::cout << "ControlCamera done" << std::endl; @@ -1103,20 +1103,20 @@ void SetPausePicture() void SetDeviceDirection() { AccessToken token; - const int32_t deviceDirectionError1 = 50; - const int32_t deviceDirectionError2 = 350; - const int32_t deviceDirection90 = 90; + const int32_t DeviceDirectionError1 = 50; + const int32_t DeviceDirectionError2 = 350; + const int32_t DeviceDirection90 = 90; std::cout << "------SetDeviceDirection test------" << std::endl; std::cout << "please input callId:" << std::endl; int32_t callId = DEFAULT_CALL_ID; std::cin >> callId; - int32_t ret = g_clientPtr->SetDeviceDirection(callId, deviceDirectionError1); + int32_t ret = g_clientPtr->SetDeviceDirection(callId, DeviceDirectionError1); std::cout << "\n return value:" << ret << std::endl; - ret = g_clientPtr->SetDeviceDirection(callId, deviceDirectionError2); + ret = g_clientPtr->SetDeviceDirection(callId, DeviceDirectionError2); std::cout << "\n return value:" << ret << std::endl; - ret = g_clientPtr->SetDeviceDirection(callId, deviceDirection90); + ret = g_clientPtr->SetDeviceDirection(callId, DeviceDirection90); std::cout << "\n return value:" << ret << std::endl; std::cout << "SetDeviceDirection done" << std::endl; } @@ -1739,7 +1739,7 @@ void PrintfUsage() std::cout << "1000:exit\n"; } -int32_t MainExit() +int32_t mainExit() { if (OHOS::Telephony::g_clientPtr == nullptr) { std::cout << "g_clientPtr is nullptr" << std::endl; @@ -1787,7 +1787,7 @@ int32_t RunTest() } std::cout << "err: invalid input!" << std::endl; } - return MainExit(); + return mainExit(); } } // namespace Telephony } // namespace OHOS @@ -1805,7 +1805,7 @@ int32_t main() switch (code) { case static_cast(OHOS::Telephony::CallManagerInterfaceType::INTERFACE_CALL_MANAGER_TYPE): OHOS::Telephony::RunTest(); - OHOS::Telephony::MainExit(); + OHOS::Telephony::mainExit(); break; case static_cast(OHOS::Telephony::CallManagerInterfaceType::INTERFACE_BLUETOOTH_CALL_TYPE): { std::unique_ptr testPtr = diff --git a/utils/include/call_dialog.h b/utils/include/call_dialog.h index af1edae1181443e60f4eb95f39eda02b73d2d9d5..0b2de40aaf5c7fd98ebb27ca69d15b51ca1d8d59 100644 --- a/utils/include/call_dialog.h +++ b/utils/include/call_dialog.h @@ -34,15 +34,14 @@ public: int32_t &callId, int32_t &videoState, bool isVideo); void DialogCallingPrivacyModeExtension(Rosen::FoldStatus foldStatus); void DialogProcessMMICodeExtension(); - private: bool DialogConnectExtensionAbility(const AAFwk::Want &want, const std::string commandStr); bool CallSettingDialogConnectExtensionAbility(const AAFwk::Want &want, const std::string commandStr); - std::string BuildStartCommand(const std::string &dialogReason, int32_t slotId); std::string BuildStartPrivpacyModeCommand(const std::string &dialogReason, std::u16string &number, int32_t &accountId, int32_t &videoState, int32_t &dialType, int32_t &dialScene, int32_t &callType, bool isVideo); std::string BuildStartAnswerPrivpacyModeCommand(const std::string &dialogReason, int32_t &callId, int32_t &videoState, bool isVideo); + std::string BuildStartCommand(const std::string &dialogReason, int32_t slotId); std::string BuildCallingPrivacyModeCommand(int32_t &videoState); std::string BuildProcessMMICodeCommand(); }; diff --git a/utils/include/call_number_utils.h b/utils/include/call_number_utils.h index 3ed5e6c05eb6a1080246764619fe75bb7248023c..405366d324238e09f859a0233aded2b67a7d98f3 100644 --- a/utils/include/call_number_utils.h +++ b/utils/include/call_number_utils.h @@ -60,7 +60,6 @@ public: bool RegexMatchMmi(const std::string &number); std::string RemoveSeparatorsPhoneNumber(const std::string &phoneString); std::string RemovePostDialPhoneNumber(const std::string &phoneString); - bool HasAlphabetInPhoneNum(const std::string &inputValue); bool HasBCPhoneNumber(const std::string &phoneNumber); bool SelectAccountId(int32_t slotId, AppExecFwk::PacMap &extras); int32_t QueryNumberLocationInfo(std::string &numberLocation, std::string accountNumber); diff --git a/utils/include/motion_recognition.h b/utils/include/motion_recognition.h index ef9db67d914f9fe7568f105fd03f7f9334655ea4..97af2404f78a7e598a5fb6a962782db8a3945398 100644 --- a/utils/include/motion_recognition.h +++ b/utils/include/motion_recognition.h @@ -43,12 +43,11 @@ friend MotionRecogntion; public: MotionPickupSubscriber() = delete; ~MotionPickupSubscriber() = default; + static bool isMotionPickupSubscribed_; private: static void SubscribePickupMotion(); static void UnsubscribePickupMotion(); - - static bool isMotionPickupSubscribed_; }; class MotionCloseToEarSubscriber { @@ -57,12 +56,11 @@ friend MotionRecogntion; public: MotionCloseToEarSubscriber() = delete; ~MotionCloseToEarSubscriber() = default; + static bool isMotionCloseToEarSubscribed_; private: static void SubscribeCloseToEarMotion(); static void UnsubscribeCloseToEarMotion(); - - static bool isMotionCloseToEarSubscribed_; }; class MotionFlipSubscriber { @@ -71,12 +69,11 @@ friend MotionRecogntion; public: MotionFlipSubscriber() = delete; ~MotionFlipSubscriber() = default; + static bool isMotionFlipSubscribed_; private: static void SubscribeFlipMotion(); static void UnsubscribeFlipMotion(); - - static bool isMotionFlipSubscribed_; }; #endif } // namespace Telephony diff --git a/utils/include/number_identity_data_base_helper.h b/utils/include/number_identity_data_base_helper.h index 851e99f6bfbc737094461eec84c94ae9a0c69917..30facf48a1e435b630d01fad186edc9f7e50d5fe 100644 --- a/utils/include/number_identity_data_base_helper.h +++ b/utils/include/number_identity_data_base_helper.h @@ -35,7 +35,7 @@ public: bool Query(std::string &numberLocation, DataShare::DataSharePredicates &predicates); bool QueryYellowPageAndMark(NumberMarkInfo &numberMarkInfo, DataShare::DataSharePredicates &predicates); bool SetMarkInfoValues(std::shared_ptr &resultSet, NumberMarkInfo &numberMarkInfo); - static constexpr const char *NUMBER_IDENTITY_URI = "datashare:///numberlocationability"; + static constexpr const char *NUMBER_IDENTITY_URI = "datashare:///com.huawei.homs.numberlocationability"; private: std::shared_ptr CreateDataShareHelper(std::string uri); }; diff --git a/utils/include/timer.h b/utils/include/timer.h index 5d2ed0e5e95c9b5b60474205cc634936a5aaed86..e533313944183ddb3e30d579c04fe907bb8b867b 100644 --- a/utils/include/timer.h +++ b/utils/include/timer.h @@ -57,10 +57,13 @@ public: std::this_thread::sleep_for(std::chrono::milliseconds(interval)); taskFun(); } - std::lock_guard locker(mutex_); - stopStatus_ = true; - tryStopFlag_ = false; - timerCond_.notify_one(); + + { + std::lock_guard locker(mutex_); + stopStatus_ = true; + tryStopFlag_ = false; + timerCond_.notify_one(); + } }).detach(); } diff --git a/utils/src/call_number_utils.cpp b/utils/src/call_number_utils.cpp index a1530da3573748ec02d8ebf10ec1df52ce1b0fda..358f2ab13ca8586cced8d4b7df53a9d7c37d8f94 100644 --- a/utils/src/call_number_utils.cpp +++ b/utils/src/call_number_utils.cpp @@ -272,22 +272,6 @@ std::string CallNumberUtils::RemovePostDialPhoneNumber(const std::string &phoneS return newString; } -bool CallNumberUtils::HasAlphabetInPhoneNum(const std::string &inputValue) -{ - if (inputValue.empty()) { - TELEPHONY_LOGE("HasAlphabetInPhoneNum return, input is empty."); - return true; - } - for (char c : inputValue) { - if (((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))) { - TELEPHONY_LOGE("The Phone Number contains letter"); - return true; - } - } - TELEPHONY_LOGI("The Phone Number is valid"); - return false; -} - bool CallNumberUtils::HasBCPhoneNumber(const std::string &phoneNumber) { int32_t phoneNumberStart = 0; diff --git a/utils/src/call_setting_ability_connection.cpp b/utils/src/call_setting_ability_connection.cpp index 6cf67af4a72fde2c2fb8b0370d2bf857f5775782..67f07eea27fcf72e9b4dae8eaeb8482f75b2e0c9 100644 --- a/utils/src/call_setting_ability_connection.cpp +++ b/utils/src/call_setting_ability_connection.cpp @@ -34,9 +34,9 @@ void CallSettingAbilityConnection::OnAbilityConnectDone(const AppExecFwk::Elemen MessageOption option; data.WriteInt32(PARAM_NUM); data.WriteString16(u"bundleName"); - data.WriteString16(u"com.callsetting"); + data.WriteString16(u"com.huawei.hmos.callsetting"); data.WriteString16(u"abilityName"); - data.WriteString16(u"com.callsetting.SatelliteCallDialogAbility"); + data.WriteString16(u"com.huawei.hmos.callsetting.CallSettingDialogAbility"); data.WriteString16(u"parameters"); data.WriteString16(Str8ToStr16(commandStr_)); int32_t sendRequestRet = remoteObject->SendRequest(AAFwk::IAbilityConnection::ON_ABILITY_CONNECT_DONE, diff --git a/utils/src/motion_recognition.cpp b/utils/src/motion_recognition.cpp index fc4b2772a78f94eaeec0860d5cfb63aab11b1ad7..c1b32502284a2985290b2294833f37ffe36a5037 100644 --- a/utils/src/motion_recognition.cpp +++ b/utils/src/motion_recognition.cpp @@ -60,6 +60,9 @@ constexpr int32_t MOTION_TYPE_CLOSE_TO_EAR = 300; //来电铃声减弱总时长 constexpr int32_t REDUCE_RING_TOTAL_LENGTH = 1500000; //us +//最大铃声音量 +constexpr int32_t MAX_RINGTONE_VOLUME = 15; + /** * @brief 翻转方向 * @@ -155,21 +158,21 @@ void MotionRecogntion::ReduceRingToneVolume() float value = 0.0f; int32_t currentVolume = DelayedSingleton::GetInstance()->GetVolume( AudioStandard::AudioVolumeType::STREAM_RING); - if (currentVolume <= 1) { + if (currentVolume <= 1 || currentVolume > MAX_RINGTONE_VOLUME) { TELEPHONY_LOGE("currentVolume = %{public}d, return it", currentVolume); return; } float beginVolumeDb = DelayedSingleton::GetInstance()->GetSystemRingVolumeInDb(currentVolume); - if (beginVolumeDb == 0.0f) { - TELEPHONY_LOGE("GetSystemRingVolumeInDb fail"); + if (beginVolumeDb <= 0.0f || beginVolumeDb > 1.0f) { + TELEPHONY_LOGE("GetSystemRingVolumeInDb fail or beginVolumDb unexpect"); return; } int32_t reduceCount = currentVolume - 1; while (count < reduceCount) { count++; float endVolumeDb = DelayedSingleton::GetInstance()->GetSystemRingVolumeInDb(currentVolume - count); - if (endVolumeDb == 0.0f || beginVolumeDb <= endVolumeDb) { - TELEPHONY_LOGE("GetSystemRingVolumeInDb fail or beginVolumeDb unexpected"); + if (endVolumeDb <= 0.0f || endVolumeDb > 1.0f || beginVolumeDb <= endVolumeDb) { + TELEPHONY_LOGE("GetSystemRingVolumeInDb fail or endVolumeDd unexpected"); return; } DelayedSingleton::GetInstance()->SetRingToneVolume(endVolumeDb / beginVolumeDb); diff --git a/utils/src/number_identity_data_base_helper.cpp b/utils/src/number_identity_data_base_helper.cpp index 23c6110ce524508cd1fe63f223049dcd4ec7fda8..36c0ddf037b70c3fa001900117cd2338045923a4 100644 --- a/utils/src/number_identity_data_base_helper.cpp +++ b/utils/src/number_identity_data_base_helper.cpp @@ -25,7 +25,7 @@ namespace OHOS { namespace Telephony { -static constexpr const char *NUMBER_MARK_INFO_URI = "datashare:///numbermarkability/number_mark_info"; +static constexpr const char *NUMBER_MARK_INFO_URI = "datashare:///com.huawei.hmos.numbermarkability/number_mark_info"; const char *NUMBER_LOCATION = "number_location"; const char *MARK_TYPE = "markType"; const char *MARK_CONTENT = "markContent"; @@ -40,7 +40,6 @@ NumberIdentityDataBaseHelper::~NumberIdentityDataBaseHelper() {} std::shared_ptr NumberIdentityDataBaseHelper::CreateDataShareHelper(std::string uri) { - TELEPHONY_LOGI("uri: %{public}s", uri.c_str()); auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (saManager == nullptr) { TELEPHONY_LOGE("Get system ability mgr failed."); @@ -173,6 +172,8 @@ bool NumberIdentityDataBaseHelper::SetMarkInfoValues(std::shared_ptr