1e5d0e473Sopenharmony_ci/* 2e5d0e473Sopenharmony_ci * Copyright (C) 2021 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#include "mms_msg_test.h" 16e5d0e473Sopenharmony_ci 17e5d0e473Sopenharmony_ci#include <iostream> 18e5d0e473Sopenharmony_ci#include <sstream> 19e5d0e473Sopenharmony_ci 20e5d0e473Sopenharmony_ci#include "mms_codec_type.h" 21e5d0e473Sopenharmony_ci 22e5d0e473Sopenharmony_cinamespace OHOS { 23e5d0e473Sopenharmony_cinamespace Telephony { 24e5d0e473Sopenharmony_cistatic constexpr char HEX_TABLE[] = "0123456789ABCDEF"; 25e5d0e473Sopenharmony_cistatic constexpr uint8_t HEX_OFFSET = 4; 26e5d0e473Sopenharmony_cistatic constexpr uint8_t MAX_LINE_NUM = 16; 27e5d0e473Sopenharmony_ci 28e5d0e473Sopenharmony_ciMmsMsgTest::MmsMsgTest() {} 29e5d0e473Sopenharmony_ci 30e5d0e473Sopenharmony_ciMmsMsgTest::~MmsMsgTest() {} 31e5d0e473Sopenharmony_ci 32e5d0e473Sopenharmony_civoid MmsMsgTest::ProcessDecodeInput(int inputCMD) const 33e5d0e473Sopenharmony_ci{ 34e5d0e473Sopenharmony_ci switch (inputCMD) { 35e5d0e473Sopenharmony_ci case 0x00: 36e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/SendReq.mms"); 37e5d0e473Sopenharmony_ci break; 38e5d0e473Sopenharmony_ci case 0x01: 39e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/SendConf.mms"); 40e5d0e473Sopenharmony_ci break; 41e5d0e473Sopenharmony_ci case 0x02: 42e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/NotificationInd.mms"); 43e5d0e473Sopenharmony_ci break; 44e5d0e473Sopenharmony_ci case 0x03: 45e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/NotifyRespInd.mms"); 46e5d0e473Sopenharmony_ci break; 47e5d0e473Sopenharmony_ci case 0x04: 48e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/RetrieveConf.mms"); 49e5d0e473Sopenharmony_ci break; 50e5d0e473Sopenharmony_ci case 0x05: 51e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/AcknowledgeInd.mms"); 52e5d0e473Sopenharmony_ci break; 53e5d0e473Sopenharmony_ci case 0x06: 54e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/DeliveryInd.mms"); 55e5d0e473Sopenharmony_ci break; 56e5d0e473Sopenharmony_ci case 0x07: 57e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/ReadRecInd.mms"); 58e5d0e473Sopenharmony_ci break; 59e5d0e473Sopenharmony_ci case 0x08: 60e5d0e473Sopenharmony_ci MmsDecodeTest("/data/app/deSrc/ReadOrigInd.mms"); 61e5d0e473Sopenharmony_ci break; 62e5d0e473Sopenharmony_ci default: 63e5d0e473Sopenharmony_ci break; 64e5d0e473Sopenharmony_ci } 65e5d0e473Sopenharmony_ci} 66e5d0e473Sopenharmony_ci 67e5d0e473Sopenharmony_civoid MmsMsgTest::ProcessEncodeInput(int inputCMD) 68e5d0e473Sopenharmony_ci{ 69e5d0e473Sopenharmony_ci switch (inputCMD) { 70e5d0e473Sopenharmony_ci case 0x09: 71e5d0e473Sopenharmony_ci MmsSendReqEncodeTest(); 72e5d0e473Sopenharmony_ci break; 73e5d0e473Sopenharmony_ci case 0x0a: 74e5d0e473Sopenharmony_ci MmsSendConfEncodeTest(); 75e5d0e473Sopenharmony_ci break; 76e5d0e473Sopenharmony_ci case 0x0b: 77e5d0e473Sopenharmony_ci MmsNotificationIndEncodeTest(); 78e5d0e473Sopenharmony_ci break; 79e5d0e473Sopenharmony_ci case 0x0c: 80e5d0e473Sopenharmony_ci MmsNotifyRespIndEncodeTest(); 81e5d0e473Sopenharmony_ci break; 82e5d0e473Sopenharmony_ci case 0x0d: 83e5d0e473Sopenharmony_ci MmsRetrieveConfEncodeTest(); 84e5d0e473Sopenharmony_ci break; 85e5d0e473Sopenharmony_ci case 0x0e: 86e5d0e473Sopenharmony_ci MmsAcknowledgeIndEncodeTest(); 87e5d0e473Sopenharmony_ci break; 88e5d0e473Sopenharmony_ci case 0x0f: 89e5d0e473Sopenharmony_ci MmsDeliveryIndEncodeTest(); 90e5d0e473Sopenharmony_ci break; 91e5d0e473Sopenharmony_ci case 0x10: 92e5d0e473Sopenharmony_ci MmsReadRecIndEncodeTest(); 93e5d0e473Sopenharmony_ci break; 94e5d0e473Sopenharmony_ci case 0x11: 95e5d0e473Sopenharmony_ci MmsReadOrigIndEncodeTest(); 96e5d0e473Sopenharmony_ci break; 97e5d0e473Sopenharmony_ci default: 98e5d0e473Sopenharmony_ci break; 99e5d0e473Sopenharmony_ci } 100e5d0e473Sopenharmony_ci} 101e5d0e473Sopenharmony_ci 102e5d0e473Sopenharmony_civoid MmsMsgTest::ProcessTest() 103e5d0e473Sopenharmony_ci{ 104e5d0e473Sopenharmony_ci bool loopFlag = true; 105e5d0e473Sopenharmony_ci const int exitKey = 100; 106e5d0e473Sopenharmony_ci while (loopFlag) { 107e5d0e473Sopenharmony_ci std::cout << "\nusage:please input a cmd num:\n" 108e5d0e473Sopenharmony_ci "0:TestDecodeMmsSendReq\n" 109e5d0e473Sopenharmony_ci "1:TestDecodeMmsSendConf\n" 110e5d0e473Sopenharmony_ci "2:TestDecodeMmsNotificationInd\r\n" 111e5d0e473Sopenharmony_ci "3:TestDecodeMmsNotifyRespInd\r\n" 112e5d0e473Sopenharmony_ci "4:TestDecodeMmsRetrieveConf\r\n" 113e5d0e473Sopenharmony_ci "5:TestDecodeMmsAcknowledgeInd\r\n" 114e5d0e473Sopenharmony_ci "6:TestDecodeMmsDeliveryInd\r\n" 115e5d0e473Sopenharmony_ci "7:TestDecodeMmsReadRecInd\r\n" 116e5d0e473Sopenharmony_ci "8:TestDecodeMmsReadOrigInd\r\n" 117e5d0e473Sopenharmony_ci "9:TestEncodeMmsSendReq\r\n" 118e5d0e473Sopenharmony_ci "10:TestEncodeMmsSendConf\r\n" 119e5d0e473Sopenharmony_ci "11:TestEncodeMmsNotificationInd\r\n" 120e5d0e473Sopenharmony_ci "12:TestEncodeMmsNotifyRespInd\r\n" 121e5d0e473Sopenharmony_ci "13:TestEncodeMmsRetrieveConf\r\n" 122e5d0e473Sopenharmony_ci "14:TestEncodeMmsAcknowledgeInd\r\n" 123e5d0e473Sopenharmony_ci "15:TestEncodeMmsDeliveryInd\r\n" 124e5d0e473Sopenharmony_ci "16:TestEncodeMmsReadRecInd\r\n" 125e5d0e473Sopenharmony_ci "17:TestEncodeMmsReadOrigInd\r\n" 126e5d0e473Sopenharmony_ci "100:exit test mms msg\n" 127e5d0e473Sopenharmony_ci << std::endl; 128e5d0e473Sopenharmony_ci 129e5d0e473Sopenharmony_ci int inputCMD = 0; 130e5d0e473Sopenharmony_ci std::cin >> inputCMD; 131e5d0e473Sopenharmony_ci while (std::cin.fail()) { 132e5d0e473Sopenharmony_ci std::cin.clear(); 133e5d0e473Sopenharmony_ci std::cin.ignore(); 134e5d0e473Sopenharmony_ci std::cin >> inputCMD; 135e5d0e473Sopenharmony_ci } 136e5d0e473Sopenharmony_ci if (inputCMD == exitKey) { 137e5d0e473Sopenharmony_ci return; 138e5d0e473Sopenharmony_ci } 139e5d0e473Sopenharmony_ci std::cout << "inputCMD is:" << inputCMD << std::endl; 140e5d0e473Sopenharmony_ci ProcessDecodeInput(inputCMD); 141e5d0e473Sopenharmony_ci ProcessEncodeInput(inputCMD); 142e5d0e473Sopenharmony_ci } 143e5d0e473Sopenharmony_ci} 144e5d0e473Sopenharmony_ci 145e5d0e473Sopenharmony_civoid MmsMsgTest::MmsDecodeTest(std::string strPath) const 146e5d0e473Sopenharmony_ci{ 147e5d0e473Sopenharmony_ci MmsMsg decodeMsg; 148e5d0e473Sopenharmony_ci if (!decodeMsg.DecodeMsg(strPath)) { 149e5d0e473Sopenharmony_ci std::cout << "mms decode message fail." << std::endl; 150e5d0e473Sopenharmony_ci std::cout << "mms file path name:" << strPath << std::endl; 151e5d0e473Sopenharmony_ci return; 152e5d0e473Sopenharmony_ci } 153e5d0e473Sopenharmony_ci decodeMsg.DumpMms(); 154e5d0e473Sopenharmony_ci uint8_t messageType = decodeMsg.GetMmsMessageType(); 155e5d0e473Sopenharmony_ci switch (messageType) { 156e5d0e473Sopenharmony_ci case MMS_MSGTYPE_SEND_REQ: 157e5d0e473Sopenharmony_ci MmsSendReqDecodeTest(decodeMsg); 158e5d0e473Sopenharmony_ci break; 159e5d0e473Sopenharmony_ci case MMS_MSGTYPE_SEND_CONF: 160e5d0e473Sopenharmony_ci MmsSendConfDecodeTest(decodeMsg); 161e5d0e473Sopenharmony_ci break; 162e5d0e473Sopenharmony_ci case MMS_MSGTYPE_NOTIFICATION_IND: 163e5d0e473Sopenharmony_ci MmsNotificationIndDecodeTest(decodeMsg); 164e5d0e473Sopenharmony_ci break; 165e5d0e473Sopenharmony_ci case MMS_MSGTYPE_NOTIFYRESP_IND: 166e5d0e473Sopenharmony_ci MmsNotifyRespIndDecodeTest(decodeMsg); 167e5d0e473Sopenharmony_ci break; 168e5d0e473Sopenharmony_ci case MMS_MSGTYPE_RETRIEVE_CONF: 169e5d0e473Sopenharmony_ci MmsRetrieveConfDecodeTest(decodeMsg); 170e5d0e473Sopenharmony_ci break; 171e5d0e473Sopenharmony_ci case MMS_MSGTYPE_ACKNOWLEDGE_IND: 172e5d0e473Sopenharmony_ci MmsAcknowledgeIndDecodeTest(decodeMsg); 173e5d0e473Sopenharmony_ci break; 174e5d0e473Sopenharmony_ci case MMS_MSGTYPE_DELIVERY_IND: 175e5d0e473Sopenharmony_ci MmsDeliveryIndDecodeTest(decodeMsg); 176e5d0e473Sopenharmony_ci break; 177e5d0e473Sopenharmony_ci case MMS_MSGTYPE_READ_REC_IND: 178e5d0e473Sopenharmony_ci MmsReadRecIndDecodeTest(decodeMsg); 179e5d0e473Sopenharmony_ci break; 180e5d0e473Sopenharmony_ci case MMS_MSGTYPE_READ_ORIG_IND: 181e5d0e473Sopenharmony_ci MmsReadOrigIndDecodeTest(decodeMsg); 182e5d0e473Sopenharmony_ci break; 183e5d0e473Sopenharmony_ci default: 184e5d0e473Sopenharmony_ci break; 185e5d0e473Sopenharmony_ci } 186e5d0e473Sopenharmony_ci} 187e5d0e473Sopenharmony_ci 188e5d0e473Sopenharmony_civoid MmsMsgTest::GetSendReqDataTest(MmsMsg &encodeMsg) 189e5d0e473Sopenharmony_ci{ 190e5d0e473Sopenharmony_ci // Mandatory 191e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_SEND_REQ)) { 192e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 193e5d0e473Sopenharmony_ci return; 194e5d0e473Sopenharmony_ci } 195e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 196e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 197e5d0e473Sopenharmony_ci return; 198e5d0e473Sopenharmony_ci } 199e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 200e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 201e5d0e473Sopenharmony_ci return; 202e5d0e473Sopenharmony_ci } 203e5d0e473Sopenharmony_ci MmsAddress address; 204e5d0e473Sopenharmony_ci address.SetMmsAddressString("+8613812345678/TYPE=PLMN"); 205e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsFrom(address)) { 206e5d0e473Sopenharmony_ci std::cout << "SetMmsFrom fail" << std::endl; 207e5d0e473Sopenharmony_ci return; 208e5d0e473Sopenharmony_ci } 209e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderContentType("application/vnd.wap.multipart.related")) { 210e5d0e473Sopenharmony_ci std::cout << "SetHeaderContentType fail" << std::endl; 211e5d0e473Sopenharmony_ci return; 212e5d0e473Sopenharmony_ci } 213e5d0e473Sopenharmony_ci // Optional 214e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsSubject("Test mms")) { 215e5d0e473Sopenharmony_ci std::cout << "SetMmsSubject fail" << std::endl; 216e5d0e473Sopenharmony_ci return; 217e5d0e473Sopenharmony_ci } 218e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_CONTENT_CLASS, static_cast<uint8_t>(MmsContentClass::MMS_TEXT))) { 219e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_CONTENT_CLASS fail" << std::endl; 220e5d0e473Sopenharmony_ci return; 221e5d0e473Sopenharmony_ci } 222e5d0e473Sopenharmony_ci} 223e5d0e473Sopenharmony_ci 224e5d0e473Sopenharmony_civoid MmsMsgTest::MmsSendReqEncodeTest() 225e5d0e473Sopenharmony_ci{ 226e5d0e473Sopenharmony_ci std::cout << "Start MmsSendReqEncodeTest" << std::endl; 227e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 228e5d0e473Sopenharmony_ci GetSendReqDataTest(encodeMsg); 229e5d0e473Sopenharmony_ci std::vector<MmsAddress> vecAddrs; 230e5d0e473Sopenharmony_ci MmsAddress toAddrs("+8613888888888/TYPE=PLMN"); 231e5d0e473Sopenharmony_ci vecAddrs.push_back(toAddrs); 232e5d0e473Sopenharmony_ci MmsAddress toAddrs2("+8613812345678/TYPE=PLMN"); 233e5d0e473Sopenharmony_ci vecAddrs.push_back(toAddrs2); 234e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTo(vecAddrs)) { 235e5d0e473Sopenharmony_ci std::cout << "SetMmsTo fail" << std::endl; 236e5d0e473Sopenharmony_ci return; 237e5d0e473Sopenharmony_ci } 238e5d0e473Sopenharmony_ci // add smil file 239e5d0e473Sopenharmony_ci const std::string filePathNameSmil = "/data/app/enSrc/618C0A89.smil"; 240e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameSmil, "<0000>", "application/smil", true)) { 241e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment smil fail" << std::endl; 242e5d0e473Sopenharmony_ci return; 243e5d0e473Sopenharmony_ci } 244e5d0e473Sopenharmony_ci // add text file 245e5d0e473Sopenharmony_ci const std::string filePathNameText = "/data/app/enSrc/content.text"; 246e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameText, "<content.text>", "text/plain", false)) { 247e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment text fail" << std::endl; 248e5d0e473Sopenharmony_ci return; 249e5d0e473Sopenharmony_ci } 250e5d0e473Sopenharmony_ci // add image file 251e5d0e473Sopenharmony_ci const std::string filePathNameGif = "/data/app/enSrc/picture.gif"; 252e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameGif, "<picture.gif>", "image/gif", false)) { 253e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment gif fail" << std::endl; 254e5d0e473Sopenharmony_ci return; 255e5d0e473Sopenharmony_ci } 256e5d0e473Sopenharmony_ci uint32_t len = 0; 257e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 258e5d0e473Sopenharmony_ci if (result == nullptr) { 259e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 260e5d0e473Sopenharmony_ci return; 261e5d0e473Sopenharmony_ci } 262e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/SendReq.mms")) { 263e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 264e5d0e473Sopenharmony_ci return; 265e5d0e473Sopenharmony_ci } 266e5d0e473Sopenharmony_ci std::cout << "MmsSendReqEncodeTest encode success, data len = " << len << std::endl; 267e5d0e473Sopenharmony_ci} 268e5d0e473Sopenharmony_ci 269e5d0e473Sopenharmony_civoid MmsMsgTest::MmsSendConfEncodeTest() const 270e5d0e473Sopenharmony_ci{ 271e5d0e473Sopenharmony_ci std::cout << "Start MmsSendConfEncodeTest" << std::endl; 272e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 273e5d0e473Sopenharmony_ci // Mandatory 274e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_SEND_CONF)) { 275e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 276e5d0e473Sopenharmony_ci return; 277e5d0e473Sopenharmony_ci } 278e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 279e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 280e5d0e473Sopenharmony_ci return; 281e5d0e473Sopenharmony_ci } 282e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 283e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 284e5d0e473Sopenharmony_ci return; 285e5d0e473Sopenharmony_ci } 286e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_RESPONSE_STATUS, static_cast<uint8_t>(MmsResponseStatus::MMS_OK))) { 287e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_RESPONSE_STATUS fail" << std::endl; 288e5d0e473Sopenharmony_ci return; 289e5d0e473Sopenharmony_ci } 290e5d0e473Sopenharmony_ci uint32_t len = 0; 291e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 292e5d0e473Sopenharmony_ci if (result == nullptr) { 293e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 294e5d0e473Sopenharmony_ci return; 295e5d0e473Sopenharmony_ci } 296e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/SendConf.mms")) { 297e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 298e5d0e473Sopenharmony_ci return; 299e5d0e473Sopenharmony_ci } 300e5d0e473Sopenharmony_ci std::cout << "MmsSendConfEncodeTest encode success, data len =" << len << std::endl; 301e5d0e473Sopenharmony_ci} 302e5d0e473Sopenharmony_ci 303e5d0e473Sopenharmony_civoid MmsMsgTest::GetMmsNotificationIndDataTest(MmsMsg &encodeMsg) 304e5d0e473Sopenharmony_ci{ 305e5d0e473Sopenharmony_ci const long expiryTemp = 1637141707; 306e5d0e473Sopenharmony_ci const long messageSize = 12345678; 307e5d0e473Sopenharmony_ci // Mandatory 308e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_NOTIFICATION_IND)) { 309e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 310e5d0e473Sopenharmony_ci return; 311e5d0e473Sopenharmony_ci } 312e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 313e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 314e5d0e473Sopenharmony_ci return; 315e5d0e473Sopenharmony_ci } 316e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 317e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 318e5d0e473Sopenharmony_ci return; 319e5d0e473Sopenharmony_ci } 320e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_MESSAGE_CLASS, static_cast<uint8_t>(MmsMessageClass::PERSONAL))) { 321e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue fail" << std::endl; 322e5d0e473Sopenharmony_ci return; 323e5d0e473Sopenharmony_ci } 324e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderLongValue(MMS_EXPIRY, expiryTemp)) { 325e5d0e473Sopenharmony_ci std::cout << "SetHeaderLongValue MMS_EXPIRY fail" << std::endl; 326e5d0e473Sopenharmony_ci return; 327e5d0e473Sopenharmony_ci } 328e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderLongValue(MMS_MESSAGE_SIZE, messageSize)) { 329e5d0e473Sopenharmony_ci std::cout << "SetHeaderLongValue MMS_MESSAGE_SIZE fail" << std::endl; 330e5d0e473Sopenharmony_ci return; 331e5d0e473Sopenharmony_ci } 332e5d0e473Sopenharmony_ci std::string strContentLocation = "Test"; 333e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderStringValue(MMS_CONTENT_LOCATION, strContentLocation)) { 334e5d0e473Sopenharmony_ci std::cout << "SetHeaderStringValue fail" << std::endl; 335e5d0e473Sopenharmony_ci return; 336e5d0e473Sopenharmony_ci } // need to confirmation 337e5d0e473Sopenharmony_ci} 338e5d0e473Sopenharmony_ci 339e5d0e473Sopenharmony_civoid MmsMsgTest::MmsNotificationIndEncodeTest() 340e5d0e473Sopenharmony_ci{ 341e5d0e473Sopenharmony_ci std::cout << "Start MmsNotificationIndEncodeTest" << std::endl; 342e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 343e5d0e473Sopenharmony_ci GetMmsNotificationIndDataTest(encodeMsg); 344e5d0e473Sopenharmony_ci // Optional 345e5d0e473Sopenharmony_ci MmsAddress address; 346e5d0e473Sopenharmony_ci address.SetMmsAddressString("+8613812345678/TYPE=PLMN"); 347e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsFrom(address)) { 348e5d0e473Sopenharmony_ci std::cout << "SetMmsFrom fail" << std::endl; 349e5d0e473Sopenharmony_ci return; 350e5d0e473Sopenharmony_ci } 351e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsSubject("Test mms")) { 352e5d0e473Sopenharmony_ci std::cout << "SetMmsSubject fail" << std::endl; 353e5d0e473Sopenharmony_ci return; 354e5d0e473Sopenharmony_ci } 355e5d0e473Sopenharmony_ci uint32_t len = 0; 356e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 357e5d0e473Sopenharmony_ci if (result == nullptr) { 358e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 359e5d0e473Sopenharmony_ci return; 360e5d0e473Sopenharmony_ci } 361e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/NotificationInd.mms")) { 362e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 363e5d0e473Sopenharmony_ci return; 364e5d0e473Sopenharmony_ci } 365e5d0e473Sopenharmony_ci std::cout << "MmsNotificationIndEncodeTest encode success, data len =" << len << std::endl; 366e5d0e473Sopenharmony_ci} 367e5d0e473Sopenharmony_ci 368e5d0e473Sopenharmony_civoid MmsMsgTest::MmsNotifyRespIndEncodeTest() const 369e5d0e473Sopenharmony_ci{ 370e5d0e473Sopenharmony_ci std::cout << "Start MmsNotifyRespIndEncodeTest" << std::endl; 371e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 372e5d0e473Sopenharmony_ci // Mandatory 373e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_NOTIFYRESP_IND)) { 374e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 375e5d0e473Sopenharmony_ci return; 376e5d0e473Sopenharmony_ci } 377e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 378e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 379e5d0e473Sopenharmony_ci return; 380e5d0e473Sopenharmony_ci } 381e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 382e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 383e5d0e473Sopenharmony_ci return; 384e5d0e473Sopenharmony_ci } 385e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_STATUS, static_cast<uint8_t>(MmsStatus::MMS_EXPIRED))) { 386e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_STATUS fail" << std::endl; 387e5d0e473Sopenharmony_ci return; 388e5d0e473Sopenharmony_ci } 389e5d0e473Sopenharmony_ci uint32_t len = 0; 390e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 391e5d0e473Sopenharmony_ci if (result == nullptr) { 392e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 393e5d0e473Sopenharmony_ci return; 394e5d0e473Sopenharmony_ci } 395e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/NotifyRespInd.mms")) { 396e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 397e5d0e473Sopenharmony_ci return; 398e5d0e473Sopenharmony_ci } 399e5d0e473Sopenharmony_ci std::cout << "MmsNotifyRespIndEncodeTest encode success, data len =" << len << std::endl; 400e5d0e473Sopenharmony_ci} 401e5d0e473Sopenharmony_ci 402e5d0e473Sopenharmony_civoid MmsMsgTest::MmsRetrieveConfDataTest(MmsMsg &encodeMsg) 403e5d0e473Sopenharmony_ci{ 404e5d0e473Sopenharmony_ci // Mandatory 405e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_RETRIEVE_CONF)) { 406e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 407e5d0e473Sopenharmony_ci return; 408e5d0e473Sopenharmony_ci } 409e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 410e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 411e5d0e473Sopenharmony_ci return; 412e5d0e473Sopenharmony_ci } 413e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 414e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 415e5d0e473Sopenharmony_ci return; 416e5d0e473Sopenharmony_ci } 417e5d0e473Sopenharmony_ci const long dateTemp = 1637141707; 418e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsDate(dateTemp)) { 419e5d0e473Sopenharmony_ci std::cout << "SetMmsDate fail" << std::endl; 420e5d0e473Sopenharmony_ci return; 421e5d0e473Sopenharmony_ci } 422e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderContentType("application/vnd.wap.multipart.related")) { 423e5d0e473Sopenharmony_ci std::cout << "SetHeaderContentType fail" << std::endl; 424e5d0e473Sopenharmony_ci return; 425e5d0e473Sopenharmony_ci } 426e5d0e473Sopenharmony_ci // Optional 427e5d0e473Sopenharmony_ci MmsAddress address; 428e5d0e473Sopenharmony_ci address.SetMmsAddressString("+8613812345678/TYPE=PLMN"); 429e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsFrom(address)) { 430e5d0e473Sopenharmony_ci std::cout << "SetMmsFrom fail" << std::endl; 431e5d0e473Sopenharmony_ci return; 432e5d0e473Sopenharmony_ci } 433e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsSubject("Test mms")) { 434e5d0e473Sopenharmony_ci std::cout << "SetMmsSubject fail" << std::endl; 435e5d0e473Sopenharmony_ci return; 436e5d0e473Sopenharmony_ci } 437e5d0e473Sopenharmony_ci} 438e5d0e473Sopenharmony_ci 439e5d0e473Sopenharmony_civoid MmsMsgTest::MmsRetrieveConfEncodeTest() 440e5d0e473Sopenharmony_ci{ 441e5d0e473Sopenharmony_ci std::cout << "Start MmsRetrieveConfEncodeTest" << std::endl; 442e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 443e5d0e473Sopenharmony_ci MmsRetrieveConfDataTest(encodeMsg); 444e5d0e473Sopenharmony_ci // add smil file 445e5d0e473Sopenharmony_ci const std::string filePathNameSmil = "/data/app/enSrc/618C0A89.smil"; 446e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameSmil, "<0000>", "application/smil", true)) { 447e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment smil fail" << std::endl; 448e5d0e473Sopenharmony_ci return; 449e5d0e473Sopenharmony_ci } 450e5d0e473Sopenharmony_ci // add text file 451e5d0e473Sopenharmony_ci const std::string filePathNameText = "/data/app/enSrc/content.text"; 452e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameText, "<content.text>", "text/plain", false)) { 453e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment text fail" << std::endl; 454e5d0e473Sopenharmony_ci return; 455e5d0e473Sopenharmony_ci } 456e5d0e473Sopenharmony_ci // add image file 457e5d0e473Sopenharmony_ci const std::string filePathNameGif("/data/app/enSrc/picture.gif"); 458e5d0e473Sopenharmony_ci if (!MmsAddAttachment(encodeMsg, filePathNameGif, "picture.gif", "image/gif", false)) { 459e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment gif fail" << std::endl; 460e5d0e473Sopenharmony_ci return; 461e5d0e473Sopenharmony_ci } 462e5d0e473Sopenharmony_ci uint32_t len = 0; 463e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 464e5d0e473Sopenharmony_ci if (result == nullptr) { 465e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 466e5d0e473Sopenharmony_ci return; 467e5d0e473Sopenharmony_ci } 468e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/RetrieveConf.mms")) { 469e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 470e5d0e473Sopenharmony_ci return; 471e5d0e473Sopenharmony_ci } 472e5d0e473Sopenharmony_ci std::cout << "MmsRetrieveConfEncodeTest encode success, data len =" << len << std::endl; 473e5d0e473Sopenharmony_ci} 474e5d0e473Sopenharmony_ci 475e5d0e473Sopenharmony_civoid MmsMsgTest::MmsAcknowledgeIndEncodeTest() const 476e5d0e473Sopenharmony_ci{ 477e5d0e473Sopenharmony_ci std::cout << "Start MmsAcknowledgeIndEncodeTest" << std::endl; 478e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 479e5d0e473Sopenharmony_ci // Mandatory 480e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_ACKNOWLEDGE_IND)) { 481e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 482e5d0e473Sopenharmony_ci return; 483e5d0e473Sopenharmony_ci } 484e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 485e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 486e5d0e473Sopenharmony_ci return; 487e5d0e473Sopenharmony_ci } 488e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 489e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 490e5d0e473Sopenharmony_ci return; 491e5d0e473Sopenharmony_ci } 492e5d0e473Sopenharmony_ci uint32_t len = 0; 493e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 494e5d0e473Sopenharmony_ci if (result == nullptr) { 495e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 496e5d0e473Sopenharmony_ci return; 497e5d0e473Sopenharmony_ci } 498e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/AcknowledgeInd.mms")) { 499e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 500e5d0e473Sopenharmony_ci return; 501e5d0e473Sopenharmony_ci } 502e5d0e473Sopenharmony_ci std::cout << "MmsAcknowledgeIndEncodeTest encode success, data len =" << len << std::endl; 503e5d0e473Sopenharmony_ci} 504e5d0e473Sopenharmony_ci 505e5d0e473Sopenharmony_civoid MmsMsgTest::MmsDeliveryIndEncodeTest() const 506e5d0e473Sopenharmony_ci{ 507e5d0e473Sopenharmony_ci std::cout << "Start MmsDeliveryIndEncodeTest" << std::endl; 508e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 509e5d0e473Sopenharmony_ci // Mandatory 510e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_DELIVERY_IND)) { 511e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 512e5d0e473Sopenharmony_ci return; 513e5d0e473Sopenharmony_ci } 514e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTransactionId("2077.1427358451410")) { 515e5d0e473Sopenharmony_ci std::cout << "SetMmsTransactionId fail" << std::endl; 516e5d0e473Sopenharmony_ci return; 517e5d0e473Sopenharmony_ci } 518e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 519e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 520e5d0e473Sopenharmony_ci return; 521e5d0e473Sopenharmony_ci } 522e5d0e473Sopenharmony_ci std::string strMessageID = "0001"; 523e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderStringValue(MMS_MESSAGE_ID, strMessageID)) { 524e5d0e473Sopenharmony_ci std::cout << "SetHeaderStringValue fail" << std::endl; 525e5d0e473Sopenharmony_ci return; 526e5d0e473Sopenharmony_ci } 527e5d0e473Sopenharmony_ci const long dateTemp = 1637141707; 528e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsDate(dateTemp)) { 529e5d0e473Sopenharmony_ci std::cout << "SetMmsDate fail" << std::endl; 530e5d0e473Sopenharmony_ci return; 531e5d0e473Sopenharmony_ci } 532e5d0e473Sopenharmony_ci std::vector<MmsAddress> vecAddrs; 533e5d0e473Sopenharmony_ci MmsAddress toAddrs("+8613888888888/TYPE=PLMN"); 534e5d0e473Sopenharmony_ci vecAddrs.push_back(toAddrs); 535e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTo(vecAddrs)) { 536e5d0e473Sopenharmony_ci std::cout << "SetMmsTo fail" << std::endl; 537e5d0e473Sopenharmony_ci return; 538e5d0e473Sopenharmony_ci } 539e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_STATUS, static_cast<uint8_t>(MmsStatus::MMS_EXPIRED))) { 540e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_STATUS fail" << std::endl; 541e5d0e473Sopenharmony_ci return; 542e5d0e473Sopenharmony_ci } 543e5d0e473Sopenharmony_ci uint32_t len = 0; 544e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 545e5d0e473Sopenharmony_ci if (result == nullptr) { 546e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 547e5d0e473Sopenharmony_ci return; 548e5d0e473Sopenharmony_ci } 549e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/DeliveryInd.mms")) { 550e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 551e5d0e473Sopenharmony_ci return; 552e5d0e473Sopenharmony_ci } 553e5d0e473Sopenharmony_ci std::cout << "MmsDeliveryIndEncodeTest encode success, data len =" << len << std::endl; 554e5d0e473Sopenharmony_ci} 555e5d0e473Sopenharmony_ci 556e5d0e473Sopenharmony_civoid MmsMsgTest::MmsReadRecIndEncodeTest() const 557e5d0e473Sopenharmony_ci{ 558e5d0e473Sopenharmony_ci std::cout << "Start MmsReadRecIndEncodeTest" << std::endl; 559e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 560e5d0e473Sopenharmony_ci // Mandatory 561e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_READ_REC_IND)) { 562e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 563e5d0e473Sopenharmony_ci return; 564e5d0e473Sopenharmony_ci } 565e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 566e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 567e5d0e473Sopenharmony_ci return; 568e5d0e473Sopenharmony_ci } 569e5d0e473Sopenharmony_ci std::string strMessageID = "0001"; 570e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderStringValue(MMS_MESSAGE_ID, strMessageID)) { 571e5d0e473Sopenharmony_ci std::cout << "SetHeaderStringValue fail" << std::endl; 572e5d0e473Sopenharmony_ci return; 573e5d0e473Sopenharmony_ci } 574e5d0e473Sopenharmony_ci std::vector<MmsAddress> vecAddrs; 575e5d0e473Sopenharmony_ci MmsAddress toAddrs("+8613888888888/TYPE=PLMN"); 576e5d0e473Sopenharmony_ci vecAddrs.push_back(toAddrs); 577e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTo(vecAddrs)) { 578e5d0e473Sopenharmony_ci std::cout << "SetMmsTo fail" << std::endl; 579e5d0e473Sopenharmony_ci return; 580e5d0e473Sopenharmony_ci } 581e5d0e473Sopenharmony_ci MmsAddress address; 582e5d0e473Sopenharmony_ci address.SetMmsAddressString("+8613812345678/TYPE=PLMN"); 583e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsFrom(address)) { 584e5d0e473Sopenharmony_ci std::cout << "SetMmsFrom fail" << std::endl; 585e5d0e473Sopenharmony_ci return; 586e5d0e473Sopenharmony_ci } 587e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_READ_STATUS, static_cast<uint8_t>(MmsReadStatus::MMS_READ))) { 588e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_READ_STATUS fail" << std::endl; 589e5d0e473Sopenharmony_ci return; 590e5d0e473Sopenharmony_ci } 591e5d0e473Sopenharmony_ci // Optional 592e5d0e473Sopenharmony_ci const long dateTemp = 1637141707; 593e5d0e473Sopenharmony_ci encodeMsg.SetMmsDate(dateTemp); 594e5d0e473Sopenharmony_ci uint32_t len = 0; 595e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 596e5d0e473Sopenharmony_ci if (result == nullptr) { 597e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 598e5d0e473Sopenharmony_ci return; 599e5d0e473Sopenharmony_ci } 600e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/ReadRecInd.mms")) { 601e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 602e5d0e473Sopenharmony_ci return; 603e5d0e473Sopenharmony_ci } 604e5d0e473Sopenharmony_ci std::cout << "MmsReadRecIndEncodeTest encode success data len =" << len << std::endl; 605e5d0e473Sopenharmony_ci} 606e5d0e473Sopenharmony_ci 607e5d0e473Sopenharmony_civoid MmsMsgTest::MmsReadOrigIndEncodeTest() const 608e5d0e473Sopenharmony_ci{ 609e5d0e473Sopenharmony_ci std::cout << "Start MmsReadOrigIndEncodeTest" << std::endl; 610e5d0e473Sopenharmony_ci MmsMsg encodeMsg; 611e5d0e473Sopenharmony_ci // Mandatory 612e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsMessageType(MMS_MSGTYPE_READ_ORIG_IND)) { 613e5d0e473Sopenharmony_ci std::cout << "SetMmsMessageType fail" << std::endl; 614e5d0e473Sopenharmony_ci return; 615e5d0e473Sopenharmony_ci } 616e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsVersion(static_cast<uint16_t>(MmsVersionType::MMS_VERSION_1_2))) { 617e5d0e473Sopenharmony_ci std::cout << "SetMmsVersion fail" << std::endl; 618e5d0e473Sopenharmony_ci return; 619e5d0e473Sopenharmony_ci } 620e5d0e473Sopenharmony_ci std::string strMessageID = "0001"; 621e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderStringValue(MMS_MESSAGE_ID, strMessageID)) { 622e5d0e473Sopenharmony_ci std::cout << "SetHeaderStringValue fail" << std::endl; 623e5d0e473Sopenharmony_ci return; 624e5d0e473Sopenharmony_ci } 625e5d0e473Sopenharmony_ci std::vector<MmsAddress> vecAddrs; 626e5d0e473Sopenharmony_ci MmsAddress toAddrs("+8613888888888/TYPE=PLMN"); 627e5d0e473Sopenharmony_ci vecAddrs.push_back(toAddrs); 628e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsTo(vecAddrs)) { 629e5d0e473Sopenharmony_ci std::cout << "SetMmsTo fail" << std::endl; 630e5d0e473Sopenharmony_ci return; 631e5d0e473Sopenharmony_ci } 632e5d0e473Sopenharmony_ci MmsAddress address; 633e5d0e473Sopenharmony_ci address.SetMmsAddressString("+8613812345678/TYPE=PLMN"); 634e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsFrom(address)) { 635e5d0e473Sopenharmony_ci std::cout << "SetMmsFrom fail" << std::endl; 636e5d0e473Sopenharmony_ci return; 637e5d0e473Sopenharmony_ci } 638e5d0e473Sopenharmony_ci const long dateTemp = 1637141707; 639e5d0e473Sopenharmony_ci if (!encodeMsg.SetMmsDate(dateTemp)) { 640e5d0e473Sopenharmony_ci std::cout << "SetMmsDate fail" << std::endl; 641e5d0e473Sopenharmony_ci return; 642e5d0e473Sopenharmony_ci } 643e5d0e473Sopenharmony_ci if (!encodeMsg.SetHeaderOctetValue(MMS_READ_STATUS, static_cast<uint8_t>(MmsReadStatus::MMS_READ))) { 644e5d0e473Sopenharmony_ci std::cout << "SetHeaderOctetValue MMS_READ_STATUS fail" << std::endl; 645e5d0e473Sopenharmony_ci return; 646e5d0e473Sopenharmony_ci } 647e5d0e473Sopenharmony_ci // Optional 648e5d0e473Sopenharmony_ci uint32_t len = 0; 649e5d0e473Sopenharmony_ci std::unique_ptr<char[]> result = encodeMsg.EncodeMsg(len); 650e5d0e473Sopenharmony_ci if (result == nullptr) { 651e5d0e473Sopenharmony_ci std::cout << "encode fail result nullptr error." << std::endl; 652e5d0e473Sopenharmony_ci return; 653e5d0e473Sopenharmony_ci } 654e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(result), len, "/data/app/deSrc/ReadOrigInd.mms")) { 655e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 656e5d0e473Sopenharmony_ci return; 657e5d0e473Sopenharmony_ci } 658e5d0e473Sopenharmony_ci std::cout << "MmsReadOrigIndEncodeTest encode success, data len =" << len << std::endl; 659e5d0e473Sopenharmony_ci} 660e5d0e473Sopenharmony_ci 661e5d0e473Sopenharmony_cibool MmsMsgTest::MmsAddAttachment( 662e5d0e473Sopenharmony_ci MmsMsg &msg, std::string pathName, std::string contentId, std::string contenType, bool isSmil) const 663e5d0e473Sopenharmony_ci{ 664e5d0e473Sopenharmony_ci MmsAttachment imageAttachment; 665e5d0e473Sopenharmony_ci std::size_t pos = pathName.find_last_of('/'); 666e5d0e473Sopenharmony_ci std::string fileName(pathName.substr(pos + 1)); 667e5d0e473Sopenharmony_ci 668e5d0e473Sopenharmony_ci if (!imageAttachment.SetAttachmentFilePath(pathName, isSmil)) { 669e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment SetAttachmentFilePath fail" << std::endl; 670e5d0e473Sopenharmony_ci return false; 671e5d0e473Sopenharmony_ci } 672e5d0e473Sopenharmony_ci if (!imageAttachment.SetFileName(fileName)) { 673e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment SetFileName fail" << std::endl; 674e5d0e473Sopenharmony_ci return false; 675e5d0e473Sopenharmony_ci } 676e5d0e473Sopenharmony_ci if (!imageAttachment.SetContentId(contentId)) { 677e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment SetContentId fail" << std::endl; 678e5d0e473Sopenharmony_ci return false; 679e5d0e473Sopenharmony_ci } 680e5d0e473Sopenharmony_ci if (!imageAttachment.SetContentLocation(fileName)) { 681e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment SetContentLocation fail" << std::endl; 682e5d0e473Sopenharmony_ci return false; 683e5d0e473Sopenharmony_ci } 684e5d0e473Sopenharmony_ci if (!imageAttachment.SetContentType(contenType)) { 685e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment SetContentType fail" << std::endl; 686e5d0e473Sopenharmony_ci return false; 687e5d0e473Sopenharmony_ci } 688e5d0e473Sopenharmony_ci imageAttachment.SetContentDisposition("attachment"); 689e5d0e473Sopenharmony_ci if (!msg.AddAttachment(imageAttachment)) { 690e5d0e473Sopenharmony_ci std::cout << "MmsAddAttachment AddAttachment fail" << std::endl; 691e5d0e473Sopenharmony_ci return false; 692e5d0e473Sopenharmony_ci } 693e5d0e473Sopenharmony_ci return true; 694e5d0e473Sopenharmony_ci} 695e5d0e473Sopenharmony_ci 696e5d0e473Sopenharmony_civoid MmsMsgTest::MmsSendReqDecodeTest(MmsMsg &decodeMsg) const 697e5d0e473Sopenharmony_ci{ 698e5d0e473Sopenharmony_ci std::cout << "======= Start SendReqDecodeTest ===========" << std::endl; 699e5d0e473Sopenharmony_ci // Mandatory 700e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 701e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 702e5d0e473Sopenharmony_ci std::cout << "Date: " << decodeMsg.GetMmsDate() << std::endl; 703e5d0e473Sopenharmony_ci std::cout << "From: " << decodeMsg.GetMmsFrom().GetAddressString() << std::endl; 704e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddress; 705e5d0e473Sopenharmony_ci decodeMsg.GetMmsTo(toAddress); 706e5d0e473Sopenharmony_ci for (auto itTo : toAddress) { 707e5d0e473Sopenharmony_ci std::cout << "To: " << itTo.GetAddressString() << std::endl; 708e5d0e473Sopenharmony_ci } 709e5d0e473Sopenharmony_ci std::string deliverReport = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_DELIVERY_REPORT)); 710e5d0e473Sopenharmony_ci std::string sendVisbility = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_SENDER_VISIBILITY)); 711e5d0e473Sopenharmony_ci std::string readResport = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_READ_REPORT)); 712e5d0e473Sopenharmony_ci std::string messageClass = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_MESSAGE_CLASS)); 713e5d0e473Sopenharmony_ci std::string priority = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_PRIORITY)); 714e5d0e473Sopenharmony_ci 715e5d0e473Sopenharmony_ci std::cout << "Subject: " << decodeMsg.GetMmsSubject() << std::endl; 716e5d0e473Sopenharmony_ci std::cout << "DeliveryReport: " << deliverReport << std::endl; 717e5d0e473Sopenharmony_ci std::cout << "SenderVisibility: " << sendVisbility << std::endl; 718e5d0e473Sopenharmony_ci std::cout << "ReadReport: " << readResport << std::endl; 719e5d0e473Sopenharmony_ci std::cout << "MessageClass: " << messageClass << std::endl; 720e5d0e473Sopenharmony_ci std::cout << "Prioity: " << priority << std::endl; 721e5d0e473Sopenharmony_ci 722e5d0e473Sopenharmony_ci std::vector<MmsAttachment> attachments; 723e5d0e473Sopenharmony_ci decodeMsg.GetAllAttachment(attachments); 724e5d0e473Sopenharmony_ci int attachmentCnt = 0; 725e5d0e473Sopenharmony_ci for (auto it : attachments) { 726e5d0e473Sopenharmony_ci std::cout << "=======part:" << attachmentCnt << " attachments infos ======" << std::endl; 727e5d0e473Sopenharmony_ci std::cout << "ContentDisposition: " << it.GetContentDisposition() << std::endl; 728e5d0e473Sopenharmony_ci std::cout << "ContentLocation: " << it.GetContentLocation() << std::endl; 729e5d0e473Sopenharmony_ci std::cout << "ContentId: " << it.GetContentId() << std::endl; 730e5d0e473Sopenharmony_ci std::cout << "FileName: " << it.GetFileName() << std::endl; 731e5d0e473Sopenharmony_ci uint32_t len = 0; 732e5d0e473Sopenharmony_ci std::unique_ptr<char[]> buff = it.GetDataBuffer(len); 733e5d0e473Sopenharmony_ci if (buff != nullptr) { 734e5d0e473Sopenharmony_ci std::cout << "attachments buffer size = " << len << std::endl; 735e5d0e473Sopenharmony_ci } 736e5d0e473Sopenharmony_ci std::cout << "=======part:" << attachmentCnt << " attachments infos ======" << std::endl; 737e5d0e473Sopenharmony_ci attachmentCnt++; 738e5d0e473Sopenharmony_ci } 739e5d0e473Sopenharmony_ci std::cout << "======= End SendReqDecodeTest ===========" << std::endl; 740e5d0e473Sopenharmony_ci} 741e5d0e473Sopenharmony_ci 742e5d0e473Sopenharmony_civoid MmsMsgTest::MmsSendConfDecodeTest(MmsMsg &decodeMsg) const 743e5d0e473Sopenharmony_ci{ 744e5d0e473Sopenharmony_ci std::cout << "======== Start SendConfEncodeTest =============" << std::endl; 745e5d0e473Sopenharmony_ci // Mandatory 746e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 747e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 748e5d0e473Sopenharmony_ci std::string responseStatus = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_RESPONSE_STATUS)); 749e5d0e473Sopenharmony_ci std::cout << "ResponseStatus: " << responseStatus << std::endl; 750e5d0e473Sopenharmony_ci std::cout << "======== End SendConfEncodeTest =============" << std::endl; 751e5d0e473Sopenharmony_ci} 752e5d0e473Sopenharmony_ci 753e5d0e473Sopenharmony_civoid MmsMsgTest::MmsNotificationIndDecodeTest(MmsMsg &decodeMsg) const 754e5d0e473Sopenharmony_ci{ 755e5d0e473Sopenharmony_ci std::cout << "========== Start NotificationIndDecodeTest ========" << std::endl; 756e5d0e473Sopenharmony_ci // Mandatory 757e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 758e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 759e5d0e473Sopenharmony_ci std::cout << "MessageSize: " << decodeMsg.GetHeaderLongValue(MMS_MESSAGE_SIZE) << std::endl; 760e5d0e473Sopenharmony_ci std::cout << "Expiry: " << decodeMsg.GetHeaderLongValue(MMS_EXPIRY) << std::endl; 761e5d0e473Sopenharmony_ci std::cout << "ContentLocation: " << decodeMsg.GetHeaderStringValue(MMS_CONTENT_LOCATION) << std::endl; 762e5d0e473Sopenharmony_ci std::cout << "========== End NotificationIndDecodeTest ========" << std::endl; 763e5d0e473Sopenharmony_ci} 764e5d0e473Sopenharmony_ci 765e5d0e473Sopenharmony_civoid MmsMsgTest::MmsNotifyRespIndDecodeTest(MmsMsg &decodeMsg) const 766e5d0e473Sopenharmony_ci{ 767e5d0e473Sopenharmony_ci std::cout << "========= Start NotifyRespIndDecodeTest ======" << std::endl; 768e5d0e473Sopenharmony_ci // Mandatory 769e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 770e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 771e5d0e473Sopenharmony_ci std::string status = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_STATUS)); 772e5d0e473Sopenharmony_ci std::cout << "Status: " << status << std::endl; 773e5d0e473Sopenharmony_ci std::cout << "========= End NotifyRespIndDecodeTest ======" << std::endl; 774e5d0e473Sopenharmony_ci} 775e5d0e473Sopenharmony_ci 776e5d0e473Sopenharmony_civoid MmsMsgTest::MmsRetrieveConfDecodeTest(MmsMsg &decodeMsg) const 777e5d0e473Sopenharmony_ci{ 778e5d0e473Sopenharmony_ci std::cout << "======== Start RetrieveConfDecodeTest =========" << std::endl; 779e5d0e473Sopenharmony_ci // Mandatory 780e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 781e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 782e5d0e473Sopenharmony_ci std::cout << "Date: " << decodeMsg.GetMmsDate() << std::endl; 783e5d0e473Sopenharmony_ci 784e5d0e473Sopenharmony_ci std::vector<MmsAttachment> attachments; 785e5d0e473Sopenharmony_ci decodeMsg.GetAllAttachment(attachments); 786e5d0e473Sopenharmony_ci int attachmentCnt = 0; 787e5d0e473Sopenharmony_ci for (auto it : attachments) { 788e5d0e473Sopenharmony_ci std::cout << "======= part:" << attachmentCnt << " attachments infos ======" << std::endl; 789e5d0e473Sopenharmony_ci std::cout << "ContentDisposition: " << it.GetContentDisposition() << std::endl; 790e5d0e473Sopenharmony_ci std::cout << "ContentLocation: " << it.GetContentLocation() << std::endl; 791e5d0e473Sopenharmony_ci std::cout << "ContentId: " << it.GetContentId() << std::endl; 792e5d0e473Sopenharmony_ci std::cout << "FileName: " << it.GetFileName() << std::endl; 793e5d0e473Sopenharmony_ci uint32_t len = 0; 794e5d0e473Sopenharmony_ci std::unique_ptr<char[]> buff = it.GetDataBuffer(len); 795e5d0e473Sopenharmony_ci if (buff != nullptr) { 796e5d0e473Sopenharmony_ci std::cout << "attachments buffer size = " << len << std::endl; 797e5d0e473Sopenharmony_ci } 798e5d0e473Sopenharmony_ci 799e5d0e473Sopenharmony_ci std::string strPathName = "/data/app/enSrc/"; 800e5d0e473Sopenharmony_ci strPathName.append(it.GetFileName()); 801e5d0e473Sopenharmony_ci std::cout << "======= strPathName:" << strPathName << std::endl; 802e5d0e473Sopenharmony_ci if (!WriteBufferToFile(std::move(buff), len, strPathName)) { 803e5d0e473Sopenharmony_ci std::cout << "Encode write to file error." << std::endl; 804e5d0e473Sopenharmony_ci return; 805e5d0e473Sopenharmony_ci } 806e5d0e473Sopenharmony_ci 807e5d0e473Sopenharmony_ci std::cout << "======= part:" << attachmentCnt << " attachments infos ======" << std::endl; 808e5d0e473Sopenharmony_ci attachmentCnt++; 809e5d0e473Sopenharmony_ci } 810e5d0e473Sopenharmony_ci std::cout << "======== End RetrieveConfDecodeTest =========" << std::endl; 811e5d0e473Sopenharmony_ci} 812e5d0e473Sopenharmony_ci 813e5d0e473Sopenharmony_civoid MmsMsgTest::MmsAcknowledgeIndDecodeTest(MmsMsg &decodeMsg) const 814e5d0e473Sopenharmony_ci{ 815e5d0e473Sopenharmony_ci std::cout << "======= Start AcknowledgeIndDecodeTest ========" << std::endl; 816e5d0e473Sopenharmony_ci // Mandatory 817e5d0e473Sopenharmony_ci std::cout << "TransactionId: " << decodeMsg.GetMmsTransactionId() << std::endl; 818e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 819e5d0e473Sopenharmony_ci std::cout << "======= End AcknowledgeIndDecodeTest ========" << std::endl; 820e5d0e473Sopenharmony_ci} 821e5d0e473Sopenharmony_ci 822e5d0e473Sopenharmony_civoid MmsMsgTest::MmsDeliveryIndDecodeTest(MmsMsg &decodeMsg) const 823e5d0e473Sopenharmony_ci{ 824e5d0e473Sopenharmony_ci std::cout << "======== Start DeliveryIndDecodeTest ==========" << std::endl; 825e5d0e473Sopenharmony_ci // Mandatory 826e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 827e5d0e473Sopenharmony_ci std::cout << "MessageID: " << decodeMsg.GetHeaderStringValue(MMS_MESSAGE_ID) << std::endl; 828e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddress; 829e5d0e473Sopenharmony_ci decodeMsg.GetMmsTo(toAddress); 830e5d0e473Sopenharmony_ci for (auto itTo : toAddress) { 831e5d0e473Sopenharmony_ci std::cout << "To: " << itTo.GetAddressString() << std::endl; 832e5d0e473Sopenharmony_ci } 833e5d0e473Sopenharmony_ci std::cout << "Date: " << decodeMsg.GetMmsDate() << std::endl; 834e5d0e473Sopenharmony_ci std::string status = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_STATUS)); 835e5d0e473Sopenharmony_ci std::cout << "Status: " << status << std::endl; 836e5d0e473Sopenharmony_ci std::cout << "======== End DeliveryIndDecodeTest ==========" << std::endl; 837e5d0e473Sopenharmony_ci} 838e5d0e473Sopenharmony_ci 839e5d0e473Sopenharmony_civoid MmsMsgTest::MmsReadRecIndDecodeTest(MmsMsg &decodeMsg) const 840e5d0e473Sopenharmony_ci{ 841e5d0e473Sopenharmony_ci std::cout << "======= Start ReadRecIndDecodeTest =========" << std::endl; 842e5d0e473Sopenharmony_ci // Mandatory 843e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 844e5d0e473Sopenharmony_ci std::cout << "MessageID: " << decodeMsg.GetHeaderStringValue(MMS_MESSAGE_ID) << std::endl; 845e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddress; 846e5d0e473Sopenharmony_ci decodeMsg.GetMmsTo(toAddress); 847e5d0e473Sopenharmony_ci for (auto itTo : toAddress) { 848e5d0e473Sopenharmony_ci std::cout << "To: " << itTo.GetAddressString() << std::endl; 849e5d0e473Sopenharmony_ci } 850e5d0e473Sopenharmony_ci MmsAddress fromAddress = decodeMsg.GetMmsFrom(); 851e5d0e473Sopenharmony_ci std::cout << "From: " << fromAddress.GetAddressString() << std::endl; 852e5d0e473Sopenharmony_ci std::cout << "Date: " << decodeMsg.GetMmsDate() << std::endl; 853e5d0e473Sopenharmony_ci std::string status = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_STATUS)); 854e5d0e473Sopenharmony_ci std::cout << "Status: " << status << std::endl; 855e5d0e473Sopenharmony_ci std::cout << "======= End ReadRecIndDecodeTest =========" << std::endl; 856e5d0e473Sopenharmony_ci} 857e5d0e473Sopenharmony_ci 858e5d0e473Sopenharmony_civoid MmsMsgTest::MmsReadOrigIndDecodeTest(MmsMsg &decodeMsg) const 859e5d0e473Sopenharmony_ci{ 860e5d0e473Sopenharmony_ci std::cout << "======== Start MmsReadOrigIndDecodeTest ========" << std::endl; 861e5d0e473Sopenharmony_ci // Mandatory 862e5d0e473Sopenharmony_ci std::cout << "Version: " << decodeMsg.GetMmsVersion() << std::endl; 863e5d0e473Sopenharmony_ci std::cout << "MessageID: " << decodeMsg.GetHeaderStringValue(MMS_MESSAGE_ID) << std::endl; 864e5d0e473Sopenharmony_ci std::vector<MmsAddress> toAddress; 865e5d0e473Sopenharmony_ci decodeMsg.GetMmsTo(toAddress); 866e5d0e473Sopenharmony_ci for (auto itTo : toAddress) { 867e5d0e473Sopenharmony_ci std::cout << "To: " << itTo.GetAddressString() << std::endl; 868e5d0e473Sopenharmony_ci } 869e5d0e473Sopenharmony_ci MmsAddress fromAddress = decodeMsg.GetMmsFrom(); 870e5d0e473Sopenharmony_ci std::cout << "From: " << fromAddress.GetAddressString() << std::endl; 871e5d0e473Sopenharmony_ci std::cout << "Date: " << decodeMsg.GetMmsDate() << std::endl; 872e5d0e473Sopenharmony_ci std::string readStatus = std::to_string(decodeMsg.GetHeaderOctetValue(MMS_READ_STATUS)); 873e5d0e473Sopenharmony_ci std::cout << "ReadStatus: " << readStatus << std::endl; 874e5d0e473Sopenharmony_ci std::cout << "======== End MmsReadOrigIndDecodeTest ========" << std::endl; 875e5d0e473Sopenharmony_ci} 876e5d0e473Sopenharmony_ci 877e5d0e473Sopenharmony_cistd::string MmsMsgTest::BuffToHex(const std::unique_ptr<char[]> &buff, uint32_t len) const 878e5d0e473Sopenharmony_ci{ 879e5d0e473Sopenharmony_ci std::stringstream ss; 880e5d0e473Sopenharmony_ci for (std::size_t i = 0; i < len; ++i) { 881e5d0e473Sopenharmony_ci unsigned char temp = static_cast<unsigned char>(buff[i]) >> HEX_OFFSET; 882e5d0e473Sopenharmony_ci ss << "0x" << HEX_TABLE[temp] << HEX_TABLE[buff[i] & 0xf] << " "; 883e5d0e473Sopenharmony_ci if ((i % MAX_LINE_NUM == 0) && (i != 0)) { 884e5d0e473Sopenharmony_ci ss << "\r\n"; 885e5d0e473Sopenharmony_ci } 886e5d0e473Sopenharmony_ci } 887e5d0e473Sopenharmony_ci return ss.str(); 888e5d0e473Sopenharmony_ci} 889e5d0e473Sopenharmony_ci 890e5d0e473Sopenharmony_cibool MmsMsgTest::WriteBufferToFile( 891e5d0e473Sopenharmony_ci const std::unique_ptr<char[]> &buff, uint32_t len, const std::string &strPathName) const 892e5d0e473Sopenharmony_ci{ 893e5d0e473Sopenharmony_ci FILE *pFile = nullptr; 894e5d0e473Sopenharmony_ci pFile = fopen(strPathName.c_str(), "wb"); 895e5d0e473Sopenharmony_ci if (!pFile || buff == nullptr) { 896e5d0e473Sopenharmony_ci std::cout << "open file: " << strPathName << "fail!" << std::endl; 897e5d0e473Sopenharmony_ci return false; 898e5d0e473Sopenharmony_ci } 899e5d0e473Sopenharmony_ci uint32_t fileLen = fwrite(buff.get(), len, 1, pFile); 900e5d0e473Sopenharmony_ci if (fileLen > 0) { 901e5d0e473Sopenharmony_ci std::cout << "write mms buffer to file success name:" << strPathName << std::endl; 902e5d0e473Sopenharmony_ci } else { 903e5d0e473Sopenharmony_ci std::cout << "write mms buffer to file error name:" << strPathName << std::endl; 904e5d0e473Sopenharmony_ci } 905e5d0e473Sopenharmony_ci (void)fclose(pFile); 906e5d0e473Sopenharmony_ci return true; 907e5d0e473Sopenharmony_ci} 908e5d0e473Sopenharmony_ci} // namespace Telephony 909e5d0e473Sopenharmony_ci} // namespace OHOS 910