* Copyright (C) 2022 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.
*/
#define private public
#define protected public
#include "gtest/gtest.h"
#include "ims_call_callback_stub.h"
#include "ipc_types.h"
#include "ims_call_callback_ipc_interface_code.h"
#include "ims_call_ipc_interface_code.h"
namespace OHOS {
namespace Telephony {
using namespace testing::ext;
class ImsCallCallbackStubTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
void SetUp();
void TearDown();
};
void ImsCallCallbackStubTest::SetUpTestCase() {}
void ImsCallCallbackStubTest::TearDownTestCase() {}
void ImsCallCallbackStubTest::SetUp() {}
void ImsCallCallbackStubTest::TearDown() {}
* @tc.number Telephony_ImsCallCallbackStubTest_0001
* @tc.name Test ImsCallCallbackStub
* @tc.desc Function test
*/
HWTEST_F(ImsCallCallbackStubTest, ImsCallCallbackStubTest_0001, Function | MediumTest | Level1)
{
ImsCallCallbackStub callBackStub;
int32_t slotId = 0;
uint32_t code = 150;
MessageParcel data;
MessageParcel reply;
MessageOption option;
RadioResponseInfo rilRadioResponse;
rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
data.WriteInt32(slotId);
data.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo));
EXPECT_NE(callBackStub.OnRemoteRequest(code, data, reply, option), IPC_STUB_UNKNOW_TRANS_ERR);
code = static_cast<uint32_t>(ImsCallInterfaceCode::IMS_ANSWER);
callBackStub.OnRemoteRequest(code, data, reply, option);
EXPECT_NE(callBackStub.OnDialResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnHangUpResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnRejectResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnAnswerResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnUnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnSwitchCallResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnStartDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnSendDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnStopDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnCallStateChangeReportInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnSetImsSwitchResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetImsSwitchResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetImsCallsDataResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnSetMuteResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnCallRingBackReportInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnLastCallFailReasonResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetClipResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetClipResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetClirResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetClirResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetCallTransferResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetCallTransferResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetCallRestrictionResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetCallRestrictionResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetCallWaitingResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetCallWaitingResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetColrResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetColrResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnSetColpResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetColpResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnGetImsCapResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_EQ(callBackStub.OnImsSuppExtResponseInner(data, reply), TELEPHONY_SUCCESS);
}
* @tc.number Telephony_ImsCallCallbackStubTest_0002
* @tc.name Test ImsCallCallbackStub
* @tc.desc Function test
*/
HWTEST_F(ImsCallCallbackStubTest, ImsCallCallbackStubTest_0002, Function | MediumTest | Level1)
{
ImsCallCallbackStub callBackStub;
int32_t slotId = 0;
MessageParcel data;
MessageParcel reply;
RadioResponseInfo rilRadioResponse;
rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
data.WriteInt32(slotId);
data.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo));
EXPECT_EQ(callBackStub.OnCombineConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnInviteToConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnReceiveUpdateCallMediaModeRequestInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnReceiveUpdateCallMediaModeResponseInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnCallSessionEventChangedInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnPeerDimensionsChangedInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnCallDataUsageChangedInner(data, reply), TELEPHONY_SUCCESS);
EXPECT_NE(callBackStub.OnCameraCapabilitiesChangedInner(data, reply), TELEPHONY_SUCCESS);
callBackStub.DialResponse(slotId, rilRadioResponse);
callBackStub.HangUpResponse(slotId, rilRadioResponse);
callBackStub.RejectWithReasonResponse(slotId, rilRadioResponse);
callBackStub.AnswerResponse(slotId, rilRadioResponse);
callBackStub.HoldCallResponse(slotId, rilRadioResponse);
callBackStub.UnHoldCallResponse(slotId, rilRadioResponse);
callBackStub.SwitchCallResponse(slotId, rilRadioResponse);
callBackStub.StartDtmfResponse(slotId, rilRadioResponse);
callBackStub.StopDtmfResponse(slotId, rilRadioResponse);
callBackStub.SetImsSwitchResponse(slotId, rilRadioResponse);
callBackStub.GetImsSwitchResponse(slotId, rilRadioResponse);
callBackStub.CombineConferenceResponse(slotId, rilRadioResponse);
callBackStub.InviteToConferenceResponse(slotId, rilRadioResponse);
callBackStub.GetImsCallsDataResponse(slotId, rilRadioResponse);
int32_t callIndex = 0;
callBackStub.SendDtmfResponse(slotId, rilRadioResponse, callIndex);
callBackStub.CallStateChangeReport(slotId);
ImsCurrentCallList callList;
callBackStub.GetImsCallsDataResponse(slotId, callList);
ImsCallModeReceiveInfo callModeResponse;
callBackStub.ReceiveUpdateCallMediaModeRequest(slotId, callModeResponse);
callBackStub.ReceiveUpdateCallMediaModeResponse(slotId, callModeResponse);
MuteControlResponse response;
EXPECT_EQ(callBackStub.SetMuteResponse(slotId, response), TELEPHONY_SUCCESS);
slotId = -100;
EXPECT_EQ(callBackStub.SwitchCallResponse(slotId, rilRadioResponse), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.SendDtmfResponse(slotId, rilRadioResponse, callIndex), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.CallStateChangeReport(slotId), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetImsCallsDataResponse(slotId, callList), TELEPHONY_ERR_LOCAL_PTR_NULL);
}
* @tc.number Telephony_ImsCallCallbackStubTest_0003
* @tc.name Test ImsCallCallbackStub
* @tc.desc Function test
*/
HWTEST_F(ImsCallCallbackStubTest, ImsCallCallbackStubTest_0003, Function | MediumTest | Level1)
{
ImsCallCallbackStub callBackStub;
int32_t slotId = 0;
int32_t active = 0;
callBackStub.GetImsSwitchResponse(slotId, active);
RingbackVoice info;
callBackStub.CallRingBackReport(slotId, info);
DisconnectedDetails details;
callBackStub.LastCallFailReasonResponse(slotId, details);
SsBaseResult baseResult;
callBackStub.SetClipResponse(slotId, baseResult);
GetClipResult clipResult;
callBackStub.GetClipResponse(slotId, clipResult);
GetClirResult clirResult;
callBackStub.GetClirResponse(slotId, clirResult);
callBackStub.SetClirResponse(slotId, baseResult);
CallForwardQueryInfoList cFQueryList;
callBackStub.GetCallTransferResponse(slotId, cFQueryList);
callBackStub.SetCallTransferResponse(slotId, baseResult);
CallRestrictionResult callRestriResult;
callBackStub.GetCallRestrictionResponse(slotId, callRestriResult);
callBackStub.SetCallTransferResponse(slotId, baseResult);
CallWaitResult waitResult;
callBackStub.GetCallWaitingResponse(slotId, waitResult);
callBackStub.SetCallWaitingResponse(slotId, baseResult);
GetColrResult colrResult;
callBackStub.GetColrResponse(slotId, colrResult);
callBackStub.SetColrResponse(slotId, baseResult);
GetColpResult colpResult;
callBackStub.GetColpResponse(slotId, colpResult);
callBackStub.SetColpResponse(slotId, baseResult);
ImsCallSessionEventInfo callSessionEventInfo;
callBackStub.CallSessionEventChanged(slotId, callSessionEventInfo);
slotId = -100;
EXPECT_EQ(callBackStub.GetImsSwitchResponse(slotId, active), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.CallRingBackReport(slotId, info), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.LastCallFailReasonResponse(slotId, details), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetClipResponse(slotId, clipResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetClirResponse(slotId, clirResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetCallTransferResponse(slotId, cFQueryList), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetCallRestrictionResponse(slotId, callRestriResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetCallWaitingResponse(slotId, waitResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetColrResponse(slotId, colrResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetColpResponse(slotId, colpResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.CallSessionEventChanged(slotId, callSessionEventInfo), TELEPHONY_ERR_LOCAL_PTR_NULL);
}
* @tc.number Telephony_ImsCallCallbackStubTest_0004
* @tc.name Test ImsCallCallbackStub
* @tc.desc Function test
*/
HWTEST_F(ImsCallCallbackStubTest, ImsCallCallbackStubTest_0004, Function | MediumTest | Level1)
{
ImsCallCallbackStub callBackStub;
int32_t slotId = 0;
ImsCallPeerDimensionsInfo callPeerDimensionsInfo;
callBackStub.PeerDimensionsChanged(slotId, callPeerDimensionsInfo);
ImsCallDataUsageInfo callDataUsageInfo;
callBackStub.CallDataUsageChanged(slotId, callDataUsageInfo);
CameraCapabilitiesInfo cameraCapabilitiesInfo;
callBackStub.CameraCapabilitiesChanged(slotId, cameraCapabilitiesInfo);
SsRequestCommand ss;
int32_t index = 0;
callBackStub.GetSsRequestCommand(slotId, index, ss);
CallForwardQueryInfoList cFQueryList;
CallForwardQueryInfoList cFQueryResultList;
callBackStub.BuildCallForwardInfo(cFQueryList, cFQueryResultList);
int32_t eventId = 0;
RadioResponseInfo rilRadioResponse;
rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
callBackStub.SendEvent(slotId, eventId, rilRadioResponse);
SsBaseResult baseResult;
callBackStub.SendEvent(slotId, eventId, baseResult);
ImsCallModeReceiveInfo callModeInfo;
callBackStub.SendEvent(slotId, eventId, callModeInfo);
ImsCapFromChip imsCap = {0};
callBackStub.GetImsCapResponse(slotId, imsCap);
int32_t code = 2;
int32_t callId = 1;
callBackStub.GetImsSuppExtResponse(slotId, code, callId);
slotId = -100;
EXPECT_EQ(callBackStub.PeerDimensionsChanged(slotId, callPeerDimensionsInfo), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.CallDataUsageChanged(slotId, callDataUsageInfo), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.CameraCapabilitiesChanged(slotId, cameraCapabilitiesInfo), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetSsRequestCommand(slotId, index, ss), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.SendEvent(slotId, eventId, rilRadioResponse), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.SendEvent(slotId, eventId, baseResult), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.SendEvent(slotId, eventId, callModeInfo), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetImsCapResponse(slotId, imsCap), TELEPHONY_ERR_LOCAL_PTR_NULL);
EXPECT_EQ(callBackStub.GetImsSuppExtResponse(slotId, code, callId), TELEPHONY_ERR_LOCAL_PTR_NULL);
}
}
}