1 /*
2 * Copyright (C) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "sms_gsm_message_test.h"
17
18 #include <iostream>
19
20 #include "access_mms_token.h"
21 #include "cdma_sms_message.h"
22 #include "gsm_cb_codec.h"
23
24 namespace OHOS {
25 namespace Telephony {
26 using namespace OHOS::Telephony;
27 std::unique_ptr<ShortMessage> SmsGsmMessageTest::gsmMessage_ = nullptr;
28
ProcessInput(int inputCMD,bool & loopFlag) const29 void SmsGsmMessageTest::ProcessInput(int inputCMD, bool &loopFlag) const
30 {
31 std::cout << "inputCMD is:" << inputCMD << std::endl;
32 switch (inputCMD) {
33 case 0x00:
34 Test7BitSubmitSms();
35 break;
36 case 0x01:
37 TestUcs2SubmitSms();
38 break;
39 case 0x02:
40 Test7BitDeliverySms();
41 break;
42 case 0x03:
43 TestUcs2DeliverySms();
44 break;
45 case 0x04:
46 TestStatusReportSms();
47 break;
48 case 0x05:
49 TestMultiPageSms();
50 break;
51 case 0x06:
52 TestWapPushSms();
53 break;
54 case 0x07:
55 TestDataSmsDeliverySms();
56 break;
57 default:
58 loopFlag = false;
59 break;
60 }
61 }
62
ProcessTest() const63 void SmsGsmMessageTest::ProcessTest() const
64 {
65 bool loopFlag = true;
66 while (loopFlag) {
67 std::cout << "\nusage:please input a cmd num:\n"
68 "0:Test7BitSubmitSms\n"
69 "1:TestUcs2SubmitSms\n"
70 "2:Test7BitDeliverySms\r\n"
71 "3:TestUcs2DeliverySms\r\n"
72 "4:TestStatusReportSms\r\n"
73 "5:TestMultiPageSms\r\n"
74 "6:TestWapPushSms\r\n"
75 "7:TestDataSmsDeliverySms\r\n"
76 "Other key:exit \n\n";
77
78 int inputCMD = 0;
79 std::cin >> inputCMD;
80 while (std::cin.fail()) {
81 std::cin.clear();
82 std::cin.ignore();
83 std::cin >> inputCMD;
84 }
85 ProcessInput(inputCMD, loopFlag);
86 }
87 }
88
Test7BitSubmitSms() const89 void SmsGsmMessageTest::Test7BitSubmitSms() const
90 {
91 AccessMmsToken token;
92 std::vector<unsigned char> pdu = StringUtils::HexToByteVector("21010B818176251308F4000002C130");
93 ShortMessage *message = new ShortMessage();
94 if (message == nullptr) {
95 std::cout << "message is nullptr!" << std::endl;
96 return;
97 }
98 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
99 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
100 if (gsmMessage_ == nullptr) {
101 std::cout << "Test7BitSms fail!!!" << std::endl;
102 } else {
103 std::cout << "Test7BitSms success!!!" << std::endl;
104 }
105 }
106
TestUcs2SubmitSms() const107 void SmsGsmMessageTest::TestUcs2SubmitSms() const
108 {
109 AccessMmsToken token;
110 std::vector<unsigned char> pdu = StringUtils::HexToByteVector("21020B818176251308F40008046D4B8BD5");
111 ShortMessage *message = new ShortMessage();
112 if (message == nullptr) {
113 std::cout << "message is nullptr!" << std::endl;
114 return;
115 }
116 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
117 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
118 if (gsmMessage_ == nullptr) {
119 std::cout << "TestUcs2SubmitSms fail!!!" << std::endl;
120 } else {
121 std::cout << "TestUcs2SubmitSms success!!!" << std::endl;
122 }
123 }
124
Test7BitDeliverySms() const125 void SmsGsmMessageTest::Test7BitDeliverySms() const
126 {
127 AccessMmsToken token;
128 std::vector<unsigned char> pdu =
129 StringUtils::HexToByteVector("0891683108200075F4240D91688129562983F600001240800102142302C130");
130 ShortMessage *message = new ShortMessage();
131 if (message == nullptr) {
132 std::cout << "message is nullptr!" << std::endl;
133 return;
134 }
135 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
136 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
137 if (gsmMessage_ == nullptr) {
138 std::cout << "Test7BitDeliverySms fail!!!" << std::endl;
139 } else {
140 std::cout << "Test7BitDeliverySms success!!!" << std::endl;
141 }
142 }
143
TestUcs2DeliverySms() const144 void SmsGsmMessageTest::TestUcs2DeliverySms() const
145 {
146 AccessMmsToken token;
147 std::vector<unsigned char> pdu =
148 StringUtils::HexToByteVector("0891683110206005F0240DA1688176251308F4000832500381459323044F60597D");
149 ShortMessage *message = new ShortMessage();
150 if (message == nullptr) {
151 std::cout << "message is nullptr!" << std::endl;
152 return;
153 }
154 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
155 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
156 if (gsmMessage_ == nullptr) {
157 std::cout << "TestUcs2DeliverySms fail!!!" << std::endl;
158 } else {
159 std::cout << "TestUcs2DeliverySms success!!!" << std::endl;
160 }
161 }
162
TestStatusReportSms() const163 void SmsGsmMessageTest::TestStatusReportSms() const
164 {
165 AccessMmsToken token;
166 std::vector<unsigned char> pdu =
167 StringUtils::HexToByteVector("0891683110808805F006510B818176251308F4325013113382233250131143802300");
168
169 ShortMessage *message = new ShortMessage();
170 if (message == nullptr) {
171 std::cout << "message is nullptr!" << std::endl;
172 return;
173 }
174 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
175 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
176 if (gsmMessage_ == nullptr) {
177 std::cout << "TestStatusReportSms fail!!!" << std::endl;
178 } else {
179 std::cout << "TestStatusReportSms success!!!" << std::endl;
180 }
181 }
182
TestMultiPageSms() const183 void SmsGsmMessageTest::TestMultiPageSms() const
184 {
185 AccessMmsToken token;
186 std::vector<unsigned char> pdu = StringUtils::HexToByteVector(
187 "0891683110205005F06005A00110F00008325052214182238C050003D3030200310030002E0063006E002F007100410053004B00380020"
188 "FF0C4EE5514D6B216708521D6263966476F851738D397528540E5F7154CD60A876846B635E384F7F752830024E2D56FD"
189 "8054901A0041005000507545723D65B04F539A8CFF0C70B951FB0020002000680074007400700073003A002F002F0075002E0031003000"
190 "3000310030002E");
191
192 ShortMessage *message = new ShortMessage();
193 if (message == nullptr) {
194 std::cout << "message is nullptr!" << std::endl;
195 return;
196 }
197 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
198 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
199 if (gsmMessage_ == nullptr) {
200 std::cout << "TestMultiPageSms fail!!!" << std::endl;
201 } else {
202 std::cout << "TestMultiPageSms success!!!" << std::endl;
203 }
204 }
205
TestWapPushSms() const206 void SmsGsmMessageTest::TestWapPushSms() const
207 {
208 AccessMmsToken token;
209 std::vector<unsigned char> pdu = StringUtils::HexToByteVector(
210 "0891683110205005F0640BA10156455102F1000432109261715023880605040B8423F04C06246170706C69636174696F6E2F766E642E77"
211 "61702E6D6D732D6D65737361676500B487AF848C829850765030303031365A645430008D9089178031363630373532313930382F545950"
212 "453D504C4D4E008A808E040001298D"
213 "8805810303F47B83687474703A2F2F31302E3132332E31382E38303A3138302F76564F455F3000");
214
215 ShortMessage *message = new ShortMessage();
216 if (message == nullptr) {
217 std::cout << "message is nullptr!" << std::endl;
218 return;
219 }
220 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
221 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
222 if (gsmMessage_ == nullptr) {
223 std::cout << "TestWapPushSms fail!!!" << std::endl;
224 } else {
225 std::cout << "TestWapPushSms success!!!" << std::endl;
226 }
227 }
228
TestDataSmsDeliverySms() const229 void SmsGsmMessageTest::TestDataSmsDeliverySms() const
230 {
231 AccessMmsToken token;
232 std::vector<unsigned char> pdu = StringUtils::HexToByteVector(
233 "0891683110808805F0640D91686106571209F80000327030021205231306050400640000E8329BFD06DDDF723619");
234
235 ShortMessage *message = new ShortMessage();
236 if (message == nullptr) {
237 std::cout << "message is nullptr!" << std::endl;
238 return;
239 }
240 ShortMessage::CreateMessage(pdu, u"3gpp", *message);
241 gsmMessage_ = std::unique_ptr<ShortMessage>(message);
242 if (gsmMessage_ == nullptr) {
243 std::cout << "TestDataSmsDeliverySms fail!!!" << std::endl;
244 } else {
245 std::cout << "TestDataSmsDeliverySms success!!!" << std::endl;
246 }
247 }
248 } // namespace Telephony
249 } // namespace OHOS