1 /*
2 * Copyright (C) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #define private public
17 #define protected public
18
19 #include "gtest/gtest.h"
20 #include "hril_timer_callback.h"
21 #include "hril_event.h"
22 #include "hril_request.h"
23 #include "hril_enum.h"
24 #include "hril_base.h"
25 #include "hril_sms.h"
26 #include "hril_manager.h"
27
28 namespace OHOS {
29 namespace Telephony {
30 using namespace testing::ext;
31
32 class RilAdapterServiceTest : public testing::Test {
33 public:
34 static void SetUpTestCase();
35 static void TearDownTestCase();
36 void SetUp();
37 void TearDown();
38 };
SetUpTestCase()39 void RilAdapterServiceTest::SetUpTestCase() {}
40
TearDownTestCase()41 void RilAdapterServiceTest::TearDownTestCase() {}
42
SetUp()43 void RilAdapterServiceTest::SetUp() {}
44
TearDown()45 void RilAdapterServiceTest::TearDown() {}
46
47 /**
48 * @tc.number Telephony_ImsBaseConnectionTest_0001
49 * @tc.name Test HRilBase
50 * @tc.desc Function test
51 */
52 HWTEST_F(RilAdapterServiceTest, HRilBaseTest_0001, Function | MediumTest | Level1)
53 {
54 char **response = nullptr;
55 int32_t index = 0;
56 int32_t len = 0;
57 int32_t slotId = 0;
58 HRilBase base(slotId);
59 EXPECT_EQ(base.ConvertHexStringToInt(response, index, len), HRIL_ERR_GENERIC_FAILURE);
60
61 HDI::Ril::V1_1::RilRadioResponseInfo responseInfo;
62 responseInfo.slotId = slotId;
63 base.BuildIHRilRadioResponseInfo(responseInfo);
64
65 char str[] = "0123456789ABCDEF";
66 EXPECT_EQ(base.StringToHex(str, strlen(str)), "30313233343536373839414243444546");
67 }
68
69 /**
70 * @tc.number Telephony_HRilSmsTest_0002
71 * @tc.name Test HRilSms
72 * @tc.desc Function test
73 */
74 HWTEST_F(RilAdapterServiceTest, HRilSmsTest_0002, Function | MediumTest | Level1)
75 {
76 int32_t slotId = 0;
77 HRilSms hRilSms(slotId);
78 EXPECT_FALSE(hRilSms.IsSmsRespOrNotify(HREQ_CALL_BASE));
79 EXPECT_TRUE(hRilSms.IsSmsRespOrNotify(HREQ_SMS_BASE));
80 EXPECT_FALSE(hRilSms.IsSmsRespOrNotify(HREQ_SIM_BASE));
81 EXPECT_TRUE(hRilSms.IsSmsRespOrNotify(HNOTI_SMS_BASE));
82 EXPECT_FALSE(hRilSms.IsSmsRespOrNotify(HNOTI_SIM_BASE));
83
84 int32_t serialId = 0;
85 OHOS::HDI::Ril::V1_1::GsmSmsMessageInfo gsmSmsMessageInfo;
86 hRilSms.SendGsmSms(serialId, gsmSmsMessageInfo);
87
88 OHOS::HDI::Ril::V1_1::SendCdmaSmsMessageInfo cdmaSmsMessageInfo;
89 hRilSms.SendCdmaSms(serialId, cdmaSmsMessageInfo);
90
91 int32_t index = 0;
92 HRilSmsReq smsFuncs;
93 hRilSms.RegisterSmsFuncs(&smsFuncs);
94 EXPECT_NE(hRilSms.DelSimMessage(serialId, index), HRIL_ERR_INVALID_PARAMETER);
95
96 OHOS::HDI::Ril::V1_1::CdmaCBConfigInfoList cellBroadcastInfoList;
97 EXPECT_NE(hRilSms.SetCdmaCBConfig(serialId, cellBroadcastInfoList), HRIL_ERR_INVALID_PARAMETER);
98
99 hRilSms.GetCdmaCBConfig(serialId);
100
101 OHOS::HDI::Ril::V1_1::ServiceCenterAddress scAddress;
102 hRilSms.SetSmscAddr(serialId, scAddress);
103 hRilSms.GetSmscAddr(serialId);
104
105 OHOS::HDI::Ril::V1_1::CBConfigInfo broadcastInfo;
106 std::string str(60000, 'a');
107 broadcastInfo.mids = str;
108 EXPECT_EQ(hRilSms.SetCBConfig(serialId, broadcastInfo), HRIL_ERR_INVALID_PARAMETER);
109 }
110
111 /**
112 * @tc.number Telephony_HRilSmsTest_0003
113 * @tc.name Test HRilSms
114 * @tc.desc Function test
115 */
116 HWTEST_F(RilAdapterServiceTest, HRilSmsTest_0003, Function | MediumTest | Level1)
117 {
118 int32_t slotId = 0;
119 HRilSms hRilSms(slotId);
120 int32_t serialId = 0;
121 OHOS::HDI::Ril::V1_1::ModeData gsmSmsMessageInfo;
122 EXPECT_NE(hRilSms.SendSmsAck(serialId, gsmSmsMessageInfo), HRIL_ERR_INVALID_PARAMETER);
123
124 OHOS::HDI::Ril::V1_1::SmsMessageIOInfo message;
125 message.pdu = "0123456789abcdefABCDEF";
126 hRilSms.AddCdmaSimMessage(serialId, message);
127
128 HRilCdmaSmsMessageInfo cdmaSmsInfo;
129 hRilSms.CreateCdmaMessageInfo(cdmaSmsInfo, message.pdu);
130
131 int32_t index = 0;
132 HRilSmsReq smsFuncs;
133 hRilSms.RegisterSmsFuncs(&smsFuncs);
134 EXPECT_NE(hRilSms.DelCdmaSimMessage(serialId, index), HRIL_ERR_INVALID_PARAMETER);
135
136 int32_t indType = 0;
137 HRilErrNumber error = HRIL_ERR_HDF_IPC_FAILURE;
138 char response[] = {"213234343345"} ;
139 size_t responseLen = strlen(response);
140 hRilSms.CBConfigNotify(indType, error, response, responseLen);
141
142 EXPECT_FALSE(hRilSms.IsSmsResponse(HREQ_CALL_BASE));
143 EXPECT_TRUE(hRilSms.IsSmsResponse(HREQ_SMS_BASE));
144 EXPECT_FALSE(hRilSms.IsSmsResponse(HREQ_SIM_BASE));
145
146 EXPECT_FALSE(hRilSms.IsSmsNotification(HREQ_SIM_BASE));
147 EXPECT_TRUE(hRilSms.IsSmsNotification(HNOTI_SMS_BASE));
148 EXPECT_FALSE(hRilSms.IsSmsNotification(HNOTI_SIM_BASE));
149 }
150 /**
151 * @tc.number Telephony_RilAdapterServiceTest_0004
152 * @tc.name Test RilAdapterService
153 * @tc.desc Function test
154 */
155 HWTEST_F(RilAdapterServiceTest, RilAdapterServiceTest_0004, Function | MediumTest | Level1)
156 {
157 HRilTimerCallback hRilTimerCallback;
158 int32_t fd = 0;
159 int16_t events = 0;
160 std::shared_ptr<void> param = std::make_shared<int>(42);
161 hRilTimerCallback.TimerCallback(fd, events, param);
162 ASSERT_NE(param, nullptr);
163
164 param = nullptr;
165 hRilTimerCallback.TimerCallback(fd, events, param);
166 ASSERT_EQ(param, nullptr);
167 }
168
169 /**
170 * @tc.number Telephony_RilAdapterServiceTest_0005
171 * @tc.name Test RilAdapterService
172 * @tc.desc Function test
173 */
174 HWTEST_F(RilAdapterServiceTest, RilAdapterServiceTest_0005, Function | MediumTest | Level1)
175 {
176 HRilTimerCallback hRilTimerCallback;
177 HRilCallbackFun func = nullptr;
178 uint8_t *param = nullptr;
179 timeval *tv = nullptr;
180 ASSERT_EQ(hRilTimerCallback.HRilSetTimerCallbackInfo(func, param, tv), nullptr);
181 }
182
183 /**
184 * @tc.number Telephony_HRilEventTest_0006
185 * @tc.name Test HRilEvent
186 * @tc.desc Function test
187 */
188 HWTEST_F(RilAdapterServiceTest, HRilEventTest_0006, Function | MediumTest | Level1)
189 {
190 HRilEvent hRilEvent;
191 int32_t index = 0;
192 hRilEvent.ProcessEvents(nullptr, index);
193 EXPECT_EQ(index, 0);
194 }
195 } // namespace Telephony
196 } // namespace OHOS