146 lines
6.0 KiB
C++
146 lines
6.0 KiB
C++
/*
|
|
* Copyright (C) 2021 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <aidl/android/hardware/radio/messaging/BnRadioMessagingIndication.h>
|
|
#include <aidl/android/hardware/radio/messaging/BnRadioMessagingResponse.h>
|
|
#include <aidl/android/hardware/radio/messaging/IRadioMessaging.h>
|
|
|
|
#include "radio_aidl_hal_utils.h"
|
|
|
|
using namespace aidl::android::hardware::radio::messaging;
|
|
|
|
class RadioMessagingTest;
|
|
|
|
/* Callback class for radio messaging response */
|
|
class RadioMessagingResponse : public BnRadioMessagingResponse {
|
|
protected:
|
|
RadioServiceTest& parent_messaging;
|
|
|
|
public:
|
|
RadioMessagingResponse(RadioServiceTest& parent_messaging);
|
|
virtual ~RadioMessagingResponse() = default;
|
|
|
|
RadioResponseInfo rspInfo;
|
|
SendSmsResult sendSmsResult;
|
|
|
|
virtual ndk::ScopedAStatus acknowledgeIncomingGsmSmsWithPduResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus acknowledgeLastIncomingCdmaSmsResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus acknowledgeLastIncomingGsmSmsResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus acknowledgeRequest(int32_t serial) override;
|
|
|
|
virtual ndk::ScopedAStatus deleteSmsOnRuimResponse(const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus deleteSmsOnSimResponse(const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus getCdmaBroadcastConfigResponse(
|
|
const RadioResponseInfo& info,
|
|
const std::vector<CdmaBroadcastSmsConfigInfo>& configs) override;
|
|
|
|
virtual ndk::ScopedAStatus getGsmBroadcastConfigResponse(
|
|
const RadioResponseInfo& info,
|
|
const std::vector<GsmBroadcastSmsConfigInfo>& configs) override;
|
|
|
|
virtual ndk::ScopedAStatus getSmscAddressResponse(const RadioResponseInfo& info,
|
|
const std::string& smsc) override;
|
|
|
|
virtual ndk::ScopedAStatus reportSmsMemoryStatusResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus sendCdmaSmsExpectMoreResponse(const RadioResponseInfo& info,
|
|
const SendSmsResult& sms) override;
|
|
|
|
virtual ndk::ScopedAStatus sendCdmaSmsResponse(const RadioResponseInfo& info,
|
|
const SendSmsResult& sms) override;
|
|
|
|
virtual ndk::ScopedAStatus sendImsSmsResponse(const RadioResponseInfo& info,
|
|
const SendSmsResult& sms) override;
|
|
|
|
virtual ndk::ScopedAStatus sendSmsExpectMoreResponse(const RadioResponseInfo& info,
|
|
const SendSmsResult& sms) override;
|
|
|
|
virtual ndk::ScopedAStatus sendSmsResponse(const RadioResponseInfo& info,
|
|
const SendSmsResult& sms) override;
|
|
|
|
virtual ndk::ScopedAStatus setCdmaBroadcastActivationResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus setCdmaBroadcastConfigResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus setGsmBroadcastActivationResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus setGsmBroadcastConfigResponse(
|
|
const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus setSmscAddressResponse(const RadioResponseInfo& info) override;
|
|
|
|
virtual ndk::ScopedAStatus writeSmsToRuimResponse(const RadioResponseInfo& info,
|
|
int32_t index) override;
|
|
|
|
virtual ndk::ScopedAStatus writeSmsToSimResponse(const RadioResponseInfo& info,
|
|
int32_t index) override;
|
|
};
|
|
|
|
/* Callback class for radio messaging indication */
|
|
class RadioMessagingIndication : public BnRadioMessagingIndication {
|
|
protected:
|
|
RadioServiceTest& parent_messaging;
|
|
|
|
public:
|
|
RadioMessagingIndication(RadioServiceTest& parent_messaging);
|
|
virtual ~RadioMessagingIndication() = default;
|
|
|
|
virtual ndk::ScopedAStatus cdmaNewSms(RadioIndicationType type,
|
|
const CdmaSmsMessage& msg) override;
|
|
|
|
virtual ndk::ScopedAStatus cdmaRuimSmsStorageFull(RadioIndicationType type) override;
|
|
|
|
virtual ndk::ScopedAStatus newBroadcastSms(RadioIndicationType type,
|
|
const std::vector<uint8_t>& data) override;
|
|
|
|
virtual ndk::ScopedAStatus newSms(RadioIndicationType type,
|
|
const std::vector<uint8_t>& pdu) override;
|
|
|
|
virtual ndk::ScopedAStatus newSmsOnSim(RadioIndicationType type, int32_t recordNumber) override;
|
|
|
|
virtual ndk::ScopedAStatus newSmsStatusReport(RadioIndicationType type,
|
|
const std::vector<uint8_t>& pdu) override;
|
|
|
|
virtual ndk::ScopedAStatus simSmsStorageFull(RadioIndicationType type) override;
|
|
};
|
|
|
|
// The main test class for Radio AIDL Messaging.
|
|
class RadioMessagingTest : public ::testing::TestWithParam<std::string>, public RadioServiceTest {
|
|
public:
|
|
virtual void SetUp() override;
|
|
|
|
/* radio messaging service handle */
|
|
std::shared_ptr<IRadioMessaging> radio_messaging;
|
|
/* radio messaging response handle */
|
|
std::shared_ptr<RadioMessagingResponse> radioRsp_messaging;
|
|
/* radio messaging indication handle */
|
|
std::shared_ptr<RadioMessagingIndication> radioInd_messaging;
|
|
};
|