radio_hidl_hal_sms.cpp revision 064ee51e0793ab7c8ad8cc440843c995f145e0a4
1064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 2064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Copyright (C) 2017 The Android Open Source Project 3064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 4064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Licensed under the Apache License, Version 2.0 (the "License"); 5064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * you may not use this file except in compliance with the License. 6064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * You may obtain a copy of the License at 7064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 8064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * http://www.apache.org/licenses/LICENSE-2.0 9064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * 10064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Unless required by applicable law or agreed to in writing, software 11064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * distributed under the License is distributed on an "AS IS" BASIS, 12064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * See the License for the specific language governing permissions and 14064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * limitations under the License. 15064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 16064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 17064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq#include<radio_hidl_hal_utils.h> 18064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 19064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoqusing namespace ::android::hardware::radio::V1_0; 20064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 21064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 22064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendSms() for the response returned. 23064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 24064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendSms) { 25064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 26064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq GsmSmsMessage msg; 27064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.smscPdu = ""; 28064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 29064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 30064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->sendSms(++serial, msg); 31064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 32064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 33064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 34064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 35064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 36064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 37064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_STATE, radioRsp->rspInfo.error); 38064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(0, radioRsp->sendSmsResult.errorCode); 39064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 40064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error); 41064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ("", radioRsp->sendSmsResult.ackPDU); 42064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(-1, radioRsp->sendSmsResult.errorCode); 43064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 44064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 45064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 46064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 47064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendSMSExpectMore() for the response returned. 48064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 49064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendSMSExpectMore) { 50064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 51064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq GsmSmsMessage msg; 52064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.smscPdu = ""; 53064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 54064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 55064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->sendSMSExpectMore(++serial, msg); 56064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 57064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): add more test for this API when inserted sim card is considered 58064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 59064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 60064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 61064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 62064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 63064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 64064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_STATE, radioRsp->rspInfo.error); 65064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 66064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error); 67064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ("", radioRsp->sendSmsResult.ackPDU); 68064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(-1, radioRsp->sendSmsResult.errorCode); 69064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 70064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 71064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 72064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 73064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeLastIncomingGsmSms() for the response returned. 74064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 75064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeLastIncomingGsmSms) { 76064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 77064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq bool success = true; 78064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 79064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->acknowledgeLastIncomingGsmSms(++serial, success, 80064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq SmsAcknowledgeFailCause::MEMORY_CAPACITY_EXCEEDED); 81064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 82064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 83064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 84064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 85064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 86064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 87064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_STATE, radioRsp->rspInfo.error); 88064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 89064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will test right behavior when inserted sim card is considered 90064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 91064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 92064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 93064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 94064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeIncomingGsmSmsWithPdu() for the response returned. 95064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 96064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeIncomingGsmSmsWithPdu) { 97064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 98064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq bool success = true; 99064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq std::string ackPdu = ""; 100064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 101064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->acknowledgeIncomingGsmSmsWithPdu(++serial, success, ackPdu); 102064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 103064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 104064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 105064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 106064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 107064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 108064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 109064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 110064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will test right behavior when inserted sim card is considered 111064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 112064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 113064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 114064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 115064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendCdmaSms() for the response returned. 116064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 117064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendCdmaSms) { 118064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 119064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 120064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsAddress 121064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsAddress cdmaSmsAddress; 122064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 123064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 124064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 125064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 126064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digits = (std::vector<uint8_t>) {11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 127064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 128064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsSubAddress 129064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsSubaddress cdmaSmsSubaddress; 130064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 131064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.odd = false; 132064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.digits = (std::vector<uint8_t>) {}; 133064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 134064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsMessage 135064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq android::hardware::radio::V1_0::CdmaSmsMessage cdmaSmsMessage; 136064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.teleserviceId = 4098; 137064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.isServicePresent = false; 138064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.serviceCategory = 0; 139064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.address = cdmaSmsAddress; 140064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 141064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.bearerData = (std::vector<uint8_t>) 142064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq {15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 143064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 144064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->sendCdmaSms(++serial, cdmaSmsMessage); 145064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 146064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 147064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 148064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 149064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 150064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 151064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 152064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 153064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): radioRsp->sendSmsResult needs to be investigated when Sim card is in 154064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 155064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 156064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 157064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 158064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.acknowledgeLastIncomingCdmaSms() for the response returned. 159064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 160064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, acknowledgeLastIncomingCdmaSms) { 161064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 162064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 163064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsAck 164064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsAck cdmaSmsAck; 165064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAck.errorClass = CdmaSmsErrorClass::NO_ERROR; 166064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAck.smsCauseCode = 1; 167064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 168064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->acknowledgeLastIncomingCdmaSms(++serial, cdmaSmsAck); 169064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 170064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 171064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 172064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 173064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 174064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 175064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NO_SMS_TO_ACK, radioRsp->rspInfo.error); 176064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 177064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NO_SMS_TO_ACK, radioRsp->rspInfo.error); 178064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 179064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 180064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 181064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 182064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.sendImsSms() for the response returned. 183064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 184064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, sendImsSms) { 185064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 1; 186064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 187064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsAddress 188064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsAddress cdmaSmsAddress; 189064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 190064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 191064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 192064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 193064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digits = (std::vector<uint8_t>) {11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 194064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 195064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsSubAddress 196064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsSubaddress cdmaSmsSubaddress; 197064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 198064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.odd = false; 199064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.digits = (std::vector<uint8_t>) {}; 200064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 201064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsMessage 202064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsMessage cdmaSmsMessage; 203064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.teleserviceId = 4098; 204064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.isServicePresent = false; 205064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.serviceCategory = 0; 206064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.address = cdmaSmsAddress; 207064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 208064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.bearerData = (std::vector<uint8_t>) 209064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq {15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 210064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 211064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Creata an ImsSmsMessage 212064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq ImsSmsMessage msg; 213064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.tech = RadioTechnologyFamily::THREE_GPP2; 214064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.retry = false; 215064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.messageRef = 0; 216064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.cdmaMessage = (std::vector<CdmaSmsMessage>) {cdmaSmsMessage}; 217064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq msg.gsmMessage = (std::vector<GsmSmsMessage>) {}; 218064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 219064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->sendImsSms(serial, msg); 220064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 221064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 222064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 223064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 224064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 225064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 226064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_ARGUMENTS, radioRsp->rspInfo.error); 227064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 228064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_ARGUMENTS, radioRsp->rspInfo.error); 229064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): radioRsp->sendSmsResult needs to be investigated when sim card is in 230064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 231064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 232064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 233064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 234064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.getSmscAddress() for the response returned. 235064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 236064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, getSmscAddress) { 237064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 238064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 239064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->getSmscAddress(++serial); 240064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 241064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 242064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 243064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 244064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 245064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 246064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 247064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 248064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error); 249064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): radioRsp->smscAddress needs to be investigated when Sim card is in 250064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 251064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 252064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 253064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 254064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.setSmscAddress() for the response returned. 255064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 256064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, setSmscAddress) { 257064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 258064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq hidl_string address = hidl_string("smscAddress"); 259064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 260064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->setSmscAddress(++serial, address); 261064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 262064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 263064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 264064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 265064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 266064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 267064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_SMS_FORMAT, radioRsp->rspInfo.error); 268064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 269064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::INVALID_SMS_FORMAT, radioRsp->rspInfo.error); 270064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 271064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 272064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 273064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 274064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.writeSmsToSim() for the response returned. 275064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 276064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, writeSmsToSim) { 277064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 278064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq SmsWriteArgs smsWriteArgs; 279064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq smsWriteArgs.status = SmsWriteArgsStatus::REC_UNREAD; 280064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq smsWriteArgs.smsc = ""; 281064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq smsWriteArgs.pdu = "01000b916105770203f3000006d4f29c3e9b01"; 282064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 283064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->writeSmsToSim(++serial, smsWriteArgs); 284064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 285064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 286064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 287064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 288064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 289064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 290064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 291064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 292064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): radioRsp->writeSmsToSimIndex needs to be investigated when Sim card is in 293064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 294064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 295064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 296064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 297064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.deleteSmsOnSim() for the response returned. 298064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 299064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, deleteSmsOnSim) { 300064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 301064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int index = 1; 302064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 303064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->deleteSmsOnSim(++serial, index); 304064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 305064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 306064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 307064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 308064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 309064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 310064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 311064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 312064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NO_SUCH_ENTRY, radioRsp->rspInfo.error); 313064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 314064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 315064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 316064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 317064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.writeSmsToRuim() for the response returned. 318064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 319064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, writeSmsToRuim) { 320064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 321064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 322064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsAddress 323064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsAddress cdmaSmsAddress; 324064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 325064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 326064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 327064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 328064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digits = (std::vector<uint8_t>) {11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 329064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 330064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsSubAddress 331064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsSubaddress cdmaSmsSubaddress; 332064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 333064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.odd = false; 334064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.digits = (std::vector<uint8_t>) {}; 335064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 336064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsMessage 337064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsMessage cdmaSmsMessage; 338064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.teleserviceId = 4098; 339064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.isServicePresent = false; 340064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.serviceCategory = 0; 341064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.address = cdmaSmsAddress; 342064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 343064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.bearerData = (std::vector<uint8_t>) 344064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq {15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 345064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 346064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsWriteArgs 347064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsWriteArgs cdmaSmsWriteArgs; 348064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsWriteArgs.status = CdmaSmsWriteArgsStatus::REC_UNREAD; 349064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsWriteArgs.message = cdmaSmsMessage; 350064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 351064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->writeSmsToRuim(++serial, cdmaSmsWriteArgs); 352064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 353064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 354064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 355064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 356064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 357064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 358064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 359064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 360064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): radioRsp->writeSmsToRuimIndex needs to be investigated when sim card is in 361064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 362064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 363064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 364064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 365064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.deleteSmsOnRuim() for the response returned. 366064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 367064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, deleteSmsOnRuim) { 368064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 369064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int index = 1; 370064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 371064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsAddress 372064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsAddress cdmaSmsAddress; 373064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digitMode = CdmaSmsDigitMode::FOUR_BIT; 374064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberMode = CdmaSmsNumberMode::NOT_DATA_NETWORK; 375064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberType = CdmaSmsNumberType::UNKNOWN; 376064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.numberPlan = CdmaSmsNumberPlan::UNKNOWN; 377064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsAddress.digits = (std::vector<uint8_t>) {11, 1, 6, 5, 10, 7, 7, 2, 10, 3, 10, 3}; 378064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 379064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsSubAddress 380064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsSubaddress cdmaSmsSubaddress; 381064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.subaddressType = CdmaSmsSubaddressType::NSAP; 382064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.odd = false; 383064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsSubaddress.digits = (std::vector<uint8_t>) {}; 384064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 385064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsMessage 386064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsMessage cdmaSmsMessage; 387064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.teleserviceId = 4098; 388064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.isServicePresent = false; 389064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.serviceCategory = 0; 390064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.address = cdmaSmsAddress; 391064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.subAddress = cdmaSmsSubaddress; 392064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsMessage.bearerData = (std::vector<uint8_t>) 393064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq {15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; 394064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 395064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // Create a CdmaSmsWriteArgs 396064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq CdmaSmsWriteArgs cdmaSmsWriteArgs; 397064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsWriteArgs.status = CdmaSmsWriteArgsStatus::REC_UNREAD; 398064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq cdmaSmsWriteArgs.message = cdmaSmsMessage; 399064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 400064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->deleteSmsOnRuim(++serial, index); 401064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 402064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 403064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 404064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 405064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 406064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 407064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 408064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 409064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will test right behavior when inserted sim card is considered 410064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 411064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 412064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 413064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq/* 414064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq * Test IRadio.reportSmsMemoryStatus() for the response returned. 415064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq */ 416064ee51e0793ab7c8ad8cc440843c995f145e0a4ShuoqTEST_F(RadioHidlTest, reportSmsMemoryStatus) { 417064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq int serial = 0; 418064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq bool available = true; 419064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 420064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq radio->reportSmsMemoryStatus(++serial, available); 421064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 422064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(std::cv_status::no_timeout, wait()); 423064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type); 424064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(serial, radioRsp->rspInfo.serial); 425064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 426064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq if (cardStatus.cardState == CardState::ABSENT) { 427064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq // TODO(shuoq): Will add error check when we know the expected error from QC 428064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } else { 429064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error); 430064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq } 431064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq} 432