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 16e5d0e473Sopenharmony_ci#include "sms_cb_message_test.h" 17e5d0e473Sopenharmony_ci 18e5d0e473Sopenharmony_ci#include <iostream> 19e5d0e473Sopenharmony_ci#include <vector> 20e5d0e473Sopenharmony_ci 21e5d0e473Sopenharmony_ci#include "cdma_sms_message.h" 22e5d0e473Sopenharmony_ci#include "gsm_cb_codec.h" 23e5d0e473Sopenharmony_ci 24e5d0e473Sopenharmony_cinamespace OHOS { 25e5d0e473Sopenharmony_cinamespace Telephony { 26e5d0e473Sopenharmony_civoid SmsCbMessageTest::ProcessInput(int inputCMD, bool &loopFlag) const 27e5d0e473Sopenharmony_ci{ 28e5d0e473Sopenharmony_ci std::cout << "inputCMD is:" << inputCMD << std::endl; 29e5d0e473Sopenharmony_ci switch (inputCMD) { 30e5d0e473Sopenharmony_ci case 0x00: 31e5d0e473Sopenharmony_ci TestMessageBody7Bit(); 32e5d0e473Sopenharmony_ci break; 33e5d0e473Sopenharmony_ci case 0x01: 34e5d0e473Sopenharmony_ci TestMessageBody7BitUmts(); 35e5d0e473Sopenharmony_ci break; 36e5d0e473Sopenharmony_ci case 0x02: 37e5d0e473Sopenharmony_ci TestMessageBody8Bit(); 38e5d0e473Sopenharmony_ci break; 39e5d0e473Sopenharmony_ci case 0x03: 40e5d0e473Sopenharmony_ci TestMessageBodyUcs2(); 41e5d0e473Sopenharmony_ci break; 42e5d0e473Sopenharmony_ci case 0x04: 43e5d0e473Sopenharmony_ci TestMessageBodyUcs2Umts(); 44e5d0e473Sopenharmony_ci break; 45e5d0e473Sopenharmony_ci case 0x05: 46e5d0e473Sopenharmony_ci TestEtwsWarningType0(); 47e5d0e473Sopenharmony_ci break; 48e5d0e473Sopenharmony_ci case 0x06: 49e5d0e473Sopenharmony_ci TestEtwsWarningType1(); 50e5d0e473Sopenharmony_ci break; 51e5d0e473Sopenharmony_ci case 0x07: 52e5d0e473Sopenharmony_ci TestEtwsWarningType2(); 53e5d0e473Sopenharmony_ci break; 54e5d0e473Sopenharmony_ci case 0x08: 55e5d0e473Sopenharmony_ci TestEtwsWarningType3(); 56e5d0e473Sopenharmony_ci break; 57e5d0e473Sopenharmony_ci case 0x09: 58e5d0e473Sopenharmony_ci TestEtwsWarningType4(); 59e5d0e473Sopenharmony_ci break; 60e5d0e473Sopenharmony_ci case 0x0A: 61e5d0e473Sopenharmony_ci TestMessageBody7BitGs2(); 62e5d0e473Sopenharmony_ci break; 63e5d0e473Sopenharmony_ci case 0x0B: 64e5d0e473Sopenharmony_ci TestCdmaUserData(); 65e5d0e473Sopenharmony_ci break; 66e5d0e473Sopenharmony_ci case 0x0C: 67e5d0e473Sopenharmony_ci TestCdmaCmasType1(); 68e5d0e473Sopenharmony_ci break; 69e5d0e473Sopenharmony_ci default: 70e5d0e473Sopenharmony_ci loopFlag = false; 71e5d0e473Sopenharmony_ci break; 72e5d0e473Sopenharmony_ci } 73e5d0e473Sopenharmony_ci} 74e5d0e473Sopenharmony_ci 75e5d0e473Sopenharmony_civoid SmsCbMessageTest::ProcessTest() const 76e5d0e473Sopenharmony_ci{ 77e5d0e473Sopenharmony_ci bool loopFlag = true; 78e5d0e473Sopenharmony_ci while (loopFlag) { 79e5d0e473Sopenharmony_ci std::cout << "\n-----------start test cbmessage api--------------\n" 80e5d0e473Sopenharmony_ci "usage:please input a cmd num:\n" 81e5d0e473Sopenharmony_ci "0:TestMessageBody7Bit\n" 82e5d0e473Sopenharmony_ci "1:TestMessageBody7BitUmts\n" 83e5d0e473Sopenharmony_ci "2:TestMessageBody8Bit\r\n" 84e5d0e473Sopenharmony_ci "3:TestMessageBodyUcs2\r\n" 85e5d0e473Sopenharmony_ci "4:TestMessageBodyUcs2Umts\r\n" 86e5d0e473Sopenharmony_ci "5:TestEtwsWarningType0\r\n" 87e5d0e473Sopenharmony_ci "6:TestEtwsWarningType1\r\n" 88e5d0e473Sopenharmony_ci "7:TestEtwsWarningType2\r\n" 89e5d0e473Sopenharmony_ci "8:TestEtwsWarningType3\r\n" 90e5d0e473Sopenharmony_ci "9:TestEtwsWarningType4\r\n" 91e5d0e473Sopenharmony_ci "10:TestMessageBody7BitGs2\r\n" 92e5d0e473Sopenharmony_ci "11:TestCdmaUserData\r\n" 93e5d0e473Sopenharmony_ci "12:TestCdmaCmasType1\r\n" 94e5d0e473Sopenharmony_ci "Other key:exit \n" 95e5d0e473Sopenharmony_ci << std::endl; 96e5d0e473Sopenharmony_ci 97e5d0e473Sopenharmony_ci int inputCMD = 0; 98e5d0e473Sopenharmony_ci std::cin >> inputCMD; 99e5d0e473Sopenharmony_ci while (std::cin.fail()) { 100e5d0e473Sopenharmony_ci std::cin.clear(); 101e5d0e473Sopenharmony_ci std::cin.ignore(); 102e5d0e473Sopenharmony_ci std::cin >> inputCMD; 103e5d0e473Sopenharmony_ci } 104e5d0e473Sopenharmony_ci ProcessInput(inputCMD, loopFlag); 105e5d0e473Sopenharmony_ci } 106e5d0e473Sopenharmony_ci} 107e5d0e473Sopenharmony_ci 108e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBody7Bit() const 109e5d0e473Sopenharmony_ci{ 110e5d0e473Sopenharmony_ci std::string data( 111e5d0e473Sopenharmony_ci "C0000032401174747A0E4ACF41E8B0BCFD76E741EF39685C66B34162F93B4C1" 112e5d0e473Sopenharmony_ci "E87E77410BD3CA7836EC2341D440ED3C321"); 113e5d0e473Sopenharmony_ci 114e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 115e5d0e473Sopenharmony_ci if (msg == nullptr) { 116e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 117e5d0e473Sopenharmony_ci } else { 118e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 119e5d0e473Sopenharmony_ci } 120e5d0e473Sopenharmony_ci} 121e5d0e473Sopenharmony_ci 122e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBody7BitUmts() const 123e5d0e473Sopenharmony_ci{ 124e5d0e473Sopenharmony_ci std::string data( 125e5d0e473Sopenharmony_ci "010032C000400174747A0E4ACF41E8B0BCFD76E741EF39685C66B3C5F277983" 126e5d0e473Sopenharmony_ci "C0ECFE9207A794E07DD84693AA8EC1EBFC96550B54D9F83C8617A9845479741" 127e5d0e473Sopenharmony_ci "37719A0EAAB7E973D038EC060DC372791ED47ECBCB2072981E0652"); 128e5d0e473Sopenharmony_ci 129e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 130e5d0e473Sopenharmony_ci if (msg == nullptr) { 131e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 132e5d0e473Sopenharmony_ci } else { 133e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 134e5d0e473Sopenharmony_ci } 135e5d0e473Sopenharmony_ci} 136e5d0e473Sopenharmony_ci 137e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBody8Bit() const 138e5d0e473Sopenharmony_ci{ 139e5d0e473Sopenharmony_ci std::string data( 140e5d0e473Sopenharmony_ci "C0000032441174686973206973206861726D6F6E79206F732063656C6C20627" 141e5d0e473Sopenharmony_ci "26F6164636173742074657374203842697420656E636F64652064617461"); 142e5d0e473Sopenharmony_ci 143e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 144e5d0e473Sopenharmony_ci if (msg == nullptr) { 145e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 146e5d0e473Sopenharmony_ci } else { 147e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 148e5d0e473Sopenharmony_ci } 149e5d0e473Sopenharmony_ci} 150e5d0e473Sopenharmony_ci 151e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBodyUcs2() const 152e5d0e473Sopenharmony_ci{ 153e5d0e473Sopenharmony_ci std::string data( 154e5d0e473Sopenharmony_ci "C00000324811006800610072006D006F006E00790020006F00730020005500" 155e5d0e473Sopenharmony_ci "630073003200200065006E0063006F0064006500200064006100740061"); 156e5d0e473Sopenharmony_ci 157e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 158e5d0e473Sopenharmony_ci if (msg == nullptr) { 159e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 160e5d0e473Sopenharmony_ci } else { 161e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 162e5d0e473Sopenharmony_ci } 163e5d0e473Sopenharmony_ci} 164e5d0e473Sopenharmony_ci 165e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBodyUcs2Umts() const 166e5d0e473Sopenharmony_ci{ 167e5d0e473Sopenharmony_ci std::string data( 168e5d0e473Sopenharmony_ci "01a41f51101102ea3030a830ea30a230e130fc30eb914d4fe130c630b930c8000" 169e5d0e473Sopenharmony_ci "d000a3053308c306f8a669a137528306e30e130c330bb30fc30b8306730593002" 170e5d0e473Sopenharmony_ci "000d000aff080032003000310033002f00310031002f003252ea3000370020003" 171e5d0e473Sopenharmony_ci "10035003a00340034ff09000d000aff0830a830ea30a25e02ff09000000000000" 172e5d0e473Sopenharmony_ci "00000000000000000000000000000000000000000000000000000000000000000" 173e5d0e473Sopenharmony_ci "000000000000000000022"); 174e5d0e473Sopenharmony_ci 175e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 176e5d0e473Sopenharmony_ci if (msg == nullptr) { 177e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 178e5d0e473Sopenharmony_ci } else { 179e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 180e5d0e473Sopenharmony_ci } 181e5d0e473Sopenharmony_ci} 182e5d0e473Sopenharmony_ci 183e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestEtwsWarningType0() const 184e5d0e473Sopenharmony_ci{ 185e5d0e473Sopenharmony_ci std::string data( 186e5d0e473Sopenharmony_ci "0000110011010D0A004800610072006D006F006E00790020004F007300200045007400" 187e5d0e473Sopenharmony_ci "770073005700610072006E0069006E00670020004D0065007300730061006700650055" 188e5d0e473Sopenharmony_ci "00630073003200200045006D00740073"); 189e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 190e5d0e473Sopenharmony_ci if (msg == nullptr) { 191e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 192e5d0e473Sopenharmony_ci } else { 193e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 194e5d0e473Sopenharmony_ci } 195e5d0e473Sopenharmony_ci} 196e5d0e473Sopenharmony_ci 197e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestEtwsWarningType1() const 198e5d0e473Sopenharmony_ci{ 199e5d0e473Sopenharmony_ci std::string data( 200e5d0e473Sopenharmony_ci "0000110111010D0A004800610072006D006F006E00790020004F007300200045007400" 201e5d0e473Sopenharmony_ci "770073005700610072006E0069006E00670020004D0065007300730061006700650055" 202e5d0e473Sopenharmony_ci "00630073003200200045006D00740073"); 203e5d0e473Sopenharmony_ci 204e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 205e5d0e473Sopenharmony_ci if (msg == nullptr) { 206e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 207e5d0e473Sopenharmony_ci } else { 208e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 209e5d0e473Sopenharmony_ci } 210e5d0e473Sopenharmony_ci} 211e5d0e473Sopenharmony_ci 212e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestEtwsWarningType2() const 213e5d0e473Sopenharmony_ci{ 214e5d0e473Sopenharmony_ci std::string data( 215e5d0e473Sopenharmony_ci "0000110211010D0A004800610072006D006F006E00790020004F007300200045007400" 216e5d0e473Sopenharmony_ci "770073005700610072006E0069006E00670020004D0065007300730061006700650055" 217e5d0e473Sopenharmony_ci "00630073003200200045006D00740073"); 218e5d0e473Sopenharmony_ci 219e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 220e5d0e473Sopenharmony_ci if (msg == nullptr) { 221e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 222e5d0e473Sopenharmony_ci } else { 223e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 224e5d0e473Sopenharmony_ci } 225e5d0e473Sopenharmony_ci} 226e5d0e473Sopenharmony_ci 227e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestEtwsWarningType3() const 228e5d0e473Sopenharmony_ci{ 229e5d0e473Sopenharmony_ci std::string data( 230e5d0e473Sopenharmony_ci "0000110311010D0A5BAE57CE770C531790E85C716CBF3044573065B93067573097" 231e5d0e473Sopenharmony_ci "07300263FA308C306B5099304830664E0B30553044FF086C178C615E81FF090000" 232e5d0e473Sopenharmony_ci "0000000000000000000000000000000000000000"); 233e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 234e5d0e473Sopenharmony_ci if (msg == nullptr) { 235e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 236e5d0e473Sopenharmony_ci } else { 237e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 238e5d0e473Sopenharmony_ci } 239e5d0e473Sopenharmony_ci} 240e5d0e473Sopenharmony_ci 241e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestEtwsWarningType4() const 242e5d0e473Sopenharmony_ci{ 243e5d0e473Sopenharmony_ci std::string data( 244e5d0e473Sopenharmony_ci "0000110411010D0A004800610072006D006F006E00790020004F007300200045007400" 245e5d0e473Sopenharmony_ci "770073005700610072006E0069006E00670020004D0065007300730061006700650055" 246e5d0e473Sopenharmony_ci "00630073003200200045006D00740073"); 247e5d0e473Sopenharmony_ci 248e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 249e5d0e473Sopenharmony_ci if (msg == nullptr) { 250e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 251e5d0e473Sopenharmony_ci } else { 252e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 253e5d0e473Sopenharmony_ci } 254e5d0e473Sopenharmony_ci} 255e5d0e473Sopenharmony_ci 256e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestMessageBody7BitGs2() const 257e5d0e473Sopenharmony_ci{ 258e5d0e473Sopenharmony_ci std::string data( 259e5d0e473Sopenharmony_ci "80000032401174747A0E4ACF41E8B0BCFD76E741EF39685C66B34162F93B4C1" 260e5d0e473Sopenharmony_ci "E87E77410BD3CA7836EC2341D440ED3C321"); 261e5d0e473Sopenharmony_ci 262e5d0e473Sopenharmony_ci std::shared_ptr<GsmCbCodec> msg = GsmCbCodec::CreateCbMessage(data); 263e5d0e473Sopenharmony_ci if (msg == nullptr) { 264e5d0e473Sopenharmony_ci std::cout << "CreateCbMessage fail." << std::endl; 265e5d0e473Sopenharmony_ci } else { 266e5d0e473Sopenharmony_ci std::cout << "msginfo: " << msg->ToString() << std::endl; 267e5d0e473Sopenharmony_ci } 268e5d0e473Sopenharmony_ci} 269e5d0e473Sopenharmony_ci 270e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestCdmaUserData() const 271e5d0e473Sopenharmony_ci{ 272e5d0e473Sopenharmony_ci std::string pdu = "0101020004081300031008d00106102c2870e1420801c00c01c0"; 273e5d0e473Sopenharmony_ci std::shared_ptr<CdmaSmsMessage> message = CdmaSmsMessage::CreateMessage(pdu); 274e5d0e473Sopenharmony_ci if (message == nullptr) { 275e5d0e473Sopenharmony_ci std::cout << "message is nullptr!" << std::endl; 276e5d0e473Sopenharmony_ci return; 277e5d0e473Sopenharmony_ci } 278e5d0e473Sopenharmony_ci std::cout << message->GetCbInfo() << std::endl; 279e5d0e473Sopenharmony_ci} 280e5d0e473Sopenharmony_ci 281e5d0e473Sopenharmony_civoid SmsCbMessageTest::TestCdmaCmasType1() const 282e5d0e473Sopenharmony_ci{ 283e5d0e473Sopenharmony_ci std::string pdu = "0101021000081500031008d001080100000800c1E1000801c00c01c0"; 284e5d0e473Sopenharmony_ci std::shared_ptr<CdmaSmsMessage> message = CdmaSmsMessage::CreateMessage(pdu); 285e5d0e473Sopenharmony_ci if (message == nullptr) { 286e5d0e473Sopenharmony_ci std::cout << "message is nullptr!" << std::endl; 287e5d0e473Sopenharmony_ci return; 288e5d0e473Sopenharmony_ci } 289e5d0e473Sopenharmony_ci std::cout << message->GetCbInfo() << std::endl; 290e5d0e473Sopenharmony_ci} 291e5d0e473Sopenharmony_ci} // namespace Telephony 292e5d0e473Sopenharmony_ci} // namespace OHOS