• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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