2 * Copyright (C) 2017 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <radio_hidl_hal_utils.h>
20 * Test IRadio.getCurrentCalls() for the response returned.
22 TEST_F(RadioHidlTest, getCurrentCalls) {
23 int serial = GetRandomSerialNumber();
25 radio->getCurrentCalls(serial);
26 EXPECT_EQ(std::cv_status::no_timeout, wait());
27 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
28 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
30 if (cardStatus.cardState == CardState::ABSENT) {
31 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE);
36 * Test IRadio.dial() for the response returned.
38 TEST_F(RadioHidlTest, dial) {
39 int serial = GetRandomSerialNumber();
42 memset(&dialInfo, 0, sizeof(dialInfo));
43 dialInfo.address = hidl_string("123456789");
45 radio->dial(serial, dialInfo);
46 EXPECT_EQ(std::cv_status::no_timeout, wait());
47 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
48 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
50 if (cardStatus.cardState == CardState::ABSENT) {
51 ASSERT_TRUE(CheckGeneralError() ||
52 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
53 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
54 radioRsp->rspInfo.error == RadioError::MODEM_ERR ||
55 radioRsp->rspInfo.error == RadioError::FDN_CHECK_FAILURE ||
56 radioRsp->rspInfo.error == RadioError::NO_SUBSCRIPTION ||
57 radioRsp->rspInfo.error == RadioError::NO_NETWORK_FOUND ||
58 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
59 radioRsp->rspInfo.error == RadioError::DEVICE_IN_USE ||
60 radioRsp->rspInfo.error == RadioError::MODE_NOT_SUPPORTED ||
61 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE ||
62 radioRsp->rspInfo.error == RadioError::CANCELLED);
67 * Test IRadio.hangup() for the response returned.
69 TEST_F(RadioHidlTest, hangup) {
70 int serial = GetRandomSerialNumber();
72 radio->hangup(serial, 1);
73 EXPECT_EQ(std::cv_status::no_timeout, wait());
74 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
75 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
77 if (cardStatus.cardState == CardState::ABSENT) {
78 ASSERT_TRUE(CheckGeneralError() ||
79 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
80 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
81 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
86 * Test IRadio.hangupWaitingOrBackground() for the response returned.
88 TEST_F(RadioHidlTest, hangupWaitingOrBackground) {
89 int serial = GetRandomSerialNumber();
91 radio->hangupWaitingOrBackground(serial);
92 EXPECT_EQ(std::cv_status::no_timeout, wait());
93 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
94 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
96 if (cardStatus.cardState == CardState::ABSENT) {
97 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
98 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
103 * Test IRadio.hangupForegroundResumeBackground() for the response returned.
105 TEST_F(RadioHidlTest, hangupForegroundResumeBackground) {
106 int serial = GetRandomSerialNumber();
108 radio->hangupForegroundResumeBackground(serial);
109 EXPECT_EQ(std::cv_status::no_timeout, wait());
110 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
111 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
113 if (cardStatus.cardState == CardState::ABSENT) {
114 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
115 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
120 * Test IRadio.switchWaitingOrHoldingAndActive() for the response returned.
122 TEST_F(RadioHidlTest, switchWaitingOrHoldingAndActive) {
123 int serial = GetRandomSerialNumber();
125 radio->switchWaitingOrHoldingAndActive(serial);
126 EXPECT_EQ(std::cv_status::no_timeout, wait());
127 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
128 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
130 if (cardStatus.cardState == CardState::ABSENT) {
131 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
132 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
137 * Test IRadio.conference() for the response returned.
139 TEST_F(RadioHidlTest, conference) {
140 int serial = GetRandomSerialNumber();
142 radio->conference(serial);
143 EXPECT_EQ(std::cv_status::no_timeout, wait());
144 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
145 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
147 if (cardStatus.cardState == CardState::ABSENT) {
148 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
149 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
154 * Test IRadio.rejectCall() for the response returned.
156 TEST_F(RadioHidlTest, rejectCall) {
157 int serial = GetRandomSerialNumber();
159 radio->rejectCall(serial);
160 EXPECT_EQ(std::cv_status::no_timeout, wait());
161 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
162 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
164 if (cardStatus.cardState == CardState::ABSENT) {
165 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
166 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
171 * Test IRadio.getLastCallFailCause() for the response returned.
173 TEST_F(RadioHidlTest, getLastCallFailCause) {
174 int serial = GetRandomSerialNumber();
176 radio->getLastCallFailCause(serial);
177 EXPECT_EQ(std::cv_status::no_timeout, wait());
178 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
179 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
181 if (cardStatus.cardState == CardState::ABSENT) {
182 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE);
187 * Test IRadio.sendUssd() for the response returned.
189 TEST_F(RadioHidlTest, sendUssd) {
190 int serial = GetRandomSerialNumber();
191 radio->sendUssd(serial, hidl_string("test"));
192 EXPECT_EQ(std::cv_status::no_timeout, wait());
193 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
194 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
196 if (cardStatus.cardState == CardState::ABSENT) {
197 ASSERT_TRUE(CheckGeneralError() ||
198 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
199 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
200 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
205 * Test IRadio.cancelPendingUssd() for the response returned.
207 TEST_F(RadioHidlTest, cancelPendingUssd) {
208 int serial = GetRandomSerialNumber();
210 radio->cancelPendingUssd(serial);
211 EXPECT_EQ(std::cv_status::no_timeout, wait());
212 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
213 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
215 if (cardStatus.cardState == CardState::ABSENT) {
216 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
217 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
222 * Test IRadio.getCallForwardStatus() for the response returned.
224 TEST_F(RadioHidlTest, getCallForwardStatus) {
225 int serial = GetRandomSerialNumber();
226 CallForwardInfo callInfo;
227 memset(&callInfo, 0, sizeof(callInfo));
228 callInfo.number = hidl_string();
230 radio->getCallForwardStatus(serial, callInfo);
231 EXPECT_EQ(std::cv_status::no_timeout, wait());
232 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
233 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
235 if (cardStatus.cardState == CardState::ABSENT) {
236 ASSERT_TRUE(CheckGeneralError() ||
237 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
238 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
239 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
244 * Test IRadio.setCallForward() for the response returned.
246 TEST_F(RadioHidlTest, setCallForward) {
247 int serial = GetRandomSerialNumber();
248 CallForwardInfo callInfo;
249 memset(&callInfo, 0, sizeof(callInfo));
250 callInfo.number = hidl_string();
252 radio->setCallForward(serial, callInfo);
253 EXPECT_EQ(std::cv_status::no_timeout, wait());
254 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
255 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
257 if (cardStatus.cardState == CardState::ABSENT) {
258 ASSERT_TRUE(CheckGeneralError() ||
259 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
260 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
261 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
266 * Test IRadio.getCallWaiting() for the response returned.
268 TEST_F(RadioHidlTest, getCallWaiting) {
269 int serial = GetRandomSerialNumber();
271 radio->getCallWaiting(serial, 1);
272 EXPECT_EQ(std::cv_status::no_timeout, wait());
273 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
274 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
276 if (cardStatus.cardState == CardState::ABSENT) {
277 ASSERT_TRUE(CheckGeneralError() ||
278 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
279 radioRsp->rspInfo.error == RadioError::NONE ||
280 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
285 * Test IRadio.setCallWaiting() for the response returned.
287 TEST_F(RadioHidlTest, setCallWaiting) {
288 int serial = GetRandomSerialNumber();
290 radio->setCallWaiting(serial, true, 1);
291 EXPECT_EQ(std::cv_status::no_timeout, wait());
292 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
293 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
295 if (cardStatus.cardState == CardState::ABSENT) {
296 ASSERT_TRUE(CheckGeneralError() ||
297 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
298 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
299 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
304 * Test IRadio.acceptCall() for the response returned.
306 TEST_F(RadioHidlTest, acceptCall) {
307 int serial = GetRandomSerialNumber();
309 radio->acceptCall(serial);
310 EXPECT_EQ(std::cv_status::no_timeout, wait());
311 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
312 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
314 if (cardStatus.cardState == CardState::ABSENT) {
315 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
316 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
321 * Test IRadio.separateConnection() for the response returned.
323 TEST_F(RadioHidlTest, separateConnection) {
324 int serial = GetRandomSerialNumber();
326 radio->separateConnection(serial, 1);
327 EXPECT_EQ(std::cv_status::no_timeout, wait());
328 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
329 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
331 if (cardStatus.cardState == CardState::ABSENT) {
332 ASSERT_TRUE(CheckGeneralError() ||
333 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
334 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
335 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
340 * Test IRadio.explicitCallTransfer() for the response returned.
342 TEST_F(RadioHidlTest, explicitCallTransfer) {
343 int serial = GetRandomSerialNumber();
345 radio->explicitCallTransfer(serial);
346 EXPECT_EQ(std::cv_status::no_timeout, wait());
347 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
348 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
350 if (cardStatus.cardState == CardState::ABSENT) {
351 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
352 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
357 * Test IRadio.sendCDMAFeatureCode() for the response returned.
359 TEST_F(RadioHidlTest, sendCDMAFeatureCode) {
360 int serial = GetRandomSerialNumber();
362 radio->sendCDMAFeatureCode(serial, hidl_string());
363 EXPECT_EQ(std::cv_status::no_timeout, wait());
364 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
365 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
367 if (cardStatus.cardState == CardState::ABSENT) {
368 ASSERT_TRUE(CheckGeneralError() ||
369 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
370 radioRsp->rspInfo.error == RadioError::NONE ||
371 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
372 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE ||
373 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
378 * Test IRadio.sendDtmf() for the response returned.
380 TEST_F(RadioHidlTest, sendDtmf) {
381 int serial = GetRandomSerialNumber();
383 radio->sendDtmf(serial, "1");
384 EXPECT_EQ(std::cv_status::no_timeout, wait());
385 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
386 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
388 if (cardStatus.cardState == CardState::ABSENT) {
389 ASSERT_TRUE(CheckGeneralError() ||
390 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
391 radioRsp->rspInfo.error == RadioError::NONE ||
392 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
393 radioRsp->rspInfo.error == RadioError::MODEM_ERR ||
394 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE);
399 * Test IRadio.startDtmf() for the response returned.
401 TEST_F(RadioHidlTest, startDtmf) {
402 int serial = GetRandomSerialNumber();
404 radio->startDtmf(serial, "1");
405 EXPECT_EQ(std::cv_status::no_timeout, wait());
406 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
407 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
409 if (cardStatus.cardState == CardState::ABSENT) {
410 ASSERT_TRUE(CheckGeneralError() ||
411 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
412 radioRsp->rspInfo.error == RadioError::NONE ||
413 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
414 radioRsp->rspInfo.error == RadioError::MODEM_ERR ||
415 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE);
420 * Test IRadio.stopDtmf() for the response returned.
422 TEST_F(RadioHidlTest, stopDtmf) {
423 int serial = GetRandomSerialNumber();
425 radio->stopDtmf(serial);
426 EXPECT_EQ(std::cv_status::no_timeout, wait());
427 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
428 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
430 if (cardStatus.cardState == CardState::ABSENT) {
431 ASSERT_TRUE(CheckGeneralError() || radioRsp->rspInfo.error == RadioError::NONE ||
432 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
433 radioRsp->rspInfo.error == RadioError::MODEM_ERR ||
434 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE);
439 * Test IRadio.setMute() for the response returned.
441 TEST_F(RadioHidlTest, setMute) {
442 int serial = GetRandomSerialNumber();
444 radio->setMute(serial, true);
445 EXPECT_EQ(std::cv_status::no_timeout, wait());
446 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
447 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
449 if (cardStatus.cardState == CardState::ABSENT) {
450 ASSERT_TRUE(CheckGeneralError() ||
451 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
452 radioRsp->rspInfo.error == RadioError::NONE);
457 * Test IRadio.getMute() for the response returned.
459 TEST_F(RadioHidlTest, getMute) {
460 int serial = GetRandomSerialNumber();
462 radio->getMute(serial);
463 EXPECT_EQ(std::cv_status::no_timeout, wait());
464 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
465 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
467 if (cardStatus.cardState == CardState::ABSENT) {
468 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE);
473 * Test IRadio.sendBurstDtmf() for the response returned.
475 TEST_F(RadioHidlTest, sendBurstDtmf) {
476 int serial = GetRandomSerialNumber();
478 radio->sendBurstDtmf(serial, "1", 0, 0);
479 EXPECT_EQ(std::cv_status::no_timeout, wait());
480 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
481 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
483 if (cardStatus.cardState == CardState::ABSENT) {
484 ASSERT_TRUE(CheckGeneralError() ||
485 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
486 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
487 radioRsp->rspInfo.error == RadioError::MODEM_ERR ||
488 radioRsp->rspInfo.error == RadioError::MODE_NOT_SUPPORTED);