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) {
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) {
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) {
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) {
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() ||
98 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
99 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
104 * Test IRadio.hangupForegroundResumeBackground() for the response returned.
106 TEST_F(RadioHidlTest, hangupForegroundResumeBackground) {
109 radio->hangupForegroundResumeBackground(serial);
110 EXPECT_EQ(std::cv_status::no_timeout, wait());
111 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
112 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
114 if (cardStatus.cardState == CardState::ABSENT) {
115 ASSERT_TRUE(CheckGeneralError() ||
116 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
117 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
122 * Test IRadio.switchWaitingOrHoldingAndActive() for the response returned.
124 TEST_F(RadioHidlTest, switchWaitingOrHoldingAndActive) {
127 radio->switchWaitingOrHoldingAndActive(serial);
128 EXPECT_EQ(std::cv_status::no_timeout, wait());
129 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
130 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
132 if (cardStatus.cardState == CardState::ABSENT) {
133 ASSERT_TRUE(CheckGeneralError() ||
134 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
135 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
140 * Test IRadio.conference() for the response returned.
142 TEST_F(RadioHidlTest, conference) {
145 radio->conference(serial);
146 EXPECT_EQ(std::cv_status::no_timeout, wait());
147 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
148 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
150 if (cardStatus.cardState == CardState::ABSENT) {
151 ASSERT_TRUE(CheckGeneralError() ||
152 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
153 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
158 * Test IRadio.rejectCall() for the response returned.
160 TEST_F(RadioHidlTest, rejectCall) {
163 radio->rejectCall(serial);
164 EXPECT_EQ(std::cv_status::no_timeout, wait());
165 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
166 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
168 if (cardStatus.cardState == CardState::ABSENT) {
169 ASSERT_TRUE(CheckGeneralError() ||
170 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
171 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
176 * Test IRadio.getLastCallFailCause() for the response returned.
178 TEST_F(RadioHidlTest, getLastCallFailCause) {
181 radio->getLastCallFailCause(serial);
182 EXPECT_EQ(std::cv_status::no_timeout, wait());
183 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
184 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
186 if (cardStatus.cardState == CardState::ABSENT) {
187 ASSERT_TRUE(CheckGeneralError() ||
188 radioRsp->rspInfo.error == RadioError::NONE);
193 * Test IRadio.sendUssd() for the response returned.
195 TEST_F(RadioHidlTest, sendUssd) {
197 radio->sendUssd(serial, hidl_string("test"));
198 EXPECT_EQ(std::cv_status::no_timeout, wait());
199 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
200 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
202 if (cardStatus.cardState == CardState::ABSENT) {
203 ASSERT_TRUE(CheckGeneralError() ||
204 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
205 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
206 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
211 * Test IRadio.cancelPendingUssd() for the response returned.
213 TEST_F(RadioHidlTest, cancelPendingUssd) {
216 radio->cancelPendingUssd(serial);
217 EXPECT_EQ(std::cv_status::no_timeout, wait());
218 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
219 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
221 if (cardStatus.cardState == CardState::ABSENT) {
222 ASSERT_TRUE(CheckGeneralError() ||
223 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
224 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
229 * Test IRadio.getCallForwardStatus() for the response returned.
231 TEST_F(RadioHidlTest, getCallForwardStatus) {
233 CallForwardInfo callInfo;
234 memset(&callInfo, 0, sizeof(callInfo));
235 callInfo.number = hidl_string();
237 radio->getCallForwardStatus(serial, callInfo);
238 EXPECT_EQ(std::cv_status::no_timeout, wait());
239 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
240 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
242 if (cardStatus.cardState == CardState::ABSENT) {
243 ASSERT_TRUE(CheckGeneralError() ||
244 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
245 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
246 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
251 * Test IRadio.setCallForward() for the response returned.
253 TEST_F(RadioHidlTest, setCallForward) {
255 CallForwardInfo callInfo;
256 memset(&callInfo, 0, sizeof(callInfo));
257 callInfo.number = hidl_string();
259 radio->setCallForward(serial, callInfo);
260 EXPECT_EQ(std::cv_status::no_timeout, wait());
261 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
262 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
264 if (cardStatus.cardState == CardState::ABSENT) {
265 ASSERT_TRUE(CheckGeneralError() ||
266 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
267 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
268 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
273 * Test IRadio.getCallWaiting() for the response returned.
275 TEST_F(RadioHidlTest, getCallWaiting) {
278 radio->getCallWaiting(serial, 1);
279 EXPECT_EQ(std::cv_status::no_timeout, wait());
280 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
281 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
283 if (cardStatus.cardState == CardState::ABSENT) {
284 ASSERT_TRUE(CheckGeneralError() ||
285 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
286 radioRsp->rspInfo.error == RadioError::NONE ||
287 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
292 * Test IRadio.setCallWaiting() for the response returned.
294 TEST_F(RadioHidlTest, setCallWaiting) {
297 radio->setCallWaiting(serial, true, 1);
298 EXPECT_EQ(std::cv_status::no_timeout, wait());
299 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
300 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
302 if (cardStatus.cardState == CardState::ABSENT) {
303 ASSERT_TRUE(CheckGeneralError() ||
304 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
305 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
306 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
311 * Test IRadio.acceptCall() for the response returned.
313 TEST_F(RadioHidlTest, acceptCall) {
316 radio->acceptCall(serial);
317 EXPECT_EQ(std::cv_status::no_timeout, wait());
318 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
319 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
321 if (cardStatus.cardState == CardState::ABSENT) {
322 ASSERT_TRUE(CheckGeneralError() ||
323 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
324 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
329 * Test IRadio.separateConnection() for the response returned.
331 TEST_F(RadioHidlTest, separateConnection) {
334 radio->separateConnection(serial, 1);
335 EXPECT_EQ(std::cv_status::no_timeout, wait());
336 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
337 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
339 if (cardStatus.cardState == CardState::ABSENT) {
340 ASSERT_TRUE(CheckGeneralError() ||
341 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
342 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
343 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
348 * Test IRadio.explicitCallTransfer() for the response returned.
350 TEST_F(RadioHidlTest, explicitCallTransfer) {
353 radio->explicitCallTransfer(serial);
354 EXPECT_EQ(std::cv_status::no_timeout, wait());
355 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
356 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
358 if (cardStatus.cardState == CardState::ABSENT) {
359 ASSERT_TRUE(CheckGeneralError() ||
360 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
361 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
366 * Test IRadio.sendCDMAFeatureCode() for the response returned.
368 TEST_F(RadioHidlTest, sendCDMAFeatureCode) {
371 radio->sendCDMAFeatureCode(serial, hidl_string());
372 EXPECT_EQ(std::cv_status::no_timeout, wait());
373 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
374 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
376 if (cardStatus.cardState == CardState::ABSENT) {
377 ASSERT_TRUE(CheckGeneralError() ||
378 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
379 radioRsp->rspInfo.error == RadioError::NONE ||
380 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
381 radioRsp->rspInfo.error == RadioError::INVALID_MODEM_STATE ||
382 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
387 * Test IRadio.sendDtmf() for the response returned.
389 TEST_F(RadioHidlTest, sendDtmf) {
392 radio->sendDtmf(serial, "1");
393 EXPECT_EQ(std::cv_status::no_timeout, wait());
394 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
395 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
397 if (cardStatus.cardState == CardState::ABSENT) {
398 ASSERT_TRUE(CheckGeneralError() ||
399 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
400 radioRsp->rspInfo.error == RadioError::NONE ||
401 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
402 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
407 * Test IRadio.startDtmf() for the response returned.
409 TEST_F(RadioHidlTest, startDtmf) {
412 radio->startDtmf(serial, "1");
413 EXPECT_EQ(std::cv_status::no_timeout, wait());
414 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
415 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
417 if (cardStatus.cardState == CardState::ABSENT) {
418 ASSERT_TRUE(CheckGeneralError() ||
419 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
420 radioRsp->rspInfo.error == RadioError::NONE ||
421 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
422 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
427 * Test IRadio.stopDtmf() for the response returned.
429 TEST_F(RadioHidlTest, stopDtmf) {
432 radio->stopDtmf(serial);
433 EXPECT_EQ(std::cv_status::no_timeout, wait());
434 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
435 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
437 if (cardStatus.cardState == CardState::ABSENT) {
438 ASSERT_TRUE(CheckGeneralError() ||
439 radioRsp->rspInfo.error == RadioError::NONE ||
440 radioRsp->rspInfo.error == RadioError::INVALID_CALL_ID ||
441 radioRsp->rspInfo.error == RadioError::MODEM_ERR);
446 * Test IRadio.setMute() for the response returned.
448 TEST_F(RadioHidlTest, setMute) {
451 radio->setMute(serial, true);
452 EXPECT_EQ(std::cv_status::no_timeout, wait());
453 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
454 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
456 if (cardStatus.cardState == CardState::ABSENT) {
457 ASSERT_TRUE(CheckGeneralError() ||
458 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
459 radioRsp->rspInfo.error == RadioError::NONE);
464 * Test IRadio.getMute() for the response returned.
466 TEST_F(RadioHidlTest, getMute) {
469 radio->getMute(serial);
470 EXPECT_EQ(std::cv_status::no_timeout, wait());
471 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
472 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
474 if (cardStatus.cardState == CardState::ABSENT) {
475 ASSERT_TRUE(radioRsp->rspInfo.error == RadioError::NONE);
480 * Test IRadio.sendBurstDtmf() for the response returned.
482 TEST_F(RadioHidlTest, sendBurstDtmf) {
485 radio->sendBurstDtmf(serial, "1", 0, 0);
486 EXPECT_EQ(std::cv_status::no_timeout, wait());
487 EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
488 EXPECT_EQ(serial, radioRsp->rspInfo.serial);
490 if (cardStatus.cardState == CardState::ABSENT) {
491 ASSERT_TRUE(CheckGeneralError() ||
492 radioRsp->rspInfo.error == RadioError::INVALID_ARGUMENTS ||
493 radioRsp->rspInfo.error == RadioError::INVALID_STATE ||
494 radioRsp->rspInfo.error == RadioError::MODEM_ERR);