1e5d0e473Sopenharmony_ci/* 2e5d0e473Sopenharmony_ci * Copyright (C) 2023-2024 Huawei Device Co., Ltd. 3e5d0e473Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e5d0e473Sopenharmony_ci * you may not use this file except in compliance with the License. 5e5d0e473Sopenharmony_ci * You may obtain a copy of the License at 6e5d0e473Sopenharmony_ci * 7e5d0e473Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e5d0e473Sopenharmony_ci * 9e5d0e473Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e5d0e473Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e5d0e473Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e5d0e473Sopenharmony_ci * See the License for the specific language governing permissions and 13e5d0e473Sopenharmony_ci * limitations under the License. 14e5d0e473Sopenharmony_ci */ 15e5d0e473Sopenharmony_ci 16e5d0e473Sopenharmony_ci#define private public 17e5d0e473Sopenharmony_ci#define protected public 18e5d0e473Sopenharmony_ci 19e5d0e473Sopenharmony_ci#include "gsm_cb_codec.h" 20e5d0e473Sopenharmony_ci#include "gsm_cb_gsm_codec.h" 21e5d0e473Sopenharmony_ci#include "gsm_cb_umts_codec.h" 22e5d0e473Sopenharmony_ci#include "gtest/gtest.h" 23e5d0e473Sopenharmony_ci#include "radio_event.h" 24e5d0e473Sopenharmony_ci#include "sms_service.h" 25e5d0e473Sopenharmony_ci 26e5d0e473Sopenharmony_cinamespace OHOS { 27e5d0e473Sopenharmony_cinamespace Telephony { 28e5d0e473Sopenharmony_ciusing namespace testing::ext; 29e5d0e473Sopenharmony_ci 30e5d0e473Sopenharmony_cinamespace { 31e5d0e473Sopenharmony_ciconst int32_t INVALID_SLOTID = 2; 32e5d0e473Sopenharmony_ciconst uint16_t PWS_FIRST_ID = 0x1100; 33e5d0e473Sopenharmony_ciconst std::string ETWS_PDU = "000B1100011165FA7D4E9BD564"; 34e5d0e473Sopenharmony_ciconst std::string CMAS_PDU = "000D11120111E376784E9BDD60"; 35e5d0e473Sopenharmony_ciconst std::string CBS_PDU = "00031112011163F19C36BBC11A"; 36e5d0e473Sopenharmony_ciconst std::string CMAS_JP_PDU = 37e5d0e473Sopenharmony_ci "01A41F51101102EA3030A830EA30A230E130FC30EB914D4FE130C630B930C8000D000A3053308C306F8A669A137528306E30E130C330BB30FC" 38e5d0e473Sopenharmony_ci "30B8306730593002000D000AFF080032003000310033002F00310031002F003252EA300037002000310035003A00340034FF09000D000AFF08" 39e5d0e473Sopenharmony_ci "30A830EA30A25E02FF090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 40e5d0e473Sopenharmony_ci "0022"; 41e5d0e473Sopenharmony_ci} // namespace 42e5d0e473Sopenharmony_ci 43e5d0e473Sopenharmony_ciclass BranchCbTest : public testing::Test { 44e5d0e473Sopenharmony_cipublic: 45e5d0e473Sopenharmony_ci static void SetUpTestCase(); 46e5d0e473Sopenharmony_ci static void TearDownTestCase(); 47e5d0e473Sopenharmony_ci void SetUp(); 48e5d0e473Sopenharmony_ci void TearDown(); 49e5d0e473Sopenharmony_ci}; 50e5d0e473Sopenharmony_civoid BranchCbTest::SetUpTestCase() {} 51e5d0e473Sopenharmony_ci 52e5d0e473Sopenharmony_civoid BranchCbTest::TearDownTestCase() {} 53e5d0e473Sopenharmony_ci 54e5d0e473Sopenharmony_civoid BranchCbTest::SetUp() {} 55e5d0e473Sopenharmony_ci 56e5d0e473Sopenharmony_civoid BranchCbTest::TearDown() {} 57e5d0e473Sopenharmony_ci 58e5d0e473Sopenharmony_ci/** 59e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0001 60e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 61e5d0e473Sopenharmony_ci * @tc.desc Function test 62e5d0e473Sopenharmony_ci */ 63e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0001, Function | MediumTest | Level1) 64e5d0e473Sopenharmony_ci{ 65e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu; 66e5d0e473Sopenharmony_ci unsigned char data = 1; 67e5d0e473Sopenharmony_ci pdu.push_back(data); 68e5d0e473Sopenharmony_ci auto cbCodec = std::make_shared<GsmCbCodec>(); 69e5d0e473Sopenharmony_ci cbCodec->PduAnalysis(pdu); 70e5d0e473Sopenharmony_ci int8_t format = 1; 71e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetFormat(format)); 72e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetPriority(format)); 73e5d0e473Sopenharmony_ci EXPECT_NE(cbCodec->GsmCbCodec::ToString(), ""); 74e5d0e473Sopenharmony_ci uint8_t gs = 1; 75e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetGeoScope(gs)); 76e5d0e473Sopenharmony_ci uint16_t serial = 1; 77e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetSerialNum(serial)); 78e5d0e473Sopenharmony_ci bool isUserAlert = false; 79e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->IsEtwsEmergencyUserAlert(isUserAlert)); 80e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->IsEtwsPopupAlert(isUserAlert)); 81e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetServiceCategory(serial)); 82e5d0e473Sopenharmony_ci uint8_t cmasType; 83e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetCmasResponseType(cmasType)); 84e5d0e473Sopenharmony_ci uint8_t cmasClass; 85e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetCmasMessageClass(cmasClass)); 86e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetWarningType(serial)); 87e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetMsgType(gs)); 88e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetLangType(gs)); 89e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetDcs(gs)); 90e5d0e473Sopenharmony_ci int64_t recvTime = 0; 91e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetReceiveTime(recvTime)); 92e5d0e473Sopenharmony_ci} 93e5d0e473Sopenharmony_ci 94e5d0e473Sopenharmony_ci/** 95e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0002 96e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 97e5d0e473Sopenharmony_ci * @tc.desc Function test 98e5d0e473Sopenharmony_ci */ 99e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0002, Function | MediumTest | Level1) 100e5d0e473Sopenharmony_ci{ 101e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu; 102e5d0e473Sopenharmony_ci unsigned char data = 1; 103e5d0e473Sopenharmony_ci pdu.push_back(data); 104e5d0e473Sopenharmony_ci auto cbCodec = std::make_shared<GsmCbCodec>(); 105e5d0e473Sopenharmony_ci cbCodec->PduAnalysis(pdu); 106e5d0e473Sopenharmony_ci uint8_t cmasType; 107e5d0e473Sopenharmony_ci cbCodec->GetCmasCategory(cmasType); 108e5d0e473Sopenharmony_ci std::string raw = "qwe"; 109e5d0e473Sopenharmony_ci std::string message = "asd"; 110e5d0e473Sopenharmony_ci cbCodec->ConvertToUTF8(raw, message); 111e5d0e473Sopenharmony_ci cbCodec->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 112e5d0e473Sopenharmony_ci cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_7BIT; 113e5d0e473Sopenharmony_ci cbCodec->ConvertToUTF8(raw, message); 114e5d0e473Sopenharmony_ci cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_UCS2; 115e5d0e473Sopenharmony_ci cbCodec->ConvertToUTF8(raw, message); 116e5d0e473Sopenharmony_ci cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_AUTO; 117e5d0e473Sopenharmony_ci cbCodec->ConvertToUTF8(raw, message); 118e5d0e473Sopenharmony_ci cbCodec->cbHeader_->bEtwsMessage = true; 119e5d0e473Sopenharmony_ci cbCodec->cbHeader_->cbEtwsType = GsmCbCodec::ETWS_PRIMARY; 120e5d0e473Sopenharmony_ci cbCodec->ConvertToUTF8(raw, message); 121e5d0e473Sopenharmony_ci cbCodec->GetCbMessageRaw(); 122e5d0e473Sopenharmony_ci int8_t format = 1; 123e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetPriority(format)); 124e5d0e473Sopenharmony_ci cbCodec->cbHeader_->msgId = PWS_FIRST_ID; 125e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetPriority(format)); 126e5d0e473Sopenharmony_ci EXPECT_FALSE(cbCodec->IsSinglePageMsg()); 127e5d0e473Sopenharmony_ci std::string pdus = "123"; 128e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->CreateCbMessage(pdu) == nullptr); 129e5d0e473Sopenharmony_ci EXPECT_FALSE(cbCodec->CreateCbMessage(pdus)); 130e5d0e473Sopenharmony_ci EXPECT_TRUE(cbCodec->GetCbHeader() != nullptr); 131e5d0e473Sopenharmony_ci} 132e5d0e473Sopenharmony_ci 133e5d0e473Sopenharmony_ci/** 134e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0003 135e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 136e5d0e473Sopenharmony_ci * @tc.desc Function test 137e5d0e473Sopenharmony_ci */ 138e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0003, Function | MediumTest | Level1) 139e5d0e473Sopenharmony_ci{ 140e5d0e473Sopenharmony_ci auto smsCbMessage = std::make_shared<GsmCbCodec>(); 141e5d0e473Sopenharmony_ci uint8_t severity = 1; 142e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 143e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED; 144e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 145e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 146e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED_SPANISH; 147e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 148e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 149e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY; 150e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 151e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 152e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY_SPANISH; 153e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 154e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 155e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED; 156e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 157e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 158e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED_SPANISH; 159e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 160e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 161e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY; 162e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 163e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 164e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY_SPANISH; 165e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 166e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 167e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_DEFUALT; 168e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 169e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 170e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_SPANISH; 171e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 172e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 173e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY; 174e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 175e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 176e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY_SPANISH; 177e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 178e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 179e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED; 180e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 181e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 182e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED_SPANISH; 183e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 184e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 185e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY; 186e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 187e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 188e5d0e473Sopenharmony_ci} 189e5d0e473Sopenharmony_ci 190e5d0e473Sopenharmony_ci/** 191e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0004 192e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 193e5d0e473Sopenharmony_ci * @tc.desc Function test 194e5d0e473Sopenharmony_ci */ 195e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0004, Function | MediumTest | Level1) 196e5d0e473Sopenharmony_ci{ 197e5d0e473Sopenharmony_ci auto smsCbMessage = std::make_shared<GsmCbCodec>(); 198e5d0e473Sopenharmony_ci uint8_t severity = 1; 199e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 200e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY_SPANISH; 201e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 202e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 203e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 204e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::OPERATOR_ALERT_SPANISH; 205e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity)); 206e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity)); 207e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 208e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED; 209e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 210e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED_SPANISH; 211e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 212e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED; 213e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 214e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED_SPANISH; 215e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 216e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_DEFUALT; 217e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 218e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_SPANISH; 219e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 220e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED; 221e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 222e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED_SPANISH; 223e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 224e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY; 225e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 226e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY_SPANISH; 227e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 228e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY; 229e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 230e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY_SPANISH; 231e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 232e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY; 233e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 234e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY_SPANISH; 235e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 236e5d0e473Sopenharmony_ci smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY; 237e5d0e473Sopenharmony_ci EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity)); 238e5d0e473Sopenharmony_ci} 239e5d0e473Sopenharmony_ci 240e5d0e473Sopenharmony_ci/** 241e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0005 242e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 243e5d0e473Sopenharmony_ci * @tc.desc Function test 244e5d0e473Sopenharmony_ci */ 245e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0005, Function | MediumTest | Level1) 246e5d0e473Sopenharmony_ci{ 247e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 248e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 249e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 250e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 251e5d0e473Sopenharmony_ci ASSERT_NE(gsmMsg, nullptr); 252e5d0e473Sopenharmony_ci ASSERT_NE(umtsMsg, nullptr); 253e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmMsg->Decode2gHeader()); 254e5d0e473Sopenharmony_ci unsigned char data = 1; 255e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu; 256e5d0e473Sopenharmony_ci pdu.push_back(data); 257e5d0e473Sopenharmony_ci cbMsg->PduAnalysis(pdu); 258e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 259e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 260e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 261e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 262e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 263e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 264e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 265e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 266e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 267e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 268e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 269e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 270e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 271e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 272e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 273e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 274e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 275e5d0e473Sopenharmony_ci umtsMsg->Decode3gUCS2(); 276e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::PRESIDENTIAL), GsmCbCodec::GSMCbMsgSubType::CMAS_PRESIDENTIAL); 277e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::PRESIDENTIAL_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_PRESIDENTIAL); 278e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME); 279e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME); 280e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME); 281e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME); 282e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 283e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 284e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 285e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 286e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::ALERT_OBSERVED_DEFUALT), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 287e5d0e473Sopenharmony_ci EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::ALERT_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 288e5d0e473Sopenharmony_ci} 289e5d0e473Sopenharmony_ci 290e5d0e473Sopenharmony_ci/** 291e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodec_0006 292e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec 293e5d0e473Sopenharmony_ci * @tc.desc Function test 294e5d0e473Sopenharmony_ci */ 295e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0006, Function | MediumTest | Level1) 296e5d0e473Sopenharmony_ci{ 297e5d0e473Sopenharmony_ci auto smsCbMessage = std::make_shared<GsmCbCodec>(); 298e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::ALERT_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 299e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::ALERT_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 300e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 301e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 302e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 303e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE); 304e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::AMBER_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_AMBER); 305e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::AMBER_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_AMBER); 306e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::MONTHLY_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_TEST); 307e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::MONTHLY_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_TEST); 308e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXERCISE_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_EXERCISE); 309e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXERCISE_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXERCISE); 310e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::OPERATOR_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_OPERATOR_DEFINED); 311e5d0e473Sopenharmony_ci EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::OPERATOR_ALERT_SPANISH), 312e5d0e473Sopenharmony_ci GsmCbCodec::GSMCbMsgSubType::CMAS_OPERATOR_DEFINED); 313e5d0e473Sopenharmony_ci} 314e5d0e473Sopenharmony_ci 315e5d0e473Sopenharmony_ci/** 316e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbGsmCodec_0001 317e5d0e473Sopenharmony_ci * @tc.name Test GsmCbGsmCodec 318e5d0e473Sopenharmony_ci * @tc.desc Function test 319e5d0e473Sopenharmony_ci */ 320e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0001, Function | MediumTest | Level1) 321e5d0e473Sopenharmony_ci{ 322e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 323e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 324e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(ETWS_PDU); 325e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU); 326e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 327e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 328e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) { 329e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 330e5d0e473Sopenharmony_ci } 331e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 332e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 333e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 334e5d0e473Sopenharmony_ci umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 335e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeader(); 336e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderEtws(); 337e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->Decode2gCbMsg()); 338e5d0e473Sopenharmony_ci 339e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderCommonCb(); 340e5d0e473Sopenharmony_ci uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition(); 341e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg7bit(dataLen); 342e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->DecodeEtwsMsg()); 343e5d0e473Sopenharmony_ci 344e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeader(); 345e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeaderPartData(0); 346e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 347e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 348e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 349e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 350e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 351e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 352e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 353e5d0e473Sopenharmony_ci 354e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 355e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 356e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 357e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 358e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 359e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 360e5d0e473Sopenharmony_ci 361e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 362e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 363e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 364e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 365e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 366e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 367e5d0e473Sopenharmony_ci} 368e5d0e473Sopenharmony_ci 369e5d0e473Sopenharmony_ci/** 370e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbGsmCodec_0002 371e5d0e473Sopenharmony_ci * @tc.name Test GsmCbGsmCodec 372e5d0e473Sopenharmony_ci * @tc.desc Function test 373e5d0e473Sopenharmony_ci */ 374e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0002, Function | MediumTest | Level1) 375e5d0e473Sopenharmony_ci{ 376e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 377e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 378e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(CMAS_PDU); 379e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_PDU); 380e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 381e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 382e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) { 383e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 384e5d0e473Sopenharmony_ci } 385e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 386e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 387e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 388e5d0e473Sopenharmony_ci umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 389e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeader(); 390e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderEtws(); 391e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->Decode2gCbMsg()); 392e5d0e473Sopenharmony_ci 393e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderCommonCb(); 394e5d0e473Sopenharmony_ci uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition(); 395e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg7bit(dataLen); 396e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->DecodeEtwsMsg()); 397e5d0e473Sopenharmony_ci 398e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeader(); 399e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeaderPartData(0); 400e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 401e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 402e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 403e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 404e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 405e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 406e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 407e5d0e473Sopenharmony_ci 408e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 409e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 410e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 411e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 412e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 413e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 414e5d0e473Sopenharmony_ci 415e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 416e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 417e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 418e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 419e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 420e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 421e5d0e473Sopenharmony_ci} 422e5d0e473Sopenharmony_ci 423e5d0e473Sopenharmony_ci/** 424e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbGsmCodec_0003 425e5d0e473Sopenharmony_ci * @tc.name Test GsmCbGsmCodec 426e5d0e473Sopenharmony_ci * @tc.desc Function test 427e5d0e473Sopenharmony_ci */ 428e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0003, Function | MediumTest | Level1) 429e5d0e473Sopenharmony_ci{ 430e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 431e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 432e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(CBS_PDU); 433e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CBS_PDU); 434e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 435e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 436e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) { 437e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 438e5d0e473Sopenharmony_ci } 439e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 440e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 441e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 442e5d0e473Sopenharmony_ci umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 443e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeader(); 444e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderEtws(); 445e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->Decode2gCbMsg()); 446e5d0e473Sopenharmony_ci 447e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderCommonCb(); 448e5d0e473Sopenharmony_ci uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition(); 449e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg7bit(dataLen); 450e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->DecodeEtwsMsg()); 451e5d0e473Sopenharmony_ci 452e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeader(); 453e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeaderPartData(0); 454e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 455e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 456e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 457e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 458e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 459e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 460e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 461e5d0e473Sopenharmony_ci 462e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 463e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 464e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 465e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 466e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 467e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 468e5d0e473Sopenharmony_ci 469e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 470e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 471e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 472e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 473e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 474e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 475e5d0e473Sopenharmony_ci} 476e5d0e473Sopenharmony_ci 477e5d0e473Sopenharmony_ci/** 478e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbGsmCodec_0004 479e5d0e473Sopenharmony_ci * @tc.name Test GsmCbGsmCodec 480e5d0e473Sopenharmony_ci * @tc.desc Function test 481e5d0e473Sopenharmony_ci */ 482e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0004, Function | MediumTest | Level1) 483e5d0e473Sopenharmony_ci{ 484e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 485e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 486e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(CMAS_JP_PDU); 487e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_JP_PDU); 488e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 489e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 490e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) { 491e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 492e5d0e473Sopenharmony_ci } 493e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 494e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 495e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 496e5d0e473Sopenharmony_ci umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 497e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeader(); 498e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderEtws(); 499e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmMsg->Decode2gCbMsg()); 500e5d0e473Sopenharmony_ci 501e5d0e473Sopenharmony_ci gsmMsg->Decode2gHeaderCommonCb(); 502e5d0e473Sopenharmony_ci uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition(); 503e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg7bit(dataLen); 504e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmMsg->DecodeEtwsMsg()); 505e5d0e473Sopenharmony_ci 506e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeader(); 507e5d0e473Sopenharmony_ci umtsMsg->Decode3gHeaderPartData(0); 508e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 509e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 510e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gUCS2()); 511e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 512e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 513e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 514e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gCbMsg()); 515e5d0e473Sopenharmony_ci 516e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 517e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 518e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gCbMsg()); 519e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 520e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 521e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gCbMsg()); 522e5d0e473Sopenharmony_ci 523e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 524e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 525e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gCbMsg()); 526e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 527e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 528e5d0e473Sopenharmony_ci EXPECT_TRUE(umtsMsg->Decode3gUCS2()); 529e5d0e473Sopenharmony_ci} 530e5d0e473Sopenharmony_ci 531e5d0e473Sopenharmony_ci/** 532e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbGsmCodec_0005 533e5d0e473Sopenharmony_ci * @tc.name Test GsmCbGsmCodec 534e5d0e473Sopenharmony_ci * @tc.desc Function test 535e5d0e473Sopenharmony_ci */ 536e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0005, Function | MediumTest | Level1) 537e5d0e473Sopenharmony_ci{ 538e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 539e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 540e5d0e473Sopenharmony_ci unsigned char data = 1; 541e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu; 542e5d0e473Sopenharmony_ci pdu.push_back(data); 543e5d0e473Sopenharmony_ci cbMsg->PduAnalysis(pdu); 544e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 545e5d0e473Sopenharmony_ci auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 546e5d0e473Sopenharmony_ci ASSERT_NE(gsmMsg, nullptr); 547e5d0e473Sopenharmony_ci ASSERT_NE(umtsMsg, nullptr); 548e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 549e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 550e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 551e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT; 552e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 553e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 554e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT; 555e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 556e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 557e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2; 558e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 559e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gCbMsg()); 560e5d0e473Sopenharmony_ci cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT; 561e5d0e473Sopenharmony_ci gsmMsg->Decode2gCbMsg(); 562e5d0e473Sopenharmony_ci umtsMsg->Decode3gCbMsg(); 563e5d0e473Sopenharmony_ci cbMsg->cbHeader_->totalPages = 1; 564e5d0e473Sopenharmony_ci umtsMsg->Decode3g7Bit(); 565e5d0e473Sopenharmony_ci EXPECT_FALSE(umtsMsg->Decode3gUCS2()); 566e5d0e473Sopenharmony_ci} 567e5d0e473Sopenharmony_ci 568e5d0e473Sopenharmony_ci/** 569e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmSmsCbHandler_0001 570e5d0e473Sopenharmony_ci * @tc.name Test GsmSmsCbHandler 571e5d0e473Sopenharmony_ci * @tc.desc Function test 572e5d0e473Sopenharmony_ci */ 573e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmSmsCbHandler_0001, Function | MediumTest | Level1) 574e5d0e473Sopenharmony_ci{ 575e5d0e473Sopenharmony_ci auto gsmSmsCbHandler = std::make_shared<GsmSmsCbHandler>(INVALID_SLOTID); 576e5d0e473Sopenharmony_ci auto cbMessage = std::make_shared<GsmCbCodec>(); 577e5d0e473Sopenharmony_ci auto message = std::make_shared<CBConfigReportInfo>(); 578e5d0e473Sopenharmony_ci AppExecFwk::InnerEvent::Pointer event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CELL_BROADCAST, 1); 579e5d0e473Sopenharmony_ci gsmSmsCbHandler->ProcessEvent(event); 580e5d0e473Sopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_GET_STATUS, 1); 581e5d0e473Sopenharmony_ci gsmSmsCbHandler->ProcessEvent(event); 582e5d0e473Sopenharmony_ci gsmSmsCbHandler->HandleCbMessage(message); 583e5d0e473Sopenharmony_ci EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0); 584e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmSmsCbHandler->FindCbMessage(cbMessage) == nullptr); 585e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage)); 586e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->SendCbMessageBroadcast(cbMessage)); 587e5d0e473Sopenharmony_ci cbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 588e5d0e473Sopenharmony_ci EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 1); 589e5d0e473Sopenharmony_ci cbMessage->cbHeader_->totalPages = 1; 590e5d0e473Sopenharmony_ci EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0x01); 591e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage)); 592e5d0e473Sopenharmony_ci CbInfo cbInfo; 593e5d0e473Sopenharmony_ci gsmSmsCbHandler->cbMsgList_.push_back(cbInfo); 594e5d0e473Sopenharmony_ci EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0x01); 595e5d0e473Sopenharmony_ci cbMessage = nullptr; 596e5d0e473Sopenharmony_ci message = nullptr; 597e5d0e473Sopenharmony_ci event = nullptr; 598e5d0e473Sopenharmony_ci gsmSmsCbHandler->ProcessEvent(event); 599e5d0e473Sopenharmony_ci SmsCbData::CbData sendData; 600e5d0e473Sopenharmony_ci gsmSmsCbHandler->GetCbData(cbMessage, sendData); 601e5d0e473Sopenharmony_ci EventFwk::Want want; 602e5d0e473Sopenharmony_ci gsmSmsCbHandler->PackageWantData(sendData, want); 603e5d0e473Sopenharmony_ci gsmSmsCbHandler->HandleCbMessage(message); 604e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->CheckCbActive(cbMessage)); 605e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage)); 606e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmSmsCbHandler->SendCbMessageBroadcast(cbMessage)); 607e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmSmsCbHandler->FindCbMessage(cbMessage) == nullptr); 608e5d0e473Sopenharmony_ci EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0); 609e5d0e473Sopenharmony_ci} 610e5d0e473Sopenharmony_ci 611e5d0e473Sopenharmony_ci/** 612e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecOperator_0001 613e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodec::operator== 614e5d0e473Sopenharmony_ci * @tc.desc Function test 615e5d0e473Sopenharmony_ci */ 616e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecOperator_0001, Function | MediumTest | Level1) 617e5d0e473Sopenharmony_ci{ 618e5d0e473Sopenharmony_ci GsmCbCodec gsmCbCodec1; 619e5d0e473Sopenharmony_ci GsmCbCodec gsmCbCodec2; 620e5d0e473Sopenharmony_ci const std::vector<unsigned char> pdu = {0x01, 0x02}; 621e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2); 622e5d0e473Sopenharmony_ci 623e5d0e473Sopenharmony_ci bool ret = gsmCbCodec2.ParamsCheck(pdu); 624e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2); 625e5d0e473Sopenharmony_ci 626e5d0e473Sopenharmony_ci gsmCbCodec2.cbHeader_ = nullptr; 627e5d0e473Sopenharmony_ci ret = gsmCbCodec1.ParamsCheck(pdu); 628e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2); 629e5d0e473Sopenharmony_ci 630e5d0e473Sopenharmony_ci ret = gsmCbCodec2.ParamsCheck(pdu); 631e5d0e473Sopenharmony_ci EXPECT_TRUE(gsmCbCodec1 == gsmCbCodec2); 632e5d0e473Sopenharmony_ci} 633e5d0e473Sopenharmony_ci 634e5d0e473Sopenharmony_ci/** 635e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_PickOneByte_0001 636e5d0e473Sopenharmony_ci * @tc.name Test PickOneByte 637e5d0e473Sopenharmony_ci * @tc.desc Function test 638e5d0e473Sopenharmony_ci */ 639e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, PickOneByte_0001, Function | MediumTest | Level1) 640e5d0e473Sopenharmony_ci{ 641e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 642e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 643e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu(GsmSmsCbHandler::MAX_CB_MSG_LEN + 1, 0x01); 644e5d0e473Sopenharmony_ci bool ret = cbMsg->PduAnalysis(pdu); 645e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 646e5d0e473Sopenharmony_ci} 647e5d0e473Sopenharmony_ci 648e5d0e473Sopenharmony_ci/** 649e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GetPduData_0001 650e5d0e473Sopenharmony_ci * @tc.name Test GetPduData 651e5d0e473Sopenharmony_ci * @tc.desc Function test 652e5d0e473Sopenharmony_ci */ 653e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GetPduData_0001, Function | MediumTest | Level1) 654e5d0e473Sopenharmony_ci{ 655e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 656e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 657e5d0e473Sopenharmony_ci std::vector<unsigned char> dataPdu = {0x01}; 658e5d0e473Sopenharmony_ci cbMsg->GetPduData(dataPdu); 659e5d0e473Sopenharmony_ci EXPECT_TRUE(cbMsg->cbPduBuffer_ == nullptr); 660e5d0e473Sopenharmony_ci} 661e5d0e473Sopenharmony_ci 662e5d0e473Sopenharmony_ci/** 663e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_ConvertToUTF8_0001 664e5d0e473Sopenharmony_ci * @tc.name Test ConvertToUTF8 665e5d0e473Sopenharmony_ci * @tc.desc Function test 666e5d0e473Sopenharmony_ci */ 667e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, ConvertToUTF8_0001, Function | MediumTest | Level1) 668e5d0e473Sopenharmony_ci{ 669e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 670e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 671e5d0e473Sopenharmony_ci const std::string raw = "raw"; 672e5d0e473Sopenharmony_ci std::string message = "message"; 673e5d0e473Sopenharmony_ci cbMsg->ConvertToUTF8(raw, message); 674e5d0e473Sopenharmony_ci EXPECT_TRUE(cbMsg->cbHeader_ == nullptr); 675e5d0e473Sopenharmony_ci} 676e5d0e473Sopenharmony_ci 677e5d0e473Sopenharmony_ci/** 678e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_DecodeGeneralDcs_0001 679e5d0e473Sopenharmony_ci * @tc.name Test DecodeGeneralDcs 680e5d0e473Sopenharmony_ci * @tc.desc Function test 681e5d0e473Sopenharmony_ci */ 682e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, DecodeGeneralDcs_0001, Function | MediumTest | Level1) 683e5d0e473Sopenharmony_ci{ 684e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 685e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 686e5d0e473Sopenharmony_ci const uint8_t dcsData = 0x04; 687e5d0e473Sopenharmony_ci GsmCbCodec::GsmCbMsgDcs dcs = {}; 688e5d0e473Sopenharmony_ci uint8_t tmpScheme = (dcsData & 0x0C) >> 0x02; 689e5d0e473Sopenharmony_ci EXPECT_EQ(tmpScheme, 0x01); 690e5d0e473Sopenharmony_ci cbMsg->DecodeGeneralDcs(dcsData, dcs); 691e5d0e473Sopenharmony_ci EXPECT_EQ(dcs.codingScheme, DATA_CODING_8BIT); 692e5d0e473Sopenharmony_ci} 693e5d0e473Sopenharmony_ci 694e5d0e473Sopenharmony_ci/** 695e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_DecodeCbMsgDCS_0001 696e5d0e473Sopenharmony_ci * @tc.name Test DecodeCbMsgDCS 697e5d0e473Sopenharmony_ci * @tc.desc Function test 698e5d0e473Sopenharmony_ci */ 699e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, DecodeCbMsgDCS_0001, Function | MediumTest | Level1) 700e5d0e473Sopenharmony_ci{ 701e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 702e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 703e5d0e473Sopenharmony_ci const uint8_t dcsData = 0xE0; 704e5d0e473Sopenharmony_ci const unsigned short iosData = 1; 705e5d0e473Sopenharmony_ci GsmCbCodec::GsmCbMsgDcs dcs = {}; 706e5d0e473Sopenharmony_ci cbMsg->DecodeCbMsgDCS(dcsData, iosData, dcs); 707e5d0e473Sopenharmony_ci EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_WAP); 708e5d0e473Sopenharmony_ci 709e5d0e473Sopenharmony_ci const uint8_t dcsData1 = 0xF0; 710e5d0e473Sopenharmony_ci cbMsg->DecodeCbMsgDCS(dcsData1, iosData, dcs); 711e5d0e473Sopenharmony_ci EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_CLASS_CODING); 712e5d0e473Sopenharmony_ci 713e5d0e473Sopenharmony_ci const uint8_t dcsData2 = 0xD0; 714e5d0e473Sopenharmony_ci cbMsg->DecodeCbMsgDCS(dcsData2, iosData, dcs); 715e5d0e473Sopenharmony_ci EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_GENERAL_DCS); 716e5d0e473Sopenharmony_ci} 717e5d0e473Sopenharmony_ci 718e5d0e473Sopenharmony_ci/** 719e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecToString_0001 720e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodecToString 721e5d0e473Sopenharmony_ci * @tc.desc Function test 722e5d0e473Sopenharmony_ci */ 723e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecToString_0001, Function | MediumTest | Level1) 724e5d0e473Sopenharmony_ci{ 725e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 726e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 727e5d0e473Sopenharmony_ci std::string ret = cbMsg->ToString(); 728e5d0e473Sopenharmony_ci EXPECT_EQ(ret, "GsmCbCodec Header nullptr"); 729e5d0e473Sopenharmony_ci} 730e5d0e473Sopenharmony_ci 731e5d0e473Sopenharmony_ci/** 732e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecGetBranch_0001 733e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodecGetBranch 734e5d0e473Sopenharmony_ci * @tc.desc Function test 735e5d0e473Sopenharmony_ci */ 736e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetBranch_0001, Function | MediumTest | Level1) 737e5d0e473Sopenharmony_ci{ 738e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 739e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 740e5d0e473Sopenharmony_ci int8_t cbPriority = 1; 741e5d0e473Sopenharmony_ci bool ret = cbMsg->GetPriority(cbPriority); 742e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 743e5d0e473Sopenharmony_ci 744e5d0e473Sopenharmony_ci uint8_t geoScope = 1; 745e5d0e473Sopenharmony_ci ret = cbMsg->GetGeoScope(geoScope); 746e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 747e5d0e473Sopenharmony_ci 748e5d0e473Sopenharmony_ci uint16_t cbSerial = 1; 749e5d0e473Sopenharmony_ci ret = cbMsg->GetSerialNum(cbSerial); 750e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 751e5d0e473Sopenharmony_ci 752e5d0e473Sopenharmony_ci uint16_t cbCategoty = 1; 753e5d0e473Sopenharmony_ci ret = cbMsg->GetServiceCategory(cbCategoty); 754e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 755e5d0e473Sopenharmony_ci 756e5d0e473Sopenharmony_ci bool primary = true; 757e5d0e473Sopenharmony_ci ret = cbMsg->IsEtwsPrimary(primary); 758e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 759e5d0e473Sopenharmony_ci 760e5d0e473Sopenharmony_ci ret = cbMsg->IsEtwsMessage(primary); 761e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 762e5d0e473Sopenharmony_ci 763e5d0e473Sopenharmony_ci ret = cbMsg->IsCmasMessage(primary); 764e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 765e5d0e473Sopenharmony_ci} 766e5d0e473Sopenharmony_ci 767e5d0e473Sopenharmony_ci/** 768e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GetWarningType_0001 769e5d0e473Sopenharmony_ci * @tc.name Test GetWarningType 770e5d0e473Sopenharmony_ci * @tc.desc Function test 771e5d0e473Sopenharmony_ci */ 772e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GetWarningType_0001, Function | MediumTest | Level1) 773e5d0e473Sopenharmony_ci{ 774e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 775e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 776e5d0e473Sopenharmony_ci uint16_t type = 1; 777e5d0e473Sopenharmony_ci bool ret = cbMsg->GetWarningType(type); 778e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 779e5d0e473Sopenharmony_ci 780e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = {0x01}; 781e5d0e473Sopenharmony_ci ret = cbMsg->ParamsCheck(pdu); 782e5d0e473Sopenharmony_ci ret = cbMsg->GetWarningType(type); 783e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 784e5d0e473Sopenharmony_ci 785e5d0e473Sopenharmony_ci type = -2; // OTHER_TYPE = -2 786e5d0e473Sopenharmony_ci ret = cbMsg->GetWarningType(type); 787e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 788e5d0e473Sopenharmony_ci} 789e5d0e473Sopenharmony_ci 790e5d0e473Sopenharmony_ci/** 791e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecIsEtws_0001 792e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodecIsEtws 793e5d0e473Sopenharmony_ci * @tc.desc Function test 794e5d0e473Sopenharmony_ci */ 795e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecIsEtws_0001, Function | MediumTest | Level1) 796e5d0e473Sopenharmony_ci{ 797e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 798e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 799e5d0e473Sopenharmony_ci bool alert = true; 800e5d0e473Sopenharmony_ci bool ret = cbMsg->IsEtwsEmergencyUserAlert(alert); 801e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 802e5d0e473Sopenharmony_ci 803e5d0e473Sopenharmony_ci ret = cbMsg->IsEtwsPopupAlert(alert); 804e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 805e5d0e473Sopenharmony_ci} 806e5d0e473Sopenharmony_ci 807e5d0e473Sopenharmony_ci/** 808e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecGetCmas_0001 809e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodecGetCmas 810e5d0e473Sopenharmony_ci * @tc.desc Function test 811e5d0e473Sopenharmony_ci */ 812e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetCmas_0001, Function | MediumTest | Level1) 813e5d0e473Sopenharmony_ci{ 814e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 815e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 816e5d0e473Sopenharmony_ci uint8_t severity = 1; 817e5d0e473Sopenharmony_ci bool ret = cbMsg->GetCmasSeverity(severity); 818e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 819e5d0e473Sopenharmony_ci 820e5d0e473Sopenharmony_ci uint8_t urgency = 1; 821e5d0e473Sopenharmony_ci ret = cbMsg->GetCmasUrgency(urgency); 822e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 823e5d0e473Sopenharmony_ci 824e5d0e473Sopenharmony_ci uint8_t certainty = 1; 825e5d0e473Sopenharmony_ci ret = cbMsg->GetCmasCertainty(certainty); 826e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 827e5d0e473Sopenharmony_ci 828e5d0e473Sopenharmony_ci uint8_t cmasClass = 1; 829e5d0e473Sopenharmony_ci ret = cbMsg->GetCmasMessageClass(cmasClass); 830e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 831e5d0e473Sopenharmony_ci} 832e5d0e473Sopenharmony_ci 833e5d0e473Sopenharmony_ci/** 834e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GsmCbCodecGetBranch_0002 835e5d0e473Sopenharmony_ci * @tc.name Test GsmCbCodecGetBranch 836e5d0e473Sopenharmony_ci * @tc.desc Function test 837e5d0e473Sopenharmony_ci */ 838e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetBranch_0002, Function | MediumTest | Level1) 839e5d0e473Sopenharmony_ci{ 840e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 841e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 842e5d0e473Sopenharmony_ci uint16_t msgId = 1; 843e5d0e473Sopenharmony_ci bool ret = cbMsg->GetMessageId(msgId); 844e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 845e5d0e473Sopenharmony_ci 846e5d0e473Sopenharmony_ci uint8_t msgType = 1; 847e5d0e473Sopenharmony_ci ret = cbMsg->GetMsgType(msgType); 848e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 849e5d0e473Sopenharmony_ci 850e5d0e473Sopenharmony_ci ret = cbMsg->GetLangType(msgType); 851e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 852e5d0e473Sopenharmony_ci 853e5d0e473Sopenharmony_ci ret = cbMsg->GetDcs(msgType); 854e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 855e5d0e473Sopenharmony_ci 856e5d0e473Sopenharmony_ci int64_t receiveTime = 1; 857e5d0e473Sopenharmony_ci ret = cbMsg->GetReceiveTime(receiveTime); 858e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 859e5d0e473Sopenharmony_ci} 860e5d0e473Sopenharmony_ci 861e5d0e473Sopenharmony_ci/** 862e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_Decode2gHeaderBranch_0001 863e5d0e473Sopenharmony_ci * @tc.name Test Decode2gHeaderBranch 864e5d0e473Sopenharmony_ci * @tc.desc Function test 865e5d0e473Sopenharmony_ci */ 866e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gHeaderBranch_0001, Function | MediumTest | Level1) 867e5d0e473Sopenharmony_ci{ 868e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 869e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 870e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(ETWS_PDU); 871e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU); 872e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 873e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 874e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) 875e5d0e473Sopenharmony_ci { 876e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 877e5d0e473Sopenharmony_ci } 878e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 879e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 880e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_; 881e5d0e473Sopenharmony_ci bool ret = gsmMsg->Decode2gHeader(); 882e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 883e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderEtws(); 884e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 885e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderCommonCb(); 886e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 887e5d0e473Sopenharmony_ci 888e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1; 889e5d0e473Sopenharmony_ci EXPECT_FALSE(gsmMsg->cbHeader_->msgId >= PWS_FIRST_ID); 890e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderEtws(); 891e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 892e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1; 893e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderCommonCb(); 894e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 895e5d0e473Sopenharmony_ci 896e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 2; 897e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeader(); 898e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 899e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 2; 900e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderCommonCb(); 901e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 902e5d0e473Sopenharmony_ci 903e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 3; 904e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeader(); 905e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 906e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 3; 907e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderCommonCb(); 908e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 909e5d0e473Sopenharmony_ci} 910e5d0e473Sopenharmony_ci 911e5d0e473Sopenharmony_ci/** 912e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_Decode2gHeaderCommonCb_0001 913e5d0e473Sopenharmony_ci * @tc.name Test Decode2gHeaderCommonCb 914e5d0e473Sopenharmony_ci * @tc.desc Function test 915e5d0e473Sopenharmony_ci */ 916e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gHeaderCommonCb_0001, Function | MediumTest | Level1) 917e5d0e473Sopenharmony_ci{ 918e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 919e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 920e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(ETWS_PDU); 921e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU); 922e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 923e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 924e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) 925e5d0e473Sopenharmony_ci { 926e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 927e5d0e473Sopenharmony_ci } 928e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 929e5d0e473Sopenharmony_ci ASSERT_NE(gsmMsg, nullptr); 930e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = nullptr; 931e5d0e473Sopenharmony_ci bool ret = gsmMsg->Decode2gHeaderCommonCb(); 932e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 933e5d0e473Sopenharmony_ci 934e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 935e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->totalPages = 18; // MAX_PAGE_NUM 936e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gHeaderCommonCb(); 937e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 938e5d0e473Sopenharmony_ci} 939e5d0e473Sopenharmony_ci 940e5d0e473Sopenharmony_ci/** 941e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_Decode2gCbMsg_0001 942e5d0e473Sopenharmony_ci * @tc.name Test Decode2gCbMsg 943e5d0e473Sopenharmony_ci * @tc.desc Function test 944e5d0e473Sopenharmony_ci */ 945e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg_0001, Function | MediumTest | Level1) 946e5d0e473Sopenharmony_ci{ 947e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 948e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 949e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(ETWS_PDU); 950e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU); 951e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 952e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 953e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) 954e5d0e473Sopenharmony_ci { 955e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 956e5d0e473Sopenharmony_ci } 957e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 958e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->dcs.codingScheme = DATA_CODING_8BIT; 959e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1; 960e5d0e473Sopenharmony_ci bool ret = gsmMsg->Decode2gCbMsg(); 961e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 962e5d0e473Sopenharmony_ci 963e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->curPosition_ = 0; 964e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 965e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 966e5d0e473Sopenharmony_ci 967e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->dcs.iso639Lang[0] = 0; 968e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 969e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 970e5d0e473Sopenharmony_ci 971e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->dcs.iso639Lang[0] = 1; 972e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 973e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 974e5d0e473Sopenharmony_ci 975e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 976e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 977e5d0e473Sopenharmony_ci 978e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_->pduBuffer_ = nullptr; 979e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 980e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 981e5d0e473Sopenharmony_ci 982e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->dcs.codingScheme = DATA_CODING_AUTO; 983e5d0e473Sopenharmony_ci ret = gsmMsg->Decode2gCbMsg(); 984e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 985e5d0e473Sopenharmony_ci} 986e5d0e473Sopenharmony_ci 987e5d0e473Sopenharmony_ci/** 988e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_Decode2gCbMsg7bit_0001 989e5d0e473Sopenharmony_ci * @tc.name Test Decode2gCbMsg7bit 990e5d0e473Sopenharmony_ci * @tc.desc Function test 991e5d0e473Sopenharmony_ci */ 992e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg7bit_0001, Function | MediumTest | Level1) 993e5d0e473Sopenharmony_ci{ 994e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 995e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 996e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(0); 997e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 998e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 999e5d0e473Sopenharmony_ci ASSERT_NE(gsmMsg, nullptr); 1000e5d0e473Sopenharmony_ci uint16_t dataLen = 5; 1001e5d0e473Sopenharmony_ci bool ret = gsmMsg->Decode2gCbMsg7bit(dataLen); 1002e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 1003e5d0e473Sopenharmony_ci} 1004e5d0e473Sopenharmony_ci 1005e5d0e473Sopenharmony_ci/** 1006e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_Decode2gCbMsg7bit_0002 1007e5d0e473Sopenharmony_ci * @tc.name Test Decode2gCbMsg7bit 1008e5d0e473Sopenharmony_ci * @tc.desc Function test 1009e5d0e473Sopenharmony_ci */ 1010e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg7bit_0002, Function | MediumTest | Level1) 1011e5d0e473Sopenharmony_ci{ 1012e5d0e473Sopenharmony_ci auto cbMsg = std::make_shared<GsmCbCodec>(); 1013e5d0e473Sopenharmony_ci ASSERT_NE(cbMsg, nullptr); 1014e5d0e473Sopenharmony_ci cbMsg->CreateCbMessage(CMAS_JP_PDU); 1015e5d0e473Sopenharmony_ci std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_JP_PDU); 1016e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size()); 1017e5d0e473Sopenharmony_ci cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>(); 1018e5d0e473Sopenharmony_ci for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) 1019e5d0e473Sopenharmony_ci { 1020e5d0e473Sopenharmony_ci cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]); 1021e5d0e473Sopenharmony_ci } 1022e5d0e473Sopenharmony_ci auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg); 1023e5d0e473Sopenharmony_ci ASSERT_NE(gsmMsg, nullptr); 1024e5d0e473Sopenharmony_ci gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_; 1025e5d0e473Sopenharmony_ci gsmMsg->cbHeader_->dcs.iso639Lang[0] = 1; 1026e5d0e473Sopenharmony_ci uint16_t dataLen = 5; 1027e5d0e473Sopenharmony_ci bool ret = gsmMsg->Decode2gCbMsg7bit(dataLen); 1028e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1029e5d0e473Sopenharmony_ci} 1030e5d0e473Sopenharmony_ci 1031e5d0e473Sopenharmony_ci/** 1032e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_misc_manager_CloseCBRange_0001 1033e5d0e473Sopenharmony_ci * @tc.name Test CloseCBRange 1034e5d0e473Sopenharmony_ci * @tc.desc Function test 1035e5d0e473Sopenharmony_ci */ 1036e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_CloseCBRange_0001, Function | MediumTest | Level1) 1037e5d0e473Sopenharmony_ci{ 1038e5d0e473Sopenharmony_ci auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID); 1039e5d0e473Sopenharmony_ci ASSERT_NE(smsMiscManager, nullptr); 1040e5d0e473Sopenharmony_ci uint32_t fromMsgId = 2; 1041e5d0e473Sopenharmony_ci uint32_t toMsgId = 2; 1042e5d0e473Sopenharmony_ci SmsMiscManager::gsmCBRangeInfo rangeInfo(2, 2); 1043e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1044e5d0e473Sopenharmony_ci bool ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1045e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1046e5d0e473Sopenharmony_ci 1047e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1048e5d0e473Sopenharmony_ci toMsgId = 3; 1049e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1050e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1051e5d0e473Sopenharmony_ci 1052e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1053e5d0e473Sopenharmony_ci toMsgId = 1; 1054e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1055e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1056e5d0e473Sopenharmony_ci 1057e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1058e5d0e473Sopenharmony_ci fromMsgId = 1; 1059e5d0e473Sopenharmony_ci toMsgId = 2; 1060e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1061e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1062e5d0e473Sopenharmony_ci 1063e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1064e5d0e473Sopenharmony_ci toMsgId = 3; 1065e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1066e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1067e5d0e473Sopenharmony_ci 1068e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1069e5d0e473Sopenharmony_ci fromMsgId = 3; 1070e5d0e473Sopenharmony_ci toMsgId = 2; 1071e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1072e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1073e5d0e473Sopenharmony_ci 1074e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo}; 1075e5d0e473Sopenharmony_ci toMsgId = 1; 1076e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1077e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1078e5d0e473Sopenharmony_ci 1079e5d0e473Sopenharmony_ci SmsMiscManager::gsmCBRangeInfo rangeInfo1(2, 3); 1080e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo1}; 1081e5d0e473Sopenharmony_ci toMsgId = 3; 1082e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1083e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1084e5d0e473Sopenharmony_ci 1085e5d0e473Sopenharmony_ci SmsMiscManager::gsmCBRangeInfo rangeInfo2(2, 1); 1086e5d0e473Sopenharmony_ci smsMiscManager->rangeList_ = {rangeInfo2}; 1087e5d0e473Sopenharmony_ci fromMsgId = 1; 1088e5d0e473Sopenharmony_ci toMsgId = 1; 1089e5d0e473Sopenharmony_ci ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId); 1090e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1091e5d0e473Sopenharmony_ci} 1092e5d0e473Sopenharmony_ci 1093e5d0e473Sopenharmony_ci/** 1094e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_misc_manager_SplitMidValue_0001 1095e5d0e473Sopenharmony_ci * @tc.name Test SplitMidValue 1096e5d0e473Sopenharmony_ci * @tc.desc Function test 1097e5d0e473Sopenharmony_ci */ 1098e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_SplitMidValue_0001, Function | MediumTest | Level1) 1099e5d0e473Sopenharmony_ci{ 1100e5d0e473Sopenharmony_ci auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID); 1101e5d0e473Sopenharmony_ci ASSERT_NE(smsMiscManager, nullptr); 1102e5d0e473Sopenharmony_ci std::string value = ""; 1103e5d0e473Sopenharmony_ci std::string start = ""; 1104e5d0e473Sopenharmony_ci std::string end = ""; 1105e5d0e473Sopenharmony_ci const std::string delimiter = ":"; 1106e5d0e473Sopenharmony_ci bool ret = smsMiscManager->SplitMidValue(value, start, end, delimiter); 1107e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 1108e5d0e473Sopenharmony_ci 1109e5d0e473Sopenharmony_ci value = ":value"; 1110e5d0e473Sopenharmony_ci ret = smsMiscManager->SplitMidValue(value, start, end, delimiter); 1111e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 1112e5d0e473Sopenharmony_ci 1113e5d0e473Sopenharmony_ci value = "value:"; 1114e5d0e473Sopenharmony_ci ret = smsMiscManager->SplitMidValue(value, start, end, delimiter); 1115e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 1116e5d0e473Sopenharmony_ci 1117e5d0e473Sopenharmony_ci value = "value"; 1118e5d0e473Sopenharmony_ci ret = smsMiscManager->SplitMidValue(value, start, end, delimiter); 1119e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1120e5d0e473Sopenharmony_ci 1121e5d0e473Sopenharmony_ci value = "smsMisc:value"; 1122e5d0e473Sopenharmony_ci ret = smsMiscManager->SplitMidValue(value, start, end, delimiter); 1123e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1124e5d0e473Sopenharmony_ci} 1125e5d0e473Sopenharmony_ci 1126e5d0e473Sopenharmony_ci/** 1127e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_misc_DelSimMessage_0001 1128e5d0e473Sopenharmony_ci * @tc.name Test DelSimMessage 1129e5d0e473Sopenharmony_ci * @tc.desc Function test 1130e5d0e473Sopenharmony_ci */ 1131e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_DelSimMessage_0001, Function | MediumTest | Level1) 1132e5d0e473Sopenharmony_ci{ 1133e5d0e473Sopenharmony_ci auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID); 1134e5d0e473Sopenharmony_ci ASSERT_NE(smsMiscManager, nullptr); 1135e5d0e473Sopenharmony_ci uint32_t msgIndex = 1; 1136e5d0e473Sopenharmony_ci int32_t ret = smsMiscManager->DelSimMessage(msgIndex); 1137e5d0e473Sopenharmony_ci EXPECT_EQ(ret, TELEPHONY_ERR_SLOTID_INVALID); 1138e5d0e473Sopenharmony_ci} 1139e5d0e473Sopenharmony_ci 1140e5d0e473Sopenharmony_ci/** 1141e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_misc_SetSmscAddr_0001 1142e5d0e473Sopenharmony_ci * @tc.name Test SetSmscAddr 1143e5d0e473Sopenharmony_ci * @tc.desc Function test 1144e5d0e473Sopenharmony_ci */ 1145e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_SetSmscAddr_0001, Function | MediumTest | Level1) 1146e5d0e473Sopenharmony_ci{ 1147e5d0e473Sopenharmony_ci auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID); 1148e5d0e473Sopenharmony_ci ASSERT_NE(smsMiscManager, nullptr); 1149e5d0e473Sopenharmony_ci const std::string scAddr = ""; 1150e5d0e473Sopenharmony_ci int32_t ret = smsMiscManager->SetSmscAddr(scAddr); 1151e5d0e473Sopenharmony_ci EXPECT_EQ(ret, TELEPHONY_ERR_RIL_CMD_FAIL); 1152e5d0e473Sopenharmony_ci std::u16string smscAddress = u""; 1153e5d0e473Sopenharmony_ci ret = smsMiscManager->GetSmscAddr(smscAddress); 1154e5d0e473Sopenharmony_ci EXPECT_EQ(ret, TELEPHONY_ERR_SUCCESS); 1155e5d0e473Sopenharmony_ci} 1156e5d0e473Sopenharmony_ci 1157e5d0e473Sopenharmony_ci/** 1158e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_GetSmsStateEventIntValue_0001 1159e5d0e473Sopenharmony_ci * @tc.name Test GetSmsStateEventIntValue 1160e5d0e473Sopenharmony_ci * @tc.desc Function test 1161e5d0e473Sopenharmony_ci */ 1162e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_GetSmsStateEventIntValue_0001, Function | MediumTest | Level1) 1163e5d0e473Sopenharmony_ci{ 1164e5d0e473Sopenharmony_ci std::shared_ptr<CommonEventSubscribeInfo> subscribeInfo = std::make_shared<CommonEventSubscribeInfo>(); 1165e5d0e473Sopenharmony_ci std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber = 1166e5d0e473Sopenharmony_ci std::make_shared<SmsStateEventSubscriber>(*subscribeInfo); 1167e5d0e473Sopenharmony_ci std::string event = "event"; 1168e5d0e473Sopenharmony_ci smsStateEventSubscriber->smsStateEvenMapIntValues_[event] = COMMON_EVENT_SMS_CB_RECEIVE_COMPLETED; 1169e5d0e473Sopenharmony_ci auto ret = smsStateEventSubscriber->GetSmsStateEventIntValue(event); 1170e5d0e473Sopenharmony_ci EXPECT_EQ(ret, COMMON_EVENT_SMS_CB_RECEIVE_COMPLETED); 1171e5d0e473Sopenharmony_ci} 1172e5d0e473Sopenharmony_ci 1173e5d0e473Sopenharmony_ci/** 1174e5d0e473Sopenharmony_ci * @tc.number Telephony_Sms_OnAddSystemAbility_0001 1175e5d0e473Sopenharmony_ci * @tc.name Test OnAddSystemAbility 1176e5d0e473Sopenharmony_ci * @tc.desc Function test 1177e5d0e473Sopenharmony_ci */ 1178e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_OnAddSystemAbility_0001, Function | MediumTest | Level1) 1179e5d0e473Sopenharmony_ci{ 1180e5d0e473Sopenharmony_ci std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber = nullptr; 1181e5d0e473Sopenharmony_ci std::shared_ptr<SmsStateObserver::SystemAbilityStatusChangeListener> sysAbilityStatus = 1182e5d0e473Sopenharmony_ci std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber); 1183e5d0e473Sopenharmony_ci int32_t systemAbilityId = 1; 1184e5d0e473Sopenharmony_ci const std::string deviceId = "123"; 1185e5d0e473Sopenharmony_ci sysAbilityStatus->OnAddSystemAbility(systemAbilityId, deviceId); 1186e5d0e473Sopenharmony_ci EXPECT_TRUE(systemAbilityId != COMMON_EVENT_SERVICE_ID); 1187e5d0e473Sopenharmony_ci 1188e5d0e473Sopenharmony_ci systemAbilityId = COMMON_EVENT_SERVICE_ID; 1189e5d0e473Sopenharmony_ci sysAbilityStatus->OnAddSystemAbility(systemAbilityId, deviceId); 1190e5d0e473Sopenharmony_ci EXPECT_TRUE(sysAbilityStatus->sub_ == nullptr); 1191e5d0e473Sopenharmony_ci} 1192e5d0e473Sopenharmony_ci 1193e5d0e473Sopenharmony_ci/** 1194e5d0e473Sopenharmony_ci * @tc.number Telephony_Sms_OnRemoveSystemAbility_0001 1195e5d0e473Sopenharmony_ci * @tc.name Test OnRemoveSystemAbility 1196e5d0e473Sopenharmony_ci * @tc.desc Function test 1197e5d0e473Sopenharmony_ci */ 1198e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_OnRemoveSystemAbility_0001, Function | MediumTest | Level1) 1199e5d0e473Sopenharmony_ci{ 1200e5d0e473Sopenharmony_ci std::shared_ptr<CommonEventSubscribeInfo> subscribeInfo = std::make_shared<CommonEventSubscribeInfo>(); 1201e5d0e473Sopenharmony_ci std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber = nullptr; 1202e5d0e473Sopenharmony_ci std::shared_ptr<SmsStateObserver::SystemAbilityStatusChangeListener> sysAbilityStatus = 1203e5d0e473Sopenharmony_ci std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber); 1204e5d0e473Sopenharmony_ci int32_t systemAbilityId = 1; 1205e5d0e473Sopenharmony_ci const std::string deviceId = "123"; 1206e5d0e473Sopenharmony_ci sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId); 1207e5d0e473Sopenharmony_ci EXPECT_TRUE(systemAbilityId != COMMON_EVENT_SERVICE_ID); 1208e5d0e473Sopenharmony_ci 1209e5d0e473Sopenharmony_ci systemAbilityId = COMMON_EVENT_SERVICE_ID; 1210e5d0e473Sopenharmony_ci sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId); 1211e5d0e473Sopenharmony_ci EXPECT_TRUE(systemAbilityId == COMMON_EVENT_SERVICE_ID); 1212e5d0e473Sopenharmony_ci 1213e5d0e473Sopenharmony_ci sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId); 1214e5d0e473Sopenharmony_ci EXPECT_TRUE(sysAbilityStatus->sub_ == nullptr); 1215e5d0e473Sopenharmony_ci 1216e5d0e473Sopenharmony_ci smsStateEventSubscriber = std::make_shared<SmsStateEventSubscriber>(*subscribeInfo); 1217e5d0e473Sopenharmony_ci sysAbilityStatus = 1218e5d0e473Sopenharmony_ci std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber); 1219e5d0e473Sopenharmony_ci sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId); 1220e5d0e473Sopenharmony_ci EXPECT_TRUE(sysAbilityStatus->sub_ != nullptr); 1221e5d0e473Sopenharmony_ci} 1222e5d0e473Sopenharmony_ci 1223e5d0e473Sopenharmony_ci/** 1224e5d0e473Sopenharmony_ci * @tc.number Telephony_Sms_GetSmsUserDataMultipage_0001 1225e5d0e473Sopenharmony_ci * @tc.name Test GetSmsUserDataMultipage 1226e5d0e473Sopenharmony_ci * @tc.desc Function test 1227e5d0e473Sopenharmony_ci */ 1228e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_GetSmsUserDataMultipage_0001, Function | MediumTest | Level1) 1229e5d0e473Sopenharmony_ci{ 1230e5d0e473Sopenharmony_ci auto reliabilityHandler = std::make_shared<SmsReceiveReliabilityHandler>(INVALID_SLOTID); 1231e5d0e473Sopenharmony_ci int32_t smsPagesCount = 1; 1232e5d0e473Sopenharmony_ci SmsReceiveIndexer smsReceiveIndexer; 1233e5d0e473Sopenharmony_ci smsReceiveIndexer.msgSeqId_ = 0; 1234e5d0e473Sopenharmony_ci smsReceiveIndexer.msgRefId_ = 1; 1235e5d0e473Sopenharmony_ci std::vector<SmsReceiveIndexer> dbIndexers = {smsReceiveIndexer, smsReceiveIndexer}; 1236e5d0e473Sopenharmony_ci int32_t position = -1; 1237e5d0e473Sopenharmony_ci std::vector<std::string> initialData = {"User1", "User2"}; 1238e5d0e473Sopenharmony_ci std::shared_ptr<std::vector<std::string>> userDataRaws = std::make_shared<std::vector<std::string>>(initialData); 1239e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1240e5d0e473Sopenharmony_ci EXPECT_TRUE(position < 0); 1241e5d0e473Sopenharmony_ci 1242e5d0e473Sopenharmony_ci position = 2; 1243e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1244e5d0e473Sopenharmony_ci EXPECT_TRUE(position >= static_cast<int32_t>(dbIndexers.size())); 1245e5d0e473Sopenharmony_ci 1246e5d0e473Sopenharmony_ci position = 0; 1247e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1248e5d0e473Sopenharmony_ci EXPECT_TRUE(dbIndexers[position].GetMsgSeqId() < 1); 1249e5d0e473Sopenharmony_ci 1250e5d0e473Sopenharmony_ci dbIndexers[position].msgSeqId_ = MAX_SEGMENT_NUM + 1; 1251e5d0e473Sopenharmony_ci reliabilityHandler->HiSysEventCBResult(true); 1252e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1253e5d0e473Sopenharmony_ci EXPECT_TRUE(dbIndexers[position].GetMsgSeqId() > MAX_SEGMENT_NUM); 1254e5d0e473Sopenharmony_ci 1255e5d0e473Sopenharmony_ci dbIndexers[position].msgSeqId_ = 1; 1256e5d0e473Sopenharmony_ci dbIndexers[position + 1].msgSeqId_ = 0; 1257e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1258e5d0e473Sopenharmony_ci EXPECT_TRUE(dbIndexers[position + 1].GetMsgSeqId() < 1); 1259e5d0e473Sopenharmony_ci 1260e5d0e473Sopenharmony_ci dbIndexers.push_back(smsReceiveIndexer); 1261e5d0e473Sopenharmony_ci dbIndexers[position + 1].msgSeqId_ = MAX_SEGMENT_NUM + 1; 1262e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1263e5d0e473Sopenharmony_ci EXPECT_TRUE(dbIndexers[position + 1].GetMsgSeqId() > MAX_SEGMENT_NUM); 1264e5d0e473Sopenharmony_ci 1265e5d0e473Sopenharmony_ci dbIndexers.push_back(smsReceiveIndexer); 1266e5d0e473Sopenharmony_ci dbIndexers[position + 1].msgSeqId_ = 1; 1267e5d0e473Sopenharmony_ci reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws); 1268e5d0e473Sopenharmony_ci EXPECT_EQ(smsPagesCount, 2); 1269e5d0e473Sopenharmony_ci} 1270e5d0e473Sopenharmony_ci 1271e5d0e473Sopenharmony_ci/** 1272e5d0e473Sopenharmony_ci * @tc.number Telephony_Sms_SendCacheMapLimitCheck_0001 1273e5d0e473Sopenharmony_ci * @tc.name Test SendCacheMapLimitCheck 1274e5d0e473Sopenharmony_ci * @tc.desc Function test 1275e5d0e473Sopenharmony_ci */ 1276e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_SendCacheMapLimitCheck_0001, Function | MediumTest | Level1) 1277e5d0e473Sopenharmony_ci{ 1278e5d0e473Sopenharmony_ci std::function<void(std::shared_ptr<SmsSendIndexer>)> fun = nullptr; 1279e5d0e473Sopenharmony_ci std::shared_ptr<SmsSender> smsSender = std::make_shared<CdmaSmsSender>(INVALID_SLOTID, fun); 1280e5d0e473Sopenharmony_ci const sptr<ISendShortMessageCallback> sendCallback = nullptr; 1281e5d0e473Sopenharmony_ci bool ret = smsSender->SendCacheMapLimitCheck(sendCallback); 1282e5d0e473Sopenharmony_ci EXPECT_FALSE(ret); 1283e5d0e473Sopenharmony_ci for (size_t i = 0; i < 30; i++) 1284e5d0e473Sopenharmony_ci { 1285e5d0e473Sopenharmony_ci smsSender->sendCacheMap_[i] = nullptr; 1286e5d0e473Sopenharmony_ci } 1287e5d0e473Sopenharmony_ci ret = smsSender->SendCacheMapLimitCheck(sendCallback); 1288e5d0e473Sopenharmony_ci EXPECT_TRUE(ret); 1289e5d0e473Sopenharmony_ci} 1290e5d0e473Sopenharmony_ci} // namespace Telephony 1291e5d0e473Sopenharmony_ci} // namespace OHOS 1292