1e5d0e473Sopenharmony_ci/* 2e5d0e473Sopenharmony_ci * Copyright (C) 2023 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 "gtest/gtest.h" 20e5d0e473Sopenharmony_ci#include "mms_body.h" 21e5d0e473Sopenharmony_ci#include "mms_body_part.h" 22e5d0e473Sopenharmony_ci#include "mms_content_type.h" 23e5d0e473Sopenharmony_ci#include "mms_encode_buffer.h" 24e5d0e473Sopenharmony_ci#include "mms_header.h" 25e5d0e473Sopenharmony_ci#include "mms_msg.h" 26e5d0e473Sopenharmony_ci#include "mms_network_manager.h" 27e5d0e473Sopenharmony_ci#include "mms_persist_helper.h" 28e5d0e473Sopenharmony_ci#include "sms_mms_gtest.h" 29e5d0e473Sopenharmony_ci#include "sms_service.h" 30e5d0e473Sopenharmony_ci#include "sms_wap_push_buffer.h" 31e5d0e473Sopenharmony_ci#include "sms_wap_push_content_type.h" 32e5d0e473Sopenharmony_ci 33e5d0e473Sopenharmony_cinamespace OHOS { 34e5d0e473Sopenharmony_cinamespace Telephony { 35e5d0e473Sopenharmony_ciusing namespace testing::ext; 36e5d0e473Sopenharmony_ci 37e5d0e473Sopenharmony_cinamespace { 38e5d0e473Sopenharmony_ciconst uint32_t TRANSACTION_ID_LENGTH = 3; 39e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH = 126; 40e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_ONE = 128; 41e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_TWO = 127; 42e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_THREE = 31; 43e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_FOUR = 129; 44e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_FIVE = 139; 45e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_SIX = 134; 46e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_SEVEN = 152; 47e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_EIGHT = 153; 48e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_NINE = 138; 49e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_TEN = 133; 50e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_ELEVEN = 151; 51e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_TWELVE = 154; 52e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_THIRTEEN = 131; 53e5d0e473Sopenharmony_ciconst uint32_t PDU_BUFFE_LENGTH_FOURTEEN = 137; 54e5d0e473Sopenharmony_ciconst uint8_t MIN_TOKEN = 30; 55e5d0e473Sopenharmony_ciconst uint8_t MAX_TOKEN = 127; 56e5d0e473Sopenharmony_ciconst uint8_t FIELD_ID = 2; 57e5d0e473Sopenharmony_ciconst int32_t INVALID_SLOTID = 2; 58e5d0e473Sopenharmony_ciconst int32_t VALUE_LENGTH = 2; 59e5d0e473Sopenharmony_cistatic constexpr uint32_t MAX_MMS_MSG_PART_LEN = 10 * 1024 * 1024; 60e5d0e473Sopenharmony_ciconst uint32_t CODE_BUFFER_MAX_SIZE = 10 * 1024 * 1024; 61e5d0e473Sopenharmony_ciconst std::string METHOD_POST = "POST"; 62e5d0e473Sopenharmony_ciconst std::string METHOD_GET = "GET"; 63e5d0e473Sopenharmony_ciconst std::string TEST_DATA = "test data test data"; 64e5d0e473Sopenharmony_ciconst std::string TEST_PATH = "testPath"; 65e5d0e473Sopenharmony_ciconst std::string TEST_URLS = "url1, url2, url3,"; 66e5d0e473Sopenharmony_ciconst size_t URL_COUNT = 3; 67e5d0e473Sopenharmony_ciconstexpr uint32_t SPLIT_PDU_LENGTH = 195 * 1024; 68e5d0e473Sopenharmony_ciconst size_t SPLIT_PDU_COUNT = 3; 69e5d0e473Sopenharmony_ciconst size_t BUF_LEN = 10; 70e5d0e473Sopenharmony_ciconst int VALUE_4 = 4; 71e5d0e473Sopenharmony_ciconst int VALUE_9 = 9; 72e5d0e473Sopenharmony_ciconst int VALUE_16 = 0x10; 73e5d0e473Sopenharmony_ciconst int VALUE_31 = 31; 74e5d0e473Sopenharmony_ciconst int VALUE_32 = 32; 75e5d0e473Sopenharmony_ciconst int VALUE_AF = 0xAF; 76e5d0e473Sopenharmony_ciconstexpr const char *TEST_STR = "str"; 77e5d0e473Sopenharmony_ciconstexpr const char *INPUT_STR = "00"; 78e5d0e473Sopenharmony_ciconstexpr const char *SRC_STR = "123"; 79e5d0e473Sopenharmony_ciconstexpr const char *BEGIN_STR = "01"; 80e5d0e473Sopenharmony_ciconstexpr const char *END_STR = "FF"; 81e5d0e473Sopenharmony_ciconst char PDU_COUNT = 10; 82e5d0e473Sopenharmony_ciconst char INPUT_INTEGER = 128; 83e5d0e473Sopenharmony_ciconst std::string VNET_MMSC = "http://mmsc.vnet.mobi"; 84e5d0e473Sopenharmony_ci} // namespace 85e5d0e473Sopenharmony_ci 86e5d0e473Sopenharmony_ciclass BranchMmsTest : public testing::Test { 87e5d0e473Sopenharmony_cipublic: 88e5d0e473Sopenharmony_ci static void SetUpTestCase(); 89e5d0e473Sopenharmony_ci static void TearDownTestCase(); 90e5d0e473Sopenharmony_ci void SetUp(); 91e5d0e473Sopenharmony_ci void TearDown(); 92e5d0e473Sopenharmony_ci}; 93e5d0e473Sopenharmony_civoid BranchMmsTest::SetUpTestCase() {} 94e5d0e473Sopenharmony_ci 95e5d0e473Sopenharmony_civoid BranchMmsTest::TearDownTestCase() {} 96e5d0e473Sopenharmony_ci 97e5d0e473Sopenharmony_civoid BranchMmsTest::SetUp() {} 98e5d0e473Sopenharmony_ci 99e5d0e473Sopenharmony_civoid BranchMmsTest::TearDown() {} 100e5d0e473Sopenharmony_ci 101e5d0e473Sopenharmony_ci/** 102e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsHeader_0001 103e5d0e473Sopenharmony_ci * @tc.name Test MmsHeader 104e5d0e473Sopenharmony_ci * @tc.desc Function test 105e5d0e473Sopenharmony_ci */ 106e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsHeader_0001, Function | MediumTest | Level1) 107e5d0e473Sopenharmony_ci{ 108e5d0e473Sopenharmony_ci auto mmsHeader = std::make_shared<MmsHeader>(); 109e5d0e473Sopenharmony_ci MmsEncodeString encodeString; 110e5d0e473Sopenharmony_ci MmsDecodeBuffer decodeBuffer; 111e5d0e473Sopenharmony_ci MmsEncodeBuffer encodeBuffer; 112e5d0e473Sopenharmony_ci std::string encodeAddress = SRC_STR; 113e5d0e473Sopenharmony_ci uint8_t value = 0; 114e5d0e473Sopenharmony_ci MmsAddress address(encodeAddress); 115e5d0e473Sopenharmony_ci std::vector<MmsAddress> addressValue; 116e5d0e473Sopenharmony_ci addressValue.push_back(address); 117e5d0e473Sopenharmony_ci mmsHeader->octetValueMap_.insert(pair<uint8_t, uint8_t>(1, 1)); 118e5d0e473Sopenharmony_ci mmsHeader->longValueMap_.insert(pair<uint8_t, int64_t>(1, 1)); 119e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(1, "1")); 120e5d0e473Sopenharmony_ci mmsHeader->encodeStringsMap_.insert(pair<uint8_t, MmsEncodeString>(1, encodeString)); 121e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(1, addressValue)); 122e5d0e473Sopenharmony_ci mmsHeader->DumpMmsHeader(); 123e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->DecodeMmsHeader(decodeBuffer)); 124e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsHeader(encodeBuffer)); 125e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetOctetValue(1, value)); 126e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(1, 0)); 127e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 128e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_MESSAGE_TYPE, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 129e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 130e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_PRIORITY, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 131e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 132e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_RESPONSE_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 133e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 134e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_SENDER_VISIBILITY, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 135e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 136e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 137e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 138e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_RETRIEVE_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 139e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 140e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_READ_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 141e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 142e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_REPLY_CHARGING, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 143e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_MESSAGE_TYPE, MMS_MESSAGE_TYPE)); 144e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_PRIORITY, MMS_PRIORITY)); 145e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_RESPONSE_STATUS, MMS_RESPONSE_STATUS)); 146e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_SENDER_VISIBILITY, MMS_SENDER_VISIBILITY)); 147e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_STATUS, MMS_STATUS)); 148e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_RETRIEVE_STATUS, MMS_RETRIEVE_STATUS)); 149e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_READ_STATUS, MMS_READ_STATUS)); 150e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_REPLY_CHARGING, MMS_REPLY_CHARGING)); 151e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_MM_STATE, MMS_MM_STATE)); 152e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetHeaderAllAddressValue(1, addressValue)); 153e5d0e473Sopenharmony_ci} 154e5d0e473Sopenharmony_ci 155e5d0e473Sopenharmony_ci/** 156e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsHeader_0002 157e5d0e473Sopenharmony_ci * @tc.name Test MmsHeader 158e5d0e473Sopenharmony_ci * @tc.desc Function test 159e5d0e473Sopenharmony_ci */ 160e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsHeader_0002, Function | MediumTest | Level1) 161e5d0e473Sopenharmony_ci{ 162e5d0e473Sopenharmony_ci auto mmsHeader = std::make_shared<MmsHeader>(); 163e5d0e473Sopenharmony_ci int64_t value = 0; 164e5d0e473Sopenharmony_ci std::string valueStr = ""; 165e5d0e473Sopenharmony_ci std::string encodeAddress = SRC_STR; 166e5d0e473Sopenharmony_ci MmsAddress address(encodeAddress); 167e5d0e473Sopenharmony_ci std::vector<MmsAddress> addressValue; 168e5d0e473Sopenharmony_ci addressValue.push_back(address); 169e5d0e473Sopenharmony_ci MmsEncodeString encodeString; 170e5d0e473Sopenharmony_ci mmsHeader->longValueMap_.insert(pair<uint8_t, int64_t>(1, 1)); 171e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(1, "1")); 172e5d0e473Sopenharmony_ci mmsHeader->encodeStringsMap_.insert(pair<uint8_t, MmsEncodeString>(1, encodeString)); 173e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 174e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_STORE_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 175e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 176e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_CONTENT_CLASS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 177e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 178e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_MESSAGE_CLASS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 179e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 180e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_CANCEL_STATUS, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 181e5d0e473Sopenharmony_ci mmsHeader->mmsHaderCateg_.mmsFieldDesMap_.insert( 182e5d0e473Sopenharmony_ci pair<uint8_t, MmsFieldValueType>(MMS_ADAPTATION_ALLOWED, MmsFieldValueType::MMS_FIELD_OCTET_TYPE)); 183e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->SetOctetValue(MMS_ADAPTATION_ALLOWED, MMS_BCC)); 184e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetLongValue(1, value)); 185e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetTextValue(1, valueStr)); 186e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetEncodeStringValue(1, encodeString)); 187e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetTextValue(MMS_CANCEL_STATUS, "")); 188e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetTextValue(MMS_CANCEL_STATUS, SRC_STR)); 189e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_MM_FLAGS, MMS_MM_FLAGS)); 190e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_CONTENT_CLASS, MMS_CONTENT_CLASS)); 191e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_MESSAGE_CLASS, MMS_MESSAGE_CLASS)); 192e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetOctetValue(MMS_CANCEL_STATUS, MMS_CANCEL_STATUS)); 193e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetLongValue(MMS_MESSAGE_CLASS, 0)); 194e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetEncodeStringValue(1, 1, valueStr)); 195e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->SetEncodeStringValue(MMS_STORE_STATUS, 1, encodeAddress)); 196e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->AddHeaderAddressValue(1, address)); 197e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetStringValue(1, encodeAddress)); 198e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->GetStringValue(FIELD_ID, encodeAddress)); 199e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->GetSmilFileName(valueStr)); 200e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->IsHaveBody()); 201e5d0e473Sopenharmony_ci} 202e5d0e473Sopenharmony_ci 203e5d0e473Sopenharmony_ci/** 204e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsHeader_0003 205e5d0e473Sopenharmony_ci * @tc.name Test MmsHeader 206e5d0e473Sopenharmony_ci * @tc.desc Function test 207e5d0e473Sopenharmony_ci */ 208e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsHeader_0003, Function | MediumTest | Level1) 209e5d0e473Sopenharmony_ci{ 210e5d0e473Sopenharmony_ci auto mmsHeader = std::make_shared<MmsHeader>(); 211e5d0e473Sopenharmony_ci MmsDecodeBuffer decodeBuffer; 212e5d0e473Sopenharmony_ci MmsEncodeBuffer buff; 213e5d0e473Sopenharmony_ci std::string encodeAddress = SRC_STR; 214e5d0e473Sopenharmony_ci MmsAddress address(encodeAddress); 215e5d0e473Sopenharmony_ci std::vector<MmsAddress> addressValue; 216e5d0e473Sopenharmony_ci addressValue.push_back(address); 217e5d0e473Sopenharmony_ci int32_t data = 0; 218e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_BCC, addressValue)); 219e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_FROM, addressValue)); 220e5d0e473Sopenharmony_ci EXPECT_NE(mmsHeader->MakeTransactionId(TRANSACTION_ID_LENGTH), ""); 221e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeMmsMsgType(1, decodeBuffer, data)); 222e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeMmsMsgType(MMS_BCC, decodeBuffer, data)); 223e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldAddressModelValue(1, decodeBuffer, data)); 224e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->DecodeFieldAddressModelValue(MMS_BCC, decodeBuffer, data)); 225e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldOctetValue(1, decodeBuffer, data)); 226e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldLongValue(1, decodeBuffer, data)); 227e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldIntegerValue(1, decodeBuffer, data)); 228e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldTextStringValue(1, decodeBuffer, data)); 229e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldTextStringValue(MMS_BCC, decodeBuffer, data)); 230e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldEncodedStringValue(1, decodeBuffer, data)); 231e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldEncodedStringValue(MMS_BCC, decodeBuffer, data)); 232e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFromValue(1, decodeBuffer, data)); 233e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeMmsMsgUnKnownField(decodeBuffer)); 234e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeMmsContentType(1, decodeBuffer, data)); 235e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldDate(1, decodeBuffer, data)); 236e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldDate(MMS_BCC, decodeBuffer, data)); 237e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldPreviouslySentDate(1, decodeBuffer, data)); 238e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldPreviouslySentDate(MMS_BCC, decodeBuffer, data)); 239e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldMBox(1, decodeBuffer, data)); 240e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldMBox(MMS_BCC, decodeBuffer, data)); 241e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldMMFlag(1, decodeBuffer, data)); 242e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->DecodeFieldMMFlag(MMS_BCC, decodeBuffer, data)); 243e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EncodeFieldFromValue(buff, addressValue)); 244e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_CLASS, "personal")); 245e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EcondeFieldMessageClassValue(buff)); 246e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_CLASS, "advertisement")); 247e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EcondeFieldMessageClassValue(buff)); 248e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_CLASS, "informational")); 249e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EcondeFieldMessageClassValue(buff)); 250e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_CLASS, "auto")); 251e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EcondeFieldMessageClassValue(buff)); 252e5d0e473Sopenharmony_ci mmsHeader->octetValueMap_.insert(pair<uint8_t, uint8_t>(MMS_MESSAGE_CLASS, 1)); 253e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EcondeFieldMessageClassValue(buff)); 254e5d0e473Sopenharmony_ci} 255e5d0e473Sopenharmony_ci 256e5d0e473Sopenharmony_ci/** 257e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsHeader_0004 258e5d0e473Sopenharmony_ci * @tc.name Test MmsHeader 259e5d0e473Sopenharmony_ci * @tc.desc Function test 260e5d0e473Sopenharmony_ci */ 261e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsHeader_0004, Function | MediumTest | Level1) 262e5d0e473Sopenharmony_ci{ 263e5d0e473Sopenharmony_ci auto mmsHeader = std::make_shared<MmsHeader>(); 264e5d0e473Sopenharmony_ci MmsEncodeBuffer buff; 265e5d0e473Sopenharmony_ci std::string encodeAddress = SRC_STR; 266e5d0e473Sopenharmony_ci MmsAddress address(encodeAddress); 267e5d0e473Sopenharmony_ci std::vector<MmsAddress> addrs; 268e5d0e473Sopenharmony_ci mmsHeader->longValueMap_.insert(pair<uint8_t, int64_t>(MMS_EXPIRY, 1)); 269e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_TRANSACTION_ID, "auto")); 270e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EncodeCommontFieldValue(buff)); 271e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMultipleAddressValue(buff, 1, addrs)); 272e5d0e473Sopenharmony_ci addrs.push_back(address); 273e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EncodeMultipleAddressValue(buff, 1, addrs)); 274e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EncodeMmsSendReq(buff)); 275e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsSendConf(buff)); 276e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsNotificationInd(buff)); 277e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_CONTENT_LOCATION, "auto")); 278e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsNotificationInd(buff)); 279e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsNotifyRespInd(buff)); 280e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsRetrieveConf(buff)); 281e5d0e473Sopenharmony_ci mmsHeader->longValueMap_.insert(pair<uint8_t, int64_t>(MMS_DATE, 1)); 282e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_CC, addrs)); 283e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EnocdeMmsRetrieveConf(buff)); 284e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsDeliveryInd(buff)); 285e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_TO, addrs)); 286e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EnocdeMmsRetrieveConf(buff)); 287e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_FROM, addrs)); 288e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->EnocdeMmsRetrieveConf(buff)); 289e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsDeliveryInd(buff)); 290e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadRecInd(buff)); 291e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_ID, "auto")); 292e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsDeliveryInd(buff)); 293e5d0e473Sopenharmony_ci mmsHeader->longValueMap_.clear(); 294e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EnocdeMmsDeliveryInd(buff)); 295e5d0e473Sopenharmony_ci mmsHeader->addressMap_.clear(); 296e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.clear(); 297e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadRecInd(buff)); 298e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadOrigInd(buff)); 299e5d0e473Sopenharmony_ci mmsHeader->textValueMap_.insert(pair<uint8_t, std::string>(MMS_MESSAGE_ID, "auto")); 300e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadOrigInd(buff)); 301e5d0e473Sopenharmony_ci mmsHeader->addressMap_.insert(pair<uint8_t, std::vector<MmsAddress>>(MMS_TO, addrs)); 302e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadOrigInd(buff)); 303e5d0e473Sopenharmony_ci mmsHeader->octetValueMap_.insert(pair<uint8_t, uint8_t>(MMS_READ_STATUS, 1)); 304e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeMmsReadOrigInd(buff)); 305e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_DRM_CONTENT, 0)); 306e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_BCC, 1)); 307e5d0e473Sopenharmony_ci} 308e5d0e473Sopenharmony_ci 309e5d0e473Sopenharmony_ci/** 310e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsHeader_0005 311e5d0e473Sopenharmony_ci * @tc.name Test MmsHeader 312e5d0e473Sopenharmony_ci * @tc.desc Function test 313e5d0e473Sopenharmony_ci */ 314e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsHeader_0005, Function | MediumTest | Level1) 315e5d0e473Sopenharmony_ci{ 316e5d0e473Sopenharmony_ci auto mmsHeader = std::make_shared<MmsHeader>(); 317e5d0e473Sopenharmony_ci MmsEncodeBuffer buff; 318e5d0e473Sopenharmony_ci MmsEncodeString value; 319e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeTextStringValue(buff, 1, "")); 320e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->EncodeEncodeStringValue(buff, 1, value)); 321e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_SEND_REQ)); 322e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_SEND_CONF)); 323e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_NOTIFICATION_IND)); 324e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_NOTIFYRESP_IND)); 325e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_RETRIEVE_CONF)); 326e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->IsHaveTransactionId(MMS_MSGTYPE_ACKNOWLEDGE_IND)); 327e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckResponseStatus(static_cast<uint8_t>(MmsResponseStatus::MMS_OK))); 328e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckResponseStatus(static_cast<uint8_t>(MmsResponseStatus::MMS_ERROR_UNSUPPORTED_MESSAGE))); 329e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckResponseStatus(static_cast<uint8_t>(MmsResponseStatus::MMS_ERROR_PERMANENT_FAILURE))); 330e5d0e473Sopenharmony_ci EXPECT_TRUE( 331e5d0e473Sopenharmony_ci mmsHeader->CheckResponseStatus(static_cast<uint8_t>(MmsResponseStatus::MMS_ERROR_PERMANENT_LACK_OF_PREPAID))); 332e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckRetrieveStatus(static_cast<uint8_t>(MmsRetrieveStatus::MMS_RETRIEVE_STATUS_OK))); 333e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckRetrieveStatus( 334e5d0e473Sopenharmony_ci static_cast<uint8_t>(MmsRetrieveStatus::MMS_RETRIEVE_STATUS_ERROR_PERMANENT_FAILURE))); 335e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckRetrieveStatus( 336e5d0e473Sopenharmony_ci static_cast<uint8_t>(MmsRetrieveStatus::MMS_RETRIEVE_STATUS_ERROR_PERMANENT_CONTENT_UNSUPPORTED))); 337e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckRetrieveStatus( 338e5d0e473Sopenharmony_ci static_cast<uint8_t>(MmsRetrieveStatus::MMS_RETRIEVE_STATUS_ERROR_TRANSIENT_FAILURE))); 339e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckRetrieveStatus( 340e5d0e473Sopenharmony_ci static_cast<uint8_t>(MmsRetrieveStatus::MMS_RETRIEVE_STATUS_ERROR_TRANSIENT_NETWORK_PROBLEM))); 341e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckStoreStatus(static_cast<uint8_t>(MmsStoreStatus::MMS_STORE_STATUS_SUCCESS))); 342e5d0e473Sopenharmony_ci EXPECT_TRUE( 343e5d0e473Sopenharmony_ci mmsHeader->CheckStoreStatus(static_cast<uint8_t>(MmsStoreStatus::MMS_STORE_STATUS_ERROR_TRANSIENT_FAILURE))); 344e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckStoreStatus( 345e5d0e473Sopenharmony_ci static_cast<uint8_t>(MmsStoreStatus::MMS_STORE_STATUS_ERROR_TRANSIENT_NETWORK_PROBLEM))); 346e5d0e473Sopenharmony_ci EXPECT_TRUE( 347e5d0e473Sopenharmony_ci mmsHeader->CheckStoreStatus(static_cast<uint8_t>(MmsStoreStatus::MMS_STORE_STATUS_ERROR_PERMANENT_FAILURE))); 348e5d0e473Sopenharmony_ci EXPECT_TRUE( 349e5d0e473Sopenharmony_ci mmsHeader->CheckStoreStatus(static_cast<uint8_t>(MmsStoreStatus::MMS_STORE_STATUS_ERROR_PERMANENT_MMBOX_FULL))); 350e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsHeader->CheckBooleanValue(MMS_DELIVERY_REPORT, static_cast<uint8_t>(MmsBoolType::MMS_YES))); 351e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_READ_REPORT, 0)); 352e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_REPORT_ALLOWED, 0)); 353e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_STORE, 0)); 354e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_STORED, 0)); 355e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_TOTALS, 0)); 356e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_QUOTAS, 0)); 357e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsHeader->CheckBooleanValue(MMS_DISTRIBUTION_INDICATOR, 0)); 358e5d0e473Sopenharmony_ci} 359e5d0e473Sopenharmony_ci 360e5d0e473Sopenharmony_ci/** 361e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushBuffer_0001 362e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushBuffer 363e5d0e473Sopenharmony_ci * @tc.desc Function test 364e5d0e473Sopenharmony_ci */ 365e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushBuffer_0001, Function | MediumTest | Level1) 366e5d0e473Sopenharmony_ci{ 367e5d0e473Sopenharmony_ci auto smsWapPushBuffer = std::make_shared<SmsWapPushBuffer>(); 368e5d0e473Sopenharmony_ci uint8_t oneByte = 0; 369e5d0e473Sopenharmony_ci uint8_t sValueLength = 0; 370e5d0e473Sopenharmony_ci uint32_t valueLength = 0; 371e5d0e473Sopenharmony_ci uint32_t length = 1; 372e5d0e473Sopenharmony_ci std::string str = "qwe"; 373e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->GetOneByte(oneByte)); 374e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->IncreasePointer(1)); 375e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecreasePointer(1)); 376e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeShortLength(sValueLength)); 377e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeValueLengthReturnLen(valueLength, length)); 378e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeUintvar(valueLength, length)); 379e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeValueLength(valueLength)); 380e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeText(str, length)); 381e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeShortInteger(oneByte)); 382e5d0e473Sopenharmony_ci smsWapPushBuffer->totolLength_ = 1; 383e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 1; 384e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->IncreasePointer(1)); 385e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 386e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_ = std::make_unique<char[]>(1); 387e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = 0; 388e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeShortLength(sValueLength)); 389e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 390e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = 0; 391e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeValueLengthReturnLen(valueLength, length)); 392e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 393e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 394e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeIsString()); 395e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_ONE; 396e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeUintvar(valueLength, length)); 397e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 398e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeShortInteger(oneByte)); 399e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 400e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeValueLength(valueLength)); 401e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 402e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_THREE; 403e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeIsValueLength()); 404e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeValueLength(valueLength)); 405e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 406e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeTokenText(str, length)); 407e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 408e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeText(str, length)); 409e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->CharIsToken(MIN_TOKEN)); 410e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->CharIsToken(MAX_TOKEN)); 411e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 412e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH; 413e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeTokenText(str, length)); 414e5d0e473Sopenharmony_ci} 415e5d0e473Sopenharmony_ci 416e5d0e473Sopenharmony_ci/** 417e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushBuffer_0002 418e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushBuffer 419e5d0e473Sopenharmony_ci * @tc.desc Function test 420e5d0e473Sopenharmony_ci */ 421e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushBuffer_0002, Function | MediumTest | Level1) 422e5d0e473Sopenharmony_ci{ 423e5d0e473Sopenharmony_ci auto smsWapPushBuffer = std::make_shared<SmsWapPushBuffer>(); 424e5d0e473Sopenharmony_ci uint64_t iInteger = 0; 425e5d0e473Sopenharmony_ci std::string str = "qwe"; 426e5d0e473Sopenharmony_ci bool isNoValue = true; 427e5d0e473Sopenharmony_ci uint32_t len = 1; 428e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_ = std::make_unique<char[]>(1); 429e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeLongInteger(iInteger)); 430e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeTextValue(str, isNoValue)); 431e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeNoValue(isNoValue)); 432e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->ReadDataBuffer(1, 1) == nullptr); 433e5d0e473Sopenharmony_ci smsWapPushBuffer->totolLength_ = 1; 434e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = 1; 435e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeLongInteger(iInteger)); 436e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 437e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_THREE; 438e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeLongInteger(iInteger)); 439e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 440e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = 1; 441e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeTextValue(str, isNoValue)); 442e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->ReadDataBuffer(1, 1) == nullptr); 443e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->WriteRawStringBuffer(str)); 444e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->WriteDataBuffer(nullptr, 1)); 445e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 446e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = 0; 447e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeQuotedText(str, len)); 448e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 449e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 450e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeQuotedText(str, len)); 451e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 452e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_ONE; 453e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushBuffer->DecodeInteger(iInteger)); 454e5d0e473Sopenharmony_ci smsWapPushBuffer->curPosition_ = 0; 455e5d0e473Sopenharmony_ci smsWapPushBuffer->pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 456e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushBuffer->DecodeInteger(iInteger)); 457e5d0e473Sopenharmony_ci} 458e5d0e473Sopenharmony_ci 459e5d0e473Sopenharmony_ci/** 460e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushHandler_0001 461e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushHandler 462e5d0e473Sopenharmony_ci * @tc.desc Function test 463e5d0e473Sopenharmony_ci */ 464e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushHandler_0001, Function | MediumTest | Level1) 465e5d0e473Sopenharmony_ci{ 466e5d0e473Sopenharmony_ci auto smsWapPushHandler = std::make_shared<SmsWapPushHandler>(INVALID_SLOTID); 467e5d0e473Sopenharmony_ci SmsWapPushBuffer decodeBuffer; 468e5d0e473Sopenharmony_ci std::string wapPdu = ""; 469e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeWapPushPduData(decodeBuffer, 1, 1)); 470e5d0e473Sopenharmony_ci auto indexer = std::make_shared<SmsReceiveIndexer>(); 471e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeWapPushPdu(indexer, wapPdu)); 472e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DeocdeCheckIsBlock(wapPdu)); 473e5d0e473Sopenharmony_ci wapPdu = "qwer"; 474e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeWapPushPdu(indexer, wapPdu)); 475e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodePushType(decodeBuffer)); 476e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DeocdeCheckIsBlock(wapPdu)); 477e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplication(decodeBuffer, 1)); 478e5d0e473Sopenharmony_ci smsWapPushHandler->DeleteWapPush(indexer); 479e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 480e5d0e473Sopenharmony_ci auto dataBuf = std::make_unique<char[]>(BUF_LEN); 481e5d0e473Sopenharmony_ci decodeBuffer.WriteDataBuffer(std::move(dataBuf), BUF_LEN); 482e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 1; 483e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplication(decodeBuffer, 1)); 484e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 0; 485e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplication(decodeBuffer, 0)); 486e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushHandler->SendWapPushMessageBroadcast(indexer)); 487e5d0e473Sopenharmony_ci} 488e5d0e473Sopenharmony_ci 489e5d0e473Sopenharmony_ci/** 490e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushHandler_0002 491e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushHandler 492e5d0e473Sopenharmony_ci * @tc.desc Function test 493e5d0e473Sopenharmony_ci */ 494e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushHandler_0002, Function | MediumTest | Level1) 495e5d0e473Sopenharmony_ci{ 496e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::SmsWapPushHandler_0002 -->"); 497e5d0e473Sopenharmony_ci auto smsWapPushHandler = std::make_shared<SmsWapPushHandler>(INVALID_SLOTID); 498e5d0e473Sopenharmony_ci SmsWapPushBuffer decodeBuffer; 499e5d0e473Sopenharmony_ci auto dataBuf = std::make_unique<char[]>(BUF_LEN); 500e5d0e473Sopenharmony_ci decodeBuffer.WriteDataBuffer(std::move(dataBuf), BUF_LEN); 501e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplication(decodeBuffer, 1)); 502e5d0e473Sopenharmony_ci 503e5d0e473Sopenharmony_ci std::string appId = TEST_PATH; 504e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 505e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_9; 506e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplicationField(decodeBuffer, appId)); 507e5d0e473Sopenharmony_ci appId = TEST_PATH; 508e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 509e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_AF; 510e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushHandler->DecodeXWapApplicationField(decodeBuffer, appId)); 511e5d0e473Sopenharmony_ci 512e5d0e473Sopenharmony_ci appId = TEST_PATH; 513e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 514e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_AF; 515e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushHandler->DecodeXWapApplicationValue(decodeBuffer, appId)); 516e5d0e473Sopenharmony_ci appId = TEST_PATH; 517e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 518e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_9; 519e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapApplicationValue(decodeBuffer, appId)); 520e5d0e473Sopenharmony_ci 521e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 522e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_4; 523e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 524e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 525e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_16; 526e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 527e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 528e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_31; 529e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 530e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = VALUE_9; 531e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[VALUE_9] = VALUE_31; 532e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 533e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 534e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = VALUE_32; 535e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushHandler->DecodeXWapAbandonHeaderValue(decodeBuffer)); 536e5d0e473Sopenharmony_ci} 537e5d0e473Sopenharmony_ci 538e5d0e473Sopenharmony_ci/** 539e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushContentType_0001 540e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushContentType 541e5d0e473Sopenharmony_ci * @tc.desc Function test 542e5d0e473Sopenharmony_ci */ 543e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushContentType_0001, Function | MediumTest | Level1) 544e5d0e473Sopenharmony_ci{ 545e5d0e473Sopenharmony_ci auto smsWapPushContentType = std::make_shared<SmsWapPushContentType>(); 546e5d0e473Sopenharmony_ci SmsWapPushBuffer decodeBuffer; 547e5d0e473Sopenharmony_ci int32_t contentLength = 1; 548e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 1; 549e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_ = std::make_unique<char[]>(1); 550e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_ONE; 551e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCTGeneralForm(decodeBuffer, contentLength)); 552e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushContentType->DecodeContentType(decodeBuffer, contentLength)); 553e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 554e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 555e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushContentType->DecodeContentType(decodeBuffer, contentLength)); 556e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 557e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = 0; 558e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeContentType(decodeBuffer, contentLength)); 559e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCTGeneralForm(decodeBuffer, contentLength)); 560e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_THREE; 561e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 1; 562e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 563e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCTGeneralForm(decodeBuffer, contentLength)); 564e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 565e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_THREE; 566e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCTGeneralForm(decodeBuffer, contentLength)); 567e5d0e473Sopenharmony_ci} 568e5d0e473Sopenharmony_ci 569e5d0e473Sopenharmony_ci/** 570e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushContentType_0002 571e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushContentType 572e5d0e473Sopenharmony_ci * @tc.desc Function test 573e5d0e473Sopenharmony_ci */ 574e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushContentType_0002, Function | MediumTest | Level1) 575e5d0e473Sopenharmony_ci{ 576e5d0e473Sopenharmony_ci auto smsWapPushContentType = std::make_shared<SmsWapPushContentType>(); 577e5d0e473Sopenharmony_ci SmsWapPushBuffer decodeBuffer; 578e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 1; 579e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_ = std::make_unique<char[]>(1); 580e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 581e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_FOUR; 582e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 583e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 584e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_FIVE; 585e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 586e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 587e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_SIX; 588e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 589e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 590e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_SEVEN; 591e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 592e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 593e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_EIGHT; 594e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 595e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 596e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_NINE; 597e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 598e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 599e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_TEN; 600e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 601e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 602e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_ELEVEN; 603e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 604e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 605e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_TWELVE; 606e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 607e5d0e473Sopenharmony_ci} 608e5d0e473Sopenharmony_ci 609e5d0e473Sopenharmony_ci/** 610e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SmsWapPushContentType_0003 611e5d0e473Sopenharmony_ci * @tc.name Test SmsWapPushContentType 612e5d0e473Sopenharmony_ci * @tc.desc Function test 613e5d0e473Sopenharmony_ci */ 614e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsWapPushContentType_0003, Function | MediumTest | Level1) 615e5d0e473Sopenharmony_ci{ 616e5d0e473Sopenharmony_ci auto smsWapPushContentType = std::make_shared<SmsWapPushContentType>(); 617e5d0e473Sopenharmony_ci SmsWapPushBuffer decodeBuffer; 618e5d0e473Sopenharmony_ci int32_t valueLength = 1; 619e5d0e473Sopenharmony_ci string strCharSet = "US-ASCII"; 620e5d0e473Sopenharmony_ci string result = "*/*"; 621e5d0e473Sopenharmony_ci uint32_t charSet = 1; 622e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 1; 623e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_ = std::make_unique<char[]>(1); 624e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_THIRTEEN; 625e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 626e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 627e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_FOURTEEN; 628e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, 1)); 629e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 630e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = 1; 631e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeParameter(decodeBuffer, VALUE_LENGTH)); 632e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 633e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH; 634e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCharsetField(decodeBuffer, valueLength)); 635e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 636e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = 0; 637e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCharsetField(decodeBuffer, valueLength)); 638e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 639e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 640e5d0e473Sopenharmony_ci EXPECT_FALSE(smsWapPushContentType->DecodeCharsetField(decodeBuffer, valueLength)); 641e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 642e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_TWO; 643e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushContentType->DecodeTypeField(decodeBuffer, valueLength)); 644e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 645e5d0e473Sopenharmony_ci decodeBuffer.pduBuffer_[0] = PDU_BUFFE_LENGTH_ONE; 646e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushContentType->DecodeTypeField(decodeBuffer, valueLength)); 647e5d0e473Sopenharmony_ci EXPECT_TRUE(smsWapPushContentType->GetCharSetIntFromString(charSet, strCharSet)); 648e5d0e473Sopenharmony_ci EXPECT_EQ(smsWapPushContentType->GetContentTypeFromInt(0), result); 649e5d0e473Sopenharmony_ci} 650e5d0e473Sopenharmony_ci 651e5d0e473Sopenharmony_ci/** 652e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBodyPart_0001 653e5d0e473Sopenharmony_ci * @tc.name Test MmsBodyPart 654e5d0e473Sopenharmony_ci * @tc.desc Function test 655e5d0e473Sopenharmony_ci */ 656e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsBodyPart_0001, Function | MediumTest | Level3) 657e5d0e473Sopenharmony_ci{ 658e5d0e473Sopenharmony_ci MmsBodyPart mmsBodyPart; 659e5d0e473Sopenharmony_ci MmsBodyPart testBodyPart; 660e5d0e473Sopenharmony_ci mmsBodyPart = testBodyPart; 661e5d0e473Sopenharmony_ci mmsBodyPart.AssignBodyPart(testBodyPart); 662e5d0e473Sopenharmony_ci MmsDecodeBuffer decoderBuffer; 663e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 664e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 665e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePart(decoderBuffer)); 666e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 667e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 668e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 669e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePart(decoderBuffer)); 670e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 671e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[1] = 0; 672e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 673e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 2; 674e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePart(decoderBuffer)); 675e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 676e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[1] = 0; 677e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[2] = 0x70; 678e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 679e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 3; 680e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePart(decoderBuffer)); 681e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0x7F; 682e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[1] = 0; 683e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[2] = 0x70; 684e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 685e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 10; 686e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePart(decoderBuffer)); 687e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsBodyPart.DecodePartHeader(decoderBuffer, 0)); 688e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 689e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 690e5d0e473Sopenharmony_ci int32_t testLen = 3; 691e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartHeader(decoderBuffer, testLen)); 692e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 693e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 694e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0x80; 695e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartHeader(decoderBuffer, testLen)); 696e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 697e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 698e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0x20; 699e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartHeader(decoderBuffer, testLen)); 700e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 701e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 702e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0x5; 703e5d0e473Sopenharmony_ci mmsBodyPart.DumpMmsBodyPart(); 704e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartHeader(decoderBuffer, testLen)); 705e5d0e473Sopenharmony_ci} 706e5d0e473Sopenharmony_ci 707e5d0e473Sopenharmony_ci/** 708e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBodyPart_0002 709e5d0e473Sopenharmony_ci * @tc.name Test MmsBodyPart 710e5d0e473Sopenharmony_ci * @tc.desc Function test 711e5d0e473Sopenharmony_ci */ 712e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsBodyPart_0002, Function | MediumTest | Level3) 713e5d0e473Sopenharmony_ci{ 714e5d0e473Sopenharmony_ci MmsBodyPart mmsBodyPart; 715e5d0e473Sopenharmony_ci 716e5d0e473Sopenharmony_ci MmsDecodeBuffer decoderBuffer; 717e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 718e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 719e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartBody(decoderBuffer, 3)); 720e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 721e5d0e473Sopenharmony_ci int32_t offset = 2; 722e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = MAX_MMS_MSG_PART_LEN + offset; 723e5d0e473Sopenharmony_ci offset = 1; 724e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.DecodePartBody(decoderBuffer, MAX_MMS_MSG_PART_LEN + offset)); 725e5d0e473Sopenharmony_ci MmsAttachment mmsAttachment; 726e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.SetAttachment(mmsAttachment)); 727e5d0e473Sopenharmony_ci MmsEncodeBuffer encodeBuffer; 728e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.EncodeMmsBodyPart(encodeBuffer)); 729e5d0e473Sopenharmony_ci mmsBodyPart.DecodeSetFileName(); 730e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.WriteBodyFromFile("")); 731e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.WriteBodyFromAttachmentBuffer(mmsAttachment)); 732e5d0e473Sopenharmony_ci mmsAttachment.strFileName_ = "test"; 733e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsBodyPart.WriteBodyFromAttachmentBuffer(mmsAttachment)); 734e5d0e473Sopenharmony_ci MmsBodyPart bodyPart; 735e5d0e473Sopenharmony_ci mmsBodyPart.bodyLen_ = 1; 736e5d0e473Sopenharmony_ci bodyPart = mmsBodyPart; 737e5d0e473Sopenharmony_ci uint32_t len = 0; 738e5d0e473Sopenharmony_ci ASSERT_TRUE(bodyPart.ReadBodyPartBuffer(len) == nullptr); 739e5d0e473Sopenharmony_ci mmsBodyPart.bodyLen_ = MAX_MMS_MSG_PART_LEN + 1; 740e5d0e473Sopenharmony_ci bodyPart = mmsBodyPart; 741e5d0e473Sopenharmony_ci len = 0; 742e5d0e473Sopenharmony_ci ASSERT_TRUE(bodyPart.ReadBodyPartBuffer(len) == nullptr); 743e5d0e473Sopenharmony_ci} 744e5d0e473Sopenharmony_ci 745e5d0e473Sopenharmony_ci/** 746e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsContentType_0001 747e5d0e473Sopenharmony_ci * @tc.name Test MmsContentType 748e5d0e473Sopenharmony_ci * @tc.desc Function test 749e5d0e473Sopenharmony_ci */ 750e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsContentType_0001, Function | MediumTest | Level3) 751e5d0e473Sopenharmony_ci{ 752e5d0e473Sopenharmony_ci MmsContentType mmsContentType; 753e5d0e473Sopenharmony_ci MmsContentType mmsTContentType; 754e5d0e473Sopenharmony_ci mmsTContentType.contentType_ = "lll"; 755e5d0e473Sopenharmony_ci mmsContentType = mmsTContentType; 756e5d0e473Sopenharmony_ci MmsDecodeBuffer decoderBuffer; 757e5d0e473Sopenharmony_ci int32_t testPduBuffer = 0x8f; 758e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 759e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 760e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 761e5d0e473Sopenharmony_ci int32_t length; 762e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.DecodeMmsContentType(decoderBuffer, length)); 763e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 764e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 765e5d0e473Sopenharmony_ci testPduBuffer = 0x2f; 766e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 767e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeMmsCTGeneralForm(decoderBuffer, length)); 768e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 769e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 770e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeMmsCTGeneralForm(decoderBuffer, length)); 771e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 772e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 773e5d0e473Sopenharmony_ci testPduBuffer = 0x8f; 774e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 775e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeMmsCTGeneralForm(decoderBuffer, length)); 776e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 777e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 778e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 779e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeMmsCTGeneralForm(decoderBuffer, length)); 780e5d0e473Sopenharmony_ci} 781e5d0e473Sopenharmony_ci 782e5d0e473Sopenharmony_ci/** 783e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsContentType_0002 784e5d0e473Sopenharmony_ci * @tc.name Test MmsContentType 785e5d0e473Sopenharmony_ci * @tc.desc Function test 786e5d0e473Sopenharmony_ci */ 787e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsContentType_0002, Function | MediumTest | Level3) 788e5d0e473Sopenharmony_ci{ 789e5d0e473Sopenharmony_ci MmsContentType mmsContentType; 790e5d0e473Sopenharmony_ci MmsDecodeBuffer decoderBuffer; 791e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.DecodeParameter(decoderBuffer, 0)); 792e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 793e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 794e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeParameter(decoderBuffer, 1)); 795e5d0e473Sopenharmony_ci int32_t testPduBuffer = 129; 796e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 797e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 798e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 799e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeParameter(decoderBuffer, 1)); 800e5d0e473Sopenharmony_ci testPduBuffer = 154; 801e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 802e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 803e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 804e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeParameter(decoderBuffer, 1)); 805e5d0e473Sopenharmony_ci testPduBuffer = 137; 806e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 807e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 808e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 809e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeParameter(decoderBuffer, 1)); 810e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 811e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 812e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 813e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeParameter(decoderBuffer, 4)); 814e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 815e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 816e5d0e473Sopenharmony_ci int32_t len; 817e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeTextField(decoderBuffer, 0, len)); 818e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeCharsetField(decoderBuffer, len)); 819e5d0e473Sopenharmony_ci testPduBuffer = 100; 820e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 821e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 822e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 823e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeCharsetField(decoderBuffer, len)); 824e5d0e473Sopenharmony_ci testPduBuffer = 30; 825e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = testPduBuffer; 826e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 827e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 828e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeCharsetField(decoderBuffer, len)); 829e5d0e473Sopenharmony_ci} 830e5d0e473Sopenharmony_ci 831e5d0e473Sopenharmony_ci/** 832e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsContentType_0003 833e5d0e473Sopenharmony_ci * @tc.name Test MmsContentType 834e5d0e473Sopenharmony_ci * @tc.desc Function test 835e5d0e473Sopenharmony_ci */ 836e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsContentType_0003, Function | MediumTest | Level3) 837e5d0e473Sopenharmony_ci{ 838e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 839e5d0e473Sopenharmony_ci MmsContentType mmsContentType; 840e5d0e473Sopenharmony_ci MmsDecodeBuffer decoderBuffer; 841e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 842e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 0; 843e5d0e473Sopenharmony_ci int32_t valueLen = 0; 844e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeTypeField(decoderBuffer, valueLen)); 845e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0x8f; 846e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 847e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 848e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.DecodeTypeField(decoderBuffer, valueLen)); 849e5d0e473Sopenharmony_ci decoderBuffer.pduBuffer_[0] = 0; 850e5d0e473Sopenharmony_ci decoderBuffer.curPosition_ = 0; 851e5d0e473Sopenharmony_ci decoderBuffer.totolLength_ = 1; 852e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.DecodeTypeField(decoderBuffer, valueLen)); 853e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.textMap_[152] = ""; 854e5d0e473Sopenharmony_ci int32_t offset = 1; 855e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE + offset; 856e5d0e473Sopenharmony_ci mmsContentType.EncodeTextField(mmsEncodeBuffer); 857e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.textMap_[152] = ""; 858e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 859e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.EncodeTextField(mmsEncodeBuffer)); 860e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.EncodeCharsetField(mmsEncodeBuffer)); 861e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.charset_ = offset; 862e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.EncodeCharsetField(mmsEncodeBuffer)); 863e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.charset_ = offset; 864e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE + offset; 865e5d0e473Sopenharmony_ci mmsContentType.EncodeCharsetField(mmsEncodeBuffer); 866e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.charset_ = offset; 867e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE - offset; 868e5d0e473Sopenharmony_ci mmsContentType.EncodeCharsetField(mmsEncodeBuffer); 869e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.charset_ = offset; 870e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 871e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.EncodeCharsetField(mmsEncodeBuffer)); 872e5d0e473Sopenharmony_ci} 873e5d0e473Sopenharmony_ci 874e5d0e473Sopenharmony_ci/** 875e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsContentType_0004 876e5d0e473Sopenharmony_ci * @tc.name Test MmsContentType 877e5d0e473Sopenharmony_ci * @tc.desc Function test 878e5d0e473Sopenharmony_ci */ 879e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsContentType_0004, Function | MediumTest | Level3) 880e5d0e473Sopenharmony_ci{ 881e5d0e473Sopenharmony_ci MmsContentType mmsContentType; 882e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 883e5d0e473Sopenharmony_ci ASSERT_TRUE(mmsContentType.EncodeTypeField(mmsEncodeBuffer)); 884e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.type_ = "1"; 885e5d0e473Sopenharmony_ci int32_t offset = 1; 886e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE + offset; 887e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeTypeField(mmsEncodeBuffer)); 888e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.type_ = "1"; 889e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE - offset; 890e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeTypeField(mmsEncodeBuffer)); 891e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.type_ = "1"; 892e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE - offset; 893e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeTypeField(mmsEncodeBuffer)); 894e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.textMap_[152] = ""; 895e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE + offset; 896e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentParam(mmsEncodeBuffer)); 897e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.textMap_[152] = ""; 898e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE - offset; 899e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentParam(mmsEncodeBuffer)); 900e5d0e473Sopenharmony_ci mmsContentType.msgContentParm_.textMap_[152] = ""; 901e5d0e473Sopenharmony_ci offset = 2; 902e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE - offset; 903e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentParam(mmsEncodeBuffer)); 904e5d0e473Sopenharmony_ci mmsContentType.contentType_ = ""; 905e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentType(mmsEncodeBuffer)); 906e5d0e473Sopenharmony_ci mmsContentType.contentType_ = "*/*"; 907e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentType(mmsEncodeBuffer)); 908e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE + offset; 909e5d0e473Sopenharmony_ci ASSERT_FALSE(mmsContentType.EncodeMmsBodyPartContentType(mmsEncodeBuffer)); 910e5d0e473Sopenharmony_ci} 911e5d0e473Sopenharmony_ci 912e5d0e473Sopenharmony_ci/** 913e5d0e473Sopenharmony_ci 914e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBody_0001 915e5d0e473Sopenharmony_ci * @tc.name Test MmsBody 916e5d0e473Sopenharmony_ci * @tc.desc Function test 917e5d0e473Sopenharmony_ci */ 918e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsMmsGtest_MmsBody_0001, Function | MediumTest | Level1) 919e5d0e473Sopenharmony_ci{ 920e5d0e473Sopenharmony_ci MmsBody mmsBody; 921e5d0e473Sopenharmony_ci MmsDecodeBuffer mmsDecodeBuffer; 922e5d0e473Sopenharmony_ci MmsHeader mmsHeader; 923e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 924e5d0e473Sopenharmony_ci MmsBodyPart mmsBodyPart; 925e5d0e473Sopenharmony_ci mmsDecodeBuffer.curPosition_ = 0; 926e5d0e473Sopenharmony_ci mmsDecodeBuffer.totolLength_ = PDU_COUNT; 927e5d0e473Sopenharmony_ci MmsBodyPart part; 928e5d0e473Sopenharmony_ci mmsBody.mmsBodyParts_.push_back(part); 929e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.DecodeMultipart(mmsDecodeBuffer)); 930e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.DecodeMmsBody(mmsDecodeBuffer, mmsHeader)); 931e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.EncodeMmsBody(mmsEncodeBuffer)); 932e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.EncodeMmsHeaderContentType(mmsHeader, mmsEncodeBuffer)); 933e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.IsContentLocationPartExist("")); 934e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.IsContentIdPartExist("")); 935e5d0e473Sopenharmony_ci mmsBody.DumpMmsBody(); 936e5d0e473Sopenharmony_ci mmsBody.GetBodyPartCount(); 937e5d0e473Sopenharmony_ci std::vector<MmsBodyPart> parts; 938e5d0e473Sopenharmony_ci mmsBody.GetMmsBodyPart(parts); 939e5d0e473Sopenharmony_ci 940e5d0e473Sopenharmony_ci mmsDecodeBuffer.curPosition_ = PDU_COUNT; 941e5d0e473Sopenharmony_ci mmsDecodeBuffer.totolLength_ = 0; 942e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.DecodeMultipart(mmsDecodeBuffer)); 943e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.DecodeMmsBody(mmsDecodeBuffer, mmsHeader)); 944e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.EncodeMmsBody(mmsEncodeBuffer)); 945e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBody.EncodeMmsHeaderContentType(mmsHeader, mmsEncodeBuffer)); 946e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.IsContentLocationPartExist("")); 947e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.IsContentIdPartExist("")); 948e5d0e473Sopenharmony_ci 949e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.IsBodyPartExist(mmsBodyPart)); 950e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.AddMmsBodyPart(mmsBodyPart)); 951e5d0e473Sopenharmony_ci mmsBodyPart.isSmilFile_ = true; 952e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.AddMmsBodyPart(mmsBodyPart)); 953e5d0e473Sopenharmony_ci mmsBodyPart.isSmilFile_ = false; 954e5d0e473Sopenharmony_ci mmsBody.bHaveSmilPart_ = true; 955e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.AddMmsBodyPart(mmsBodyPart)); 956e5d0e473Sopenharmony_ci mmsBodyPart.isSmilFile_ = true; 957e5d0e473Sopenharmony_ci mmsBodyPart.SetSmilFile(false); 958e5d0e473Sopenharmony_ci mmsBodyPart.IsSmilFile(); 959e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.AddMmsBodyPart(mmsBodyPart)); 960e5d0e473Sopenharmony_ci} 961e5d0e473Sopenharmony_ci 962e5d0e473Sopenharmony_ci/** 963e5d0e473Sopenharmony_ci 964e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBody_0002 965e5d0e473Sopenharmony_ci * @tc.name Test MmsBody 966e5d0e473Sopenharmony_ci * @tc.desc Function test 967e5d0e473Sopenharmony_ci */ 968e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsMmsGtest_MmsBody_0002, Function | MediumTest | Level1) 969e5d0e473Sopenharmony_ci{ 970e5d0e473Sopenharmony_ci MmsBody mmsBody; 971e5d0e473Sopenharmony_ci MmsDecodeBuffer mmsDecodeBuffer; 972e5d0e473Sopenharmony_ci MmsHeader mmsHeader; 973e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 974e5d0e473Sopenharmony_ci MmsBodyPart mmsBodyPart; 975e5d0e473Sopenharmony_ci mmsDecodeBuffer.curPosition_ = 0; 976e5d0e473Sopenharmony_ci mmsDecodeBuffer.totolLength_ = PDU_COUNT; 977e5d0e473Sopenharmony_ci MmsBodyPart part; 978e5d0e473Sopenharmony_ci std::string strCt = INPUT_STR; 979e5d0e473Sopenharmony_ci std::string getCt; 980e5d0e473Sopenharmony_ci part.SetContentType(strCt); 981e5d0e473Sopenharmony_ci part.GetContentType(getCt); 982e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), getCt.c_str()); 983e5d0e473Sopenharmony_ci part.SetContentId(strCt); 984e5d0e473Sopenharmony_ci part.GetContentId(getCt); 985e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), getCt.c_str()); 986e5d0e473Sopenharmony_ci part.SetContentLocation(strCt); 987e5d0e473Sopenharmony_ci part.GetContentLocation(getCt); 988e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), getCt.c_str()); 989e5d0e473Sopenharmony_ci part.SetContentDisposition(strCt); 990e5d0e473Sopenharmony_ci part.GetContentDisposition(getCt); 991e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), getCt.c_str()); 992e5d0e473Sopenharmony_ci part.SetFileName(strCt); 993e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), part.GetPartFileName().c_str()); 994e5d0e473Sopenharmony_ci part.GetContentType(); 995e5d0e473Sopenharmony_ci part.GetPartHeader(); 996e5d0e473Sopenharmony_ci EXPECT_STREQ(strCt.c_str(), getCt.c_str()); 997e5d0e473Sopenharmony_ci mmsBody.mmsBodyParts_.push_back(part); 998e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBody.AddMmsBodyPart(mmsBodyPart)); 999e5d0e473Sopenharmony_ci} 1000e5d0e473Sopenharmony_ci 1001e5d0e473Sopenharmony_ci/** 1002e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsMsg_0001 1003e5d0e473Sopenharmony_ci * @tc.name Test MmsMsg 1004e5d0e473Sopenharmony_ci * @tc.desc Function test 1005e5d0e473Sopenharmony_ci */ 1006e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsMmsGtest_MmsMsg_0001, Function | MediumTest | Level1) 1007e5d0e473Sopenharmony_ci{ 1008e5d0e473Sopenharmony_ci MmsMsg mmsMsg; 1009e5d0e473Sopenharmony_ci uint32_t outLen; 1010e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddrs = {}; 1011e5d0e473Sopenharmony_ci MmsAttachment mmsAttachment; 1012e5d0e473Sopenharmony_ci std::vector<MmsAttachment> attachments = {}; 1013e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.DecodeMsg("")); 1014e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.DecodeMsg(nullptr, 0)); 1015e5d0e473Sopenharmony_ci mmsMsg.EncodeMsg(outLen); 1016e5d0e473Sopenharmony_ci MmsAddress address(INPUT_STR); 1017e5d0e473Sopenharmony_ci mmsMsg.SetMmsFrom(address); 1018e5d0e473Sopenharmony_ci mmsMsg.GetMmsFrom(); 1019e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.SetMmsTo(toAddrs)); 1020e5d0e473Sopenharmony_ci std::string value = INPUT_STR; 1021e5d0e473Sopenharmony_ci mmsMsg.SetHeaderStringValue(0, value); 1022e5d0e473Sopenharmony_ci mmsMsg.GetHeaderStringValue(0); 1023e5d0e473Sopenharmony_ci mmsMsg.GetHeaderContentTypeStart(); 1024e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.AddAttachment(mmsAttachment)); 1025e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.GetAllAttachment(attachments)); 1026e5d0e473Sopenharmony_ci} 1027e5d0e473Sopenharmony_ci 1028e5d0e473Sopenharmony_ci/** 1029e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsMsg_0002 1030e5d0e473Sopenharmony_ci * @tc.name Test MmsMsg 1031e5d0e473Sopenharmony_ci * @tc.desc Function test 1032e5d0e473Sopenharmony_ci */ 1033e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SmsMmsGtest_MmsMsg_0002, Function | MediumTest | Level1) 1034e5d0e473Sopenharmony_ci{ 1035e5d0e473Sopenharmony_ci MmsMsg mmsMsg; 1036e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddrs = {}; 1037e5d0e473Sopenharmony_ci MmsAttachment mmsAttachment; 1038e5d0e473Sopenharmony_ci std::vector<MmsAttachment> attachments = {}; 1039e5d0e473Sopenharmony_ci std::unique_ptr<char[]> inBuff = std::make_unique<char[]>(2); 1040e5d0e473Sopenharmony_ci inBuff[0] = 1; 1041e5d0e473Sopenharmony_ci inBuff[1] = 1; 1042e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.DecodeMsg(std::move(inBuff), 2)); 1043e5d0e473Sopenharmony_ci 1044e5d0e473Sopenharmony_ci mmsMsg.SetMmsVersion(1); 1045e5d0e473Sopenharmony_ci mmsMsg.GetMmsVersion(); 1046e5d0e473Sopenharmony_ci mmsMsg.SetMmsMessageType(1); 1047e5d0e473Sopenharmony_ci mmsMsg.GetMmsMessageType(); 1048e5d0e473Sopenharmony_ci mmsMsg.SetMmsTransactionId("1"); 1049e5d0e473Sopenharmony_ci mmsMsg.GetMmsTransactionId(); 1050e5d0e473Sopenharmony_ci mmsMsg.SetMmsDate(1); 1051e5d0e473Sopenharmony_ci mmsMsg.GetMmsDate(); 1052e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.SetMmsTo(toAddrs)); 1053e5d0e473Sopenharmony_ci mmsMsg.GetMmsTo(toAddrs); 1054e5d0e473Sopenharmony_ci mmsMsg.SetHeaderOctetValue(0, 0); 1055e5d0e473Sopenharmony_ci mmsMsg.GetHeaderOctetValue(0); 1056e5d0e473Sopenharmony_ci mmsMsg.SetHeaderIntegerValue(0, 0); 1057e5d0e473Sopenharmony_ci mmsMsg.GetHeaderIntegerValue(0); 1058e5d0e473Sopenharmony_ci mmsMsg.SetHeaderLongValue(0, 0); 1059e5d0e473Sopenharmony_ci mmsMsg.GetHeaderLongValue(0); 1060e5d0e473Sopenharmony_ci 1061e5d0e473Sopenharmony_ci mmsMsg.SetHeaderEncodedStringValue(0, INPUT_STR, 0); 1062e5d0e473Sopenharmony_ci MmsAddress address(INPUT_STR); 1063e5d0e473Sopenharmony_ci mmsMsg.AddHeaderAddressValue(0, address); 1064e5d0e473Sopenharmony_ci std::vector<MmsAddress> addressValue; 1065e5d0e473Sopenharmony_ci mmsMsg.GetHeaderAllAddressValue(0, addressValue); 1066e5d0e473Sopenharmony_ci mmsMsg.SetHeaderContentType(INPUT_STR); 1067e5d0e473Sopenharmony_ci mmsMsg.GetHeaderContentType(); 1068e5d0e473Sopenharmony_ci mmsMsg.GetHeaderContentTypeStart(); 1069e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.AddAttachment(mmsAttachment)); 1070e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsMsg.GetAllAttachment(attachments)); 1071e5d0e473Sopenharmony_ci} 1072e5d0e473Sopenharmony_ci 1073e5d0e473Sopenharmony_ci/** 1074e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBodyPartHeader_0001 1075e5d0e473Sopenharmony_ci * @tc.name Test MmsBodyPartHeader 1076e5d0e473Sopenharmony_ci * @tc.desc Function test 1077e5d0e473Sopenharmony_ci */ 1078e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsBodyPartHeader_0001, Function | MediumTest | Level1) 1079e5d0e473Sopenharmony_ci{ 1080e5d0e473Sopenharmony_ci auto mmsBodyPartHeader = std::make_shared<MmsBodyPartHeader>(); 1081e5d0e473Sopenharmony_ci MmsDecodeBuffer decodeBuffer; 1082e5d0e473Sopenharmony_ci uint32_t len = 1; 1083e5d0e473Sopenharmony_ci decodeBuffer.curPosition_ = 0; 1084e5d0e473Sopenharmony_ci decodeBuffer.totolLength_ = 0; 1085e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->DecodeContentDisposition(decodeBuffer, len)); 1086e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->DecodeContentLocation(decodeBuffer, len)); 1087e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->DecodeContentId(decodeBuffer, len)); 1088e5d0e473Sopenharmony_ci 1089e5d0e473Sopenharmony_ci uint32_t dispLen = 1; 1090e5d0e473Sopenharmony_ci uint32_t beginPos = 1; 1091e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->DecodeDispositionParameter(decodeBuffer, dispLen, beginPos)); 1092e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->DecodeWellKnownHeader(decodeBuffer, len)); 1093e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->DecodeApplicationHeader(decodeBuffer, len)); 1094e5d0e473Sopenharmony_ci 1095e5d0e473Sopenharmony_ci std::string str = TEST_STR; 1096e5d0e473Sopenharmony_ci mmsBodyPartHeader->SetContentId(str); 1097e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->GetContentId(str)); 1098e5d0e473Sopenharmony_ci mmsBodyPartHeader->SetContentTransferEncoding(str); 1099e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->GetContentTransferEncoding(str)); 1100e5d0e473Sopenharmony_ci mmsBodyPartHeader->SetContentLocation(str); 1101e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->GetContentDisposition(str)); 1102e5d0e473Sopenharmony_ci 1103e5d0e473Sopenharmony_ci MmsEncodeBuffer encodeBuffer; 1104e5d0e473Sopenharmony_ci mmsBodyPartHeader->strContentTransferEncoding_ = ""; 1105e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->EncodeContentTransferEncoding(encodeBuffer)); 1106e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->EncodeContentLocation(encodeBuffer)); 1107e5d0e473Sopenharmony_ci 1108e5d0e473Sopenharmony_ci mmsBodyPartHeader->strContentTransferEncoding_ = str; 1109e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->EncodeContentLocation(encodeBuffer)); 1110e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->EncodeContentId(encodeBuffer)); 1111e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsBodyPartHeader->EncodeContentDisposition(encodeBuffer)); 1112e5d0e473Sopenharmony_ci 1113e5d0e473Sopenharmony_ci encodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE; 1114e5d0e473Sopenharmony_ci mmsBodyPartHeader->strContentLocation_ = SRC_STR; 1115e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->EncodeMmsBodyPartHeader(encodeBuffer)); 1116e5d0e473Sopenharmony_ci mmsBodyPartHeader->strContentID_ = SRC_STR; 1117e5d0e473Sopenharmony_ci encodeBuffer.curPosition_ = CODE_BUFFER_MAX_SIZE; 1118e5d0e473Sopenharmony_ci auto otherBodyPartHeader = std::make_shared<MmsBodyPartHeader>(); 1119e5d0e473Sopenharmony_ci *otherBodyPartHeader = *mmsBodyPartHeader; 1120e5d0e473Sopenharmony_ci otherBodyPartHeader->DumpBodyPartHeader(); 1121e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->EncodeContentLocation(encodeBuffer)); 1122e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->EncodeContentId(encodeBuffer)); 1123e5d0e473Sopenharmony_ci EXPECT_FALSE(mmsBodyPartHeader->EncodeMmsBodyPartHeader(encodeBuffer)); 1124e5d0e473Sopenharmony_ci} 1125e5d0e473Sopenharmony_ci 1126e5d0e473Sopenharmony_ci/** 1127e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsBuffer_0002 1128e5d0e473Sopenharmony_ci * @tc.name Test MmsBuffer 1129e5d0e473Sopenharmony_ci * @tc.desc Function test 1130e5d0e473Sopenharmony_ci */ 1131e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsBuffer_0002, Function | MediumTest | Level1) 1132e5d0e473Sopenharmony_ci{ 1133e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsBuffer_0002 -->"); 1134e5d0e473Sopenharmony_ci MmsBuffer mmsBuffer; 1135e5d0e473Sopenharmony_ci uint32_t len = 1; 1136e5d0e473Sopenharmony_ci bool retBool; 1137e5d0e473Sopenharmony_ci mmsBuffer.ReadDataBuffer(len); 1138e5d0e473Sopenharmony_ci mmsBuffer.ReadDataBuffer(len, MAX_MMS_MSG_PART_LEN + 1); 1139e5d0e473Sopenharmony_ci mmsBuffer.ReadDataBuffer(MAX_MMS_MSG_PART_LEN, len); 1140e5d0e473Sopenharmony_ci retBool = mmsBuffer.WriteDataBuffer(nullptr, 0); 1141e5d0e473Sopenharmony_ci retBool = mmsBuffer.WriteDataBuffer(std::make_unique<char[]>(len), MAX_MMS_MSG_PART_LEN + 1); 1142e5d0e473Sopenharmony_ci retBool = mmsBuffer.WriteDataBuffer(std::make_unique<char[]>(len), 0); 1143e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1144e5d0e473Sopenharmony_ci retBool = mmsBuffer.WriteDataBuffer(std::make_unique<char[]>(len), len); 1145e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1146e5d0e473Sopenharmony_ci} 1147e5d0e473Sopenharmony_ci 1148e5d0e473Sopenharmony_ci/** 1149e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsConnCallback_0001 1150e5d0e473Sopenharmony_ci * @tc.name Test MmsConnCallback 1151e5d0e473Sopenharmony_ci * @tc.desc Function test 1152e5d0e473Sopenharmony_ci */ 1153e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsConnCallback_0001, Function | MediumTest | Level1) 1154e5d0e473Sopenharmony_ci{ 1155e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsConnCallback_0001 -->"); 1156e5d0e473Sopenharmony_ci MmsConnCallbackStub connCallback; 1157e5d0e473Sopenharmony_ci sptr<NetManagerStandard::NetHandle> nullHandle; 1158e5d0e473Sopenharmony_ci sptr<NetManagerStandard::NetAllCapabilities> nullCap; 1159e5d0e473Sopenharmony_ci sptr<NetManagerStandard::NetLinkInfo> nullInfo; 1160e5d0e473Sopenharmony_ci connCallback.SyncNetworkResponse(true); 1161e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetAvailable(nullHandle), TELEPHONY_ERR_FAIL); 1162e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetCapabilitiesChange(nullHandle, nullCap), ERR_NONE); 1163e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetConnectionPropertiesChange(nullHandle, nullInfo), ERR_NONE); 1164e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetLost(nullHandle), ERR_NONE); 1165e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetUnavailable(), ERR_NONE); 1166e5d0e473Sopenharmony_ci EXPECT_EQ(connCallback.NetBlockStatusChange(nullHandle, false), ERR_NONE); 1167e5d0e473Sopenharmony_ci} 1168e5d0e473Sopenharmony_ci 1169e5d0e473Sopenharmony_ci/** 1170e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsNetworkManager_0001 1171e5d0e473Sopenharmony_ci * @tc.name Test MmsNetworkManager 1172e5d0e473Sopenharmony_ci * @tc.desc Function test 1173e5d0e473Sopenharmony_ci */ 1174e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsNetworkManager_0001, Function | MediumTest | Level1) 1175e5d0e473Sopenharmony_ci{ 1176e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsNetworkManager_0001 -->"); 1177e5d0e473Sopenharmony_ci MmsNetworkManager mmsNetworkMgr; 1178e5d0e473Sopenharmony_ci EXPECT_GE(mmsNetworkMgr.AcquireNetwork(0, 0), 0); 1179e5d0e473Sopenharmony_ci mmsNetworkMgr.ReleaseNetwork(0, 0); 1180e5d0e473Sopenharmony_ci EXPECT_NE(mmsNetworkMgr.GetOrCreateHttpClient(0), nullptr); 1181e5d0e473Sopenharmony_ci} 1182e5d0e473Sopenharmony_ci 1183e5d0e473Sopenharmony_ci/** 1184e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsNetworkClient_0001 1185e5d0e473Sopenharmony_ci * @tc.name Test MmsNetworkClient 1186e5d0e473Sopenharmony_ci * @tc.desc Function test 1187e5d0e473Sopenharmony_ci */ 1188e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsNetworkClient_0001, Function | MediumTest | Level1) 1189e5d0e473Sopenharmony_ci{ 1190e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsNetworkClient_0001 -->"); 1191e5d0e473Sopenharmony_ci AccessMmsToken token; 1192e5d0e473Sopenharmony_ci MmsNetworkClient client(0); 1193e5d0e473Sopenharmony_ci client.GetIfaceName(); 1194e5d0e473Sopenharmony_ci std::string storeDirName; 1195e5d0e473Sopenharmony_ci client.Execute(METHOD_POST, "", storeDirName, "ua", "uaprof"); 1196e5d0e473Sopenharmony_ci client.Execute(METHOD_GET, "", storeDirName, "ua", "uaprof"); 1197e5d0e473Sopenharmony_ci client.HttpRequest(METHOD_POST, "", TEST_DATA, "ua", "uaprof"); 1198e5d0e473Sopenharmony_ci client.DeleteMmsPdu(""); 1199e5d0e473Sopenharmony_ci 1200e5d0e473Sopenharmony_ci MmsNetworkClient clientSlot1(1); 1201e5d0e473Sopenharmony_ci clientSlot1.Execute(METHOD_POST, "", storeDirName, "ua", "uaprof"); 1202e5d0e473Sopenharmony_ci clientSlot1.HttpRequest(METHOD_POST, "", storeDirName, "ua", "uaprof"); 1203e5d0e473Sopenharmony_ci client.responseData_ = ""; 1204e5d0e473Sopenharmony_ci 1205e5d0e473Sopenharmony_ci std::string strBuf = TEST_DATA; 1206e5d0e473Sopenharmony_ci EXPECT_EQ(client.GetMmsPduFromFile(storeDirName, strBuf), false); 1207e5d0e473Sopenharmony_ci EXPECT_EQ(client.GetMmsPduFromFile(TEST_PATH, strBuf), false); 1208e5d0e473Sopenharmony_ci 1209e5d0e473Sopenharmony_ci std::unique_ptr<char[]> bufp = std::make_unique<char[]>(BUF_LEN); 1210e5d0e473Sopenharmony_ci EXPECT_EQ(client.WriteBufferToFile(nullptr, BUF_LEN, storeDirName), false); 1211e5d0e473Sopenharmony_ci EXPECT_EQ(client.WriteBufferToFile(bufp, BUF_LEN, storeDirName), false); 1212e5d0e473Sopenharmony_ci EXPECT_EQ(client.WriteBufferToFile(bufp, BUF_LEN, storeDirName), false); 1213e5d0e473Sopenharmony_ci} 1214e5d0e473Sopenharmony_ci 1215e5d0e473Sopenharmony_ci/** 1216e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsPersistHelper_0001 1217e5d0e473Sopenharmony_ci * @tc.name Test MmsPersistHelper 1218e5d0e473Sopenharmony_ci * @tc.desc Function test 1219e5d0e473Sopenharmony_ci */ 1220e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsPersistHelper_0001, Function | MediumTest | Level1) 1221e5d0e473Sopenharmony_ci{ 1222e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::PersistHelper_0001 -->"); 1223e5d0e473Sopenharmony_ci MmsPersistHelper persistHelper; 1224e5d0e473Sopenharmony_ci 1225e5d0e473Sopenharmony_ci std::string urlStr = TEST_URLS; 1226e5d0e473Sopenharmony_ci std::vector<std::string> urls = persistHelper.SplitUrl(urlStr); 1227e5d0e473Sopenharmony_ci EXPECT_EQ(urls.size(), URL_COUNT); 1228e5d0e473Sopenharmony_ci 1229e5d0e473Sopenharmony_ci std::string *pduData = new (std::nothrow) std::string(SPLIT_PDU_COUNT * SPLIT_PDU_LENGTH, 'a'); 1230e5d0e473Sopenharmony_ci std::vector<std::string> pdus = persistHelper.SplitPdu(*pduData); 1231e5d0e473Sopenharmony_ci EXPECT_EQ(pdus.size(), SPLIT_PDU_COUNT * 2); 1232e5d0e473Sopenharmony_ci delete pduData; 1233e5d0e473Sopenharmony_ci 1234e5d0e473Sopenharmony_ci persistHelper.SetMmsPdu(TEST_DATA); 1235e5d0e473Sopenharmony_ci persistHelper.GetMmsPdu(TEST_PATH); 1236e5d0e473Sopenharmony_ci persistHelper.DeleteMmsPdu(TEST_PATH); 1237e5d0e473Sopenharmony_ci std::string dbUrl; 1238e5d0e473Sopenharmony_ci EXPECT_FALSE(persistHelper.InsertMmsPdu(TEST_DATA, dbUrl)); 1239e5d0e473Sopenharmony_ci} 1240e5d0e473Sopenharmony_ci 1241e5d0e473Sopenharmony_ci/** 1242e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsPersistHelper_0002 1243e5d0e473Sopenharmony_ci * @tc.name Test MmsPersistHelper 1244e5d0e473Sopenharmony_ci * @tc.desc Function test 1245e5d0e473Sopenharmony_ci */ 1246e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsPersistHelper_0002, Function | MediumTest | Level1) 1247e5d0e473Sopenharmony_ci{ 1248e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::PersistHelper_0002 -->"); 1249e5d0e473Sopenharmony_ci AccessMmsToken token; 1250e5d0e473Sopenharmony_ci MmsPersistHelper persistHelper; 1251e5d0e473Sopenharmony_ci 1252e5d0e473Sopenharmony_ci persistHelper.SetMmsPdu(TEST_DATA); 1253e5d0e473Sopenharmony_ci persistHelper.GetMmsPdu(TEST_PATH); 1254e5d0e473Sopenharmony_ci persistHelper.DeleteMmsPdu(TEST_PATH); 1255e5d0e473Sopenharmony_ci std::string dbUrl; 1256e5d0e473Sopenharmony_ci EXPECT_FALSE(persistHelper.InsertMmsPdu(TEST_DATA, dbUrl)); 1257e5d0e473Sopenharmony_ci} 1258e5d0e473Sopenharmony_ci 1259e5d0e473Sopenharmony_ci/** 1260e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsPersistHelper_0003 1261e5d0e473Sopenharmony_ci * @tc.name Test MmsPersistHelper 1262e5d0e473Sopenharmony_ci * @tc.desc Function test 1263e5d0e473Sopenharmony_ci */ 1264e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsPersistHelper_0003, Function | MediumTest | Level1) 1265e5d0e473Sopenharmony_ci{ 1266e5d0e473Sopenharmony_ci AccessMmsToken token; 1267e5d0e473Sopenharmony_ci auto mmsPersistHelper = DelayedSingleton<MmsPersistHelper>::GetInstance(); 1268e5d0e473Sopenharmony_ci std::string dbUrl = "1,"; 1269e5d0e473Sopenharmony_ci mmsPersistHelper->DeleteMmsPdu(dbUrl); 1270e5d0e473Sopenharmony_ci std::string mmsPdu = "text"; 1271e5d0e473Sopenharmony_ci mmsPersistHelper->InsertMmsPdu(mmsPdu, dbUrl); 1272e5d0e473Sopenharmony_ci mmsPersistHelper->GetMmsPdu(dbUrl); 1273e5d0e473Sopenharmony_ci EXPECT_TRUE(mmsPersistHelper != nullptr); 1274e5d0e473Sopenharmony_ci} 1275e5d0e473Sopenharmony_ci 1276e5d0e473Sopenharmony_ci/** 1277e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsEncodeBuffer_0001 1278e5d0e473Sopenharmony_ci * @tc.name Test MmsEncodeBuffer 1279e5d0e473Sopenharmony_ci * @tc.desc Function test 1280e5d0e473Sopenharmony_ci */ 1281e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsEncodeBuffer_0001, Function | MediumTest | Level1) 1282e5d0e473Sopenharmony_ci{ 1283e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsEncodeBuffer_0001 -->"); 1284e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 1285e5d0e473Sopenharmony_ci bool retBool; 1286e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortLength(1); 1287e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1288e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortLength(31); 1289e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1290e5d0e473Sopenharmony_ci 1291e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortInteger(1); 1292e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1293e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortLength(31); 1294e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1295e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = MAX_MMS_MSG_PART_LEN + 1; 1296e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortLength(1); 1297e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1298e5d0e473Sopenharmony_ci 1299e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 1300e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeOctet(1); 1301e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1302e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = MAX_MMS_MSG_PART_LEN + 1; 1303e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeShortLength(1); 1304e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1305e5d0e473Sopenharmony_ci 1306e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 1307e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeValueLength(1); 1308e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1309e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeValueLength(31); 1310e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1311e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeValueLength(31); 1312e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = MAX_MMS_MSG_PART_LEN + 1; 1313e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1314e5d0e473Sopenharmony_ci} 1315e5d0e473Sopenharmony_ci 1316e5d0e473Sopenharmony_ci/** 1317e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_MmsEncodeBuffer_0002 1318e5d0e473Sopenharmony_ci * @tc.name Test MmsEncodeBuffer 1319e5d0e473Sopenharmony_ci * @tc.desc Function test 1320e5d0e473Sopenharmony_ci */ 1321e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, MmsEncodeBuffer_0002, Function | MediumTest | Level1) 1322e5d0e473Sopenharmony_ci{ 1323e5d0e473Sopenharmony_ci TELEPHONY_LOGI("TelSMSMMSTest::MmsEncodeBuffer_0002 -->"); 1324e5d0e473Sopenharmony_ci MmsEncodeBuffer mmsEncodeBuffer; 1325e5d0e473Sopenharmony_ci bool retBool; 1326e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 1327e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeInteger(1); 1328e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1329e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeInteger(INPUT_INTEGER); 1330e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1331e5d0e473Sopenharmony_ci 1332e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeLongInteger(0); 1333e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1334e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeLongInteger(1); 1335e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1336e5d0e473Sopenharmony_ci 1337e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeQuotedText(""); 1338e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1339e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = MAX_MMS_MSG_PART_LEN + 1; 1340e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeQuotedText(BEGIN_STR); 1341e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1342e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 1343e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeQuotedText(END_STR); 1344e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1345e5d0e473Sopenharmony_ci 1346e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeTokenText(""); 1347e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1348e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = MAX_MMS_MSG_PART_LEN + 1; 1349e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeTokenText(BEGIN_STR); 1350e5d0e473Sopenharmony_ci EXPECT_FALSE(retBool); 1351e5d0e473Sopenharmony_ci mmsEncodeBuffer.curPosition_ = 0; 1352e5d0e473Sopenharmony_ci retBool = mmsEncodeBuffer.EncodeTokenText(END_STR); 1353e5d0e473Sopenharmony_ci EXPECT_TRUE(retBool); 1354e5d0e473Sopenharmony_ci} 1355e5d0e473Sopenharmony_ci 1356e5d0e473Sopenharmony_ci/** 1357e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_SendMms_0001 1358e5d0e473Sopenharmony_ci * @tc.name Test SendMms_0001 1359e5d0e473Sopenharmony_ci * @tc.desc Function test 1360e5d0e473Sopenharmony_ci */ 1361e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, SendMms_0001, Function | MediumTest | Level1) 1362e5d0e473Sopenharmony_ci{ 1363e5d0e473Sopenharmony_ci std::shared_ptr<SmsService> smsService = std::make_shared<SmsService>(); 1364e5d0e473Sopenharmony_ci int32_t slotId = 0; 1365e5d0e473Sopenharmony_ci std::u16string mmsc = u""; 1366e5d0e473Sopenharmony_ci std::u16string data = u""; 1367e5d0e473Sopenharmony_ci std::u16string ua = u""; 1368e5d0e473Sopenharmony_ci std::u16string uaprof = u""; 1369e5d0e473Sopenharmony_ci int64_t time = 0; 1370e5d0e473Sopenharmony_ci int32_t notAccess = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time); 1371e5d0e473Sopenharmony_ci AccessMmsToken token; 1372e5d0e473Sopenharmony_ci int32_t noMmsc = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time); 1373e5d0e473Sopenharmony_ci mmsc = StringUtils::ToUtf16(VNET_MMSC); 1374e5d0e473Sopenharmony_ci int32_t noData = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time); 1375e5d0e473Sopenharmony_ci EXPECT_GE(notAccess, 0); 1376e5d0e473Sopenharmony_ci EXPECT_GE(noMmsc, 0); 1377e5d0e473Sopenharmony_ci EXPECT_GE(noData, 0); 1378e5d0e473Sopenharmony_ci} 1379e5d0e473Sopenharmony_ci 1380e5d0e473Sopenharmony_ci/** 1381e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_DownloadMms_0001 1382e5d0e473Sopenharmony_ci * @tc.name Test DownloadMms_0001 1383e5d0e473Sopenharmony_ci * @tc.desc Function test 1384e5d0e473Sopenharmony_ci */ 1385e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, DownloadMms_0001, Function | MediumTest | Level1) 1386e5d0e473Sopenharmony_ci{ 1387e5d0e473Sopenharmony_ci std::shared_ptr<SmsService> smsService = std::make_shared<SmsService>(); 1388e5d0e473Sopenharmony_ci int32_t slotId = 0; 1389e5d0e473Sopenharmony_ci std::u16string mmsc = u""; 1390e5d0e473Sopenharmony_ci std::u16string data = u""; 1391e5d0e473Sopenharmony_ci std::u16string ua = u""; 1392e5d0e473Sopenharmony_ci std::u16string uaprof = u""; 1393e5d0e473Sopenharmony_ci int64_t time = 0; 1394e5d0e473Sopenharmony_ci int32_t notAccess = smsService->DownloadMms(slotId, mmsc, data, ua, uaprof); 1395e5d0e473Sopenharmony_ci AccessMmsToken token; 1396e5d0e473Sopenharmony_ci int32_t noMmsc = smsService->DownloadMms(slotId, mmsc, data, ua, uaprof); 1397e5d0e473Sopenharmony_ci mmsc = StringUtils::ToUtf16(VNET_MMSC); 1398e5d0e473Sopenharmony_ci int32_t noData = smsService->DownloadMms(slotId, mmsc, data, ua, uaprof); 1399e5d0e473Sopenharmony_ci notAccess = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time, true); 1400e5d0e473Sopenharmony_ci noMmsc = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time, true); 1401e5d0e473Sopenharmony_ci mmsc = StringUtils::ToUtf16(VNET_MMSC); 1402e5d0e473Sopenharmony_ci noData = smsService->SendMms(slotId, mmsc, data, ua, uaprof, time, true); 1403e5d0e473Sopenharmony_ci EXPECT_GE(notAccess, 0); 1404e5d0e473Sopenharmony_ci EXPECT_GE(noMmsc, 0); 1405e5d0e473Sopenharmony_ci EXPECT_GE(noData, 0); 1406e5d0e473Sopenharmony_ci} 1407e5d0e473Sopenharmony_ci 1408e5d0e473Sopenharmony_ci/** 1409e5d0e473Sopenharmony_ci * @tc.number Telephony_SmsMmsGtest_ServiceAfterSendMmsComplete_0001 1410e5d0e473Sopenharmony_ci * @tc.name Test ServiceAfterSendMmsComplete_0001 1411e5d0e473Sopenharmony_ci * @tc.desc Function test 1412e5d0e473Sopenharmony_ci */ 1413e5d0e473Sopenharmony_ciHWTEST_F(BranchMmsTest, ServiceAfterSendMmsComplete_0001, Function | MediumTest | Level1) 1414e5d0e473Sopenharmony_ci{ 1415e5d0e473Sopenharmony_ci std::shared_ptr<SmsService> smsService = std::make_shared<SmsService>(); 1416e5d0e473Sopenharmony_ci int32_t slotId = 0; 1417e5d0e473Sopenharmony_ci int64_t time = 0; 1418e5d0e473Sopenharmony_ci DataShare::DataShareValuesBucket sessionBucket; 1419e5d0e473Sopenharmony_ci uint16_t dataBaseId = 0; 1420e5d0e473Sopenharmony_ci std::string sendStatus = ""; 1421e5d0e473Sopenharmony_ci smsService->ServiceAfterSendMmsComplete(slotId, time, dataBaseId, sessionBucket, sendStatus); 1422e5d0e473Sopenharmony_ci dataBaseId = 1; 1423e5d0e473Sopenharmony_ci smsService->ServiceAfterSendMmsComplete(slotId, time, dataBaseId, sessionBucket, sendStatus); 1424e5d0e473Sopenharmony_ci} 1425e5d0e473Sopenharmony_ci} // namespace Telephony 1426e5d0e473Sopenharmony_ci} // namespace OHOS 1427