19823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 29823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Copyright (C) 2017 The Android Open Source Project 39823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * 49823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Licensed under the Apache License, Version 2.0 (the "License"); 59823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * you may not use this file except in compliance with the License. 69823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * You may obtain a copy of the License at 79823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * 89823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * http://www.apache.org/licenses/LICENSE-2.0 99823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * 109823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Unless required by applicable law or agreed to in writing, software 119823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * distributed under the License is distributed on an "AS IS" BASIS, 129823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * See the License for the specific language governing permissions and 149823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * limitations under the License. 159823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 169823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 1787bde3312ab61714a3469f59084b40c46a6627deYuexi Ma#include <sap_hidl_hal_utils.h> 189823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 199823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 209823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test ISap.connectReq() for the response returned. 219823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 229823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, connectReq) { 23fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 24fcc61188827e1472965b36041c29b80cbe4079basqian int32_t maxMsgSize = 100; 259823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 26fcc61188827e1472965b36041c29b80cbe4079basqian sap->connectReq(token, maxMsgSize); 27fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 28fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 299823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 309823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 319823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 329823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.disconnectReq() for the response returned 339823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 349823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, disconnectReq) { 35fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 369823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 37fcc61188827e1472965b36041c29b80cbe4079basqian sap->disconnectReq(token); 38fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 39fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 409823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 419823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 429823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 439823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.apduReq() for the response returned. 449823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 459823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, apduReq) { 46fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 47fcc61188827e1472965b36041c29b80cbe4079basqian SapApduType sapApduType = SapApduType::APDU; 48fcc61188827e1472965b36041c29b80cbe4079basqian android::hardware::hidl_vec<uint8_t> command = {}; 49fcc61188827e1472965b36041c29b80cbe4079basqian 50fcc61188827e1472965b36041c29b80cbe4079basqian sap->apduReq(token, sapApduType, command); 51fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 52fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 53fcc61188827e1472965b36041c29b80cbe4079basqian 54fcc61188827e1472965b36041c29b80cbe4079basqian ASSERT_TRUE(SapResultCode::GENERIC_FAILURE == sapCb->sapResultCode || 55fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_NOT_ACCESSSIBLE == sapCb->sapResultCode || 56fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_ALREADY_POWERED_OFF == sapCb->sapResultCode || 57fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_REMOVED == sapCb->sapResultCode); 589823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 599823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 609823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 619823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.transferAtrReq() for the response returned. 629823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 639823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, transferAtrReq) { 64fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 659823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 66fcc61188827e1472965b36041c29b80cbe4079basqian sap->transferAtrReq(token); 67fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 68fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 699823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 70fcc61188827e1472965b36041c29b80cbe4079basqian ASSERT_TRUE(SapResultCode::GENERIC_FAILURE == sapCb->sapResultCode || 71fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::DATA_NOT_AVAILABLE == sapCb->sapResultCode || 72fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_ALREADY_POWERED_OFF == sapCb->sapResultCode || 73fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_REMOVED == sapCb->sapResultCode); 749823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 759823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 769823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 779823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.powerReq() for the response returned. 789823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 799823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, powerReq) { 80fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 81fcc61188827e1472965b36041c29b80cbe4079basqian bool state = true; 82fcc61188827e1472965b36041c29b80cbe4079basqian 83fcc61188827e1472965b36041c29b80cbe4079basqian sap->powerReq(token, state); 84fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 85fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 86fcc61188827e1472965b36041c29b80cbe4079basqian 87fcc61188827e1472965b36041c29b80cbe4079basqian ASSERT_TRUE(SapResultCode::GENERIC_FAILURE == sapCb->sapResultCode || 88fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_NOT_ACCESSSIBLE == sapCb->sapResultCode || 89fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_ALREADY_POWERED_OFF == sapCb->sapResultCode || 90fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_REMOVED == sapCb->sapResultCode || 91fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_ALREADY_POWERED_ON == sapCb->sapResultCode); 929823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 939823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 949823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 959823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.resetSimReq() for the response returned. 969823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 979823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, resetSimReq) { 98fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 999823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 100fcc61188827e1472965b36041c29b80cbe4079basqian sap->resetSimReq(token); 101fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 102fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 1039823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 104fcc61188827e1472965b36041c29b80cbe4079basqian ASSERT_TRUE(SapResultCode::GENERIC_FAILURE == sapCb->sapResultCode || 105fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_NOT_ACCESSSIBLE == sapCb->sapResultCode || 106fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_ALREADY_POWERED_OFF == sapCb->sapResultCode || 107fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::CARD_REMOVED == sapCb->sapResultCode); 1089823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 1099823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 1109823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 1119823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.transferCardReaderStatusReq() for the response returned. 1129823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 1139823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, transferCardReaderStatusReq) { 114fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 1159823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 116fcc61188827e1472965b36041c29b80cbe4079basqian sap->transferCardReaderStatusReq(token); 117fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 118fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 1199823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 120fcc61188827e1472965b36041c29b80cbe4079basqian ASSERT_TRUE(SapResultCode::GENERIC_FAILURE == sapCb->sapResultCode || 121fcc61188827e1472965b36041c29b80cbe4079basqian SapResultCode::DATA_NOT_AVAILABLE == sapCb->sapResultCode); 1229823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 1239823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 1249823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq/* 1259823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq * Test IRadio.setTransferProtocolReq() for the response returned. 1269823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq */ 1279823fcd865d0af53daf5d3137e98f2dec0c888bfShuoqTEST_F(SapHidlTest, setTransferProtocolReq) { 128fcc61188827e1472965b36041c29b80cbe4079basqian int32_t token = GetRandomSerialNumber(); 129fcc61188827e1472965b36041c29b80cbe4079basqian SapTransferProtocol sapTransferProtocol = SapTransferProtocol::T0; 1309823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 131fcc61188827e1472965b36041c29b80cbe4079basqian sap->setTransferProtocolReq(token, sapTransferProtocol); 132fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(std::cv_status::no_timeout, wait()); 133fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(sapCb->sapResponseToken, token); 1349823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq 135fcc61188827e1472965b36041c29b80cbe4079basqian EXPECT_EQ(SapResultCode::NOT_SUPPORTED, sapCb->sapResultCode); 1369823fcd865d0af53daf5d3137e98f2dec0c888bfShuoq} 137