@@ -12,8 +12,8 @@ import {
1212 expectUserDataHeader
1313} from './utils/checkPdu' ;
1414
15- describe ( 'Parser ' , ( ) => {
16- test ( 'Simple Deliver message ' , ( ) => {
15+ describe ( 'SMS PDU parser ' , ( ) => {
16+ test ( 'should parse a simple Deliver PDU correctly ' , ( ) => {
1717 const pduStr = '07919730071111F1000B919746121611F10000811170021222230DC8329BFD6681EE6F399B1C02' ;
1818 const parsedPdu = parse ( pduStr ) ;
1919
@@ -24,7 +24,7 @@ describe('Parser', () => {
2424 expectUserData ( parsedPdu , { text : 'Hello, world!' } ) ;
2525 } ) ;
2626
27- test ( 'Negative SCTS Time Zone offset' , ( ) => {
27+ test ( 'should parse Deliver PDU with negative time-zone offset' , ( ) => {
2828 const pduStr = '07919730071111F1000B919746121611F100008111700212222B0DC8329BFD6681EE6F399B1C02' ;
2929 const parsedPdu = parse ( pduStr ) ;
3030
@@ -34,24 +34,26 @@ describe('Parser', () => {
3434
3535 test . each ( [
3636 {
37+ name : '+' ,
3738 pduStr : '001100039199F90000FF1A4937BD2C7787E9E9B73BCC06C1D16F7719E4AEB7C56539' ,
3839 address : '+999' ,
3940 text : 'International phone number'
4041 } ,
4142 {
43+ name : '00' ,
4244 pduStr : '001100039199F90000FF1A4937BD2C7787E9E9B73BCC06C1D16F7719E4AEB7C56539' ,
4345 address : '00999' ,
4446 text : 'International phone number'
4547 }
46- ] ) ( 'International phone number ($address) ' , ( { pduStr, address, text } ) => {
48+ ] ) ( 'should parse Deliver/Submit PDU with international "$name" prefix ' , ( { pduStr, address, text } ) => {
4749 const parsedPdu = parse ( pduStr ) ;
4850
4951 expectDeliverOrSubmit ( parsedPdu ) ;
5052 expectAddress ( parsedPdu , address ) ;
5153 expectUserData ( parsedPdu , { text } ) ;
5254 } ) ;
5355
54- test ( 'Non-International phone number ' , ( ) => {
56+ test ( 'should parse a non-international Submit PDU correctly ' , ( ) => {
5557 const pduStr = '000100038199F9000005C8329BFD06' ;
5658 const parsedPdu = parse ( pduStr ) ;
5759
@@ -60,7 +62,7 @@ describe('Parser', () => {
6062 expectUserData ( parsedPdu , { text : 'Hello' } ) ;
6163 } ) ;
6264
63- test ( 'Alphanumeric OA ' , ( ) => {
65+ test ( 'should parse Deliver PDU with alphanumeric originator address ' , ( ) => {
6466 const pduStr = '07911326060032F0000DD0D432DBFC96D30100001121313121114012D7327BFC6E9741F437885A669BDF723A' ;
6567 const parsedPdu = parse ( pduStr ) ;
6668
@@ -71,7 +73,7 @@ describe('Parser', () => {
7173 expectUserData ( parsedPdu , { text : 'Welcome to Telfort' } ) ;
7274 } ) ;
7375
74- test ( 'Flash SMS' , ( ) => {
76+ test ( 'should parse Flash SMS Deliver PDU correctly ' , ( ) => {
7577 const pduStr = '07919730071111F1000B919746121611F10010811170021222231054747A0E4ACF416190991D9EA343' ;
7678 const parsedPdu = parse ( pduStr ) ;
7779
@@ -92,14 +94,14 @@ describe('Parser', () => {
9294 text : '{test}' ,
9395 size : 8
9496 }
95- ] ) ( 'Extended 7 bit symbols ( "$text") ' , ( { pduStr, text, size } ) => {
97+ ] ) ( 'should parse extended 7- bit symbol "$text"' , ( { pduStr, text, size } ) => {
9698 const parsedPdu = parse ( pduStr ) ;
9799
98100 expectDeliverOrSubmit ( parsedPdu ) ;
99101 expectUserData ( parsedPdu , { text, size } ) ;
100102 } ) ;
101103
102- test ( 'UCS2 encoded' , ( ) => {
104+ test ( 'should parse UCS2 encoded Deliver PDU correctly ' , ( ) => {
103105 const pduStr = '07919730071111F1000B919746121611F100088111800212222318041F04400438043204350442002C0020043C043804400021' ;
104106 const parsedPdu = parse ( pduStr ) ;
105107
@@ -109,7 +111,7 @@ describe('Parser', () => {
109111 expectUserData ( parsedPdu , { text : '\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440!' , size : 24 } ) ;
110112 } ) ;
111113
112- test ( 'Test small letters at input ' , ( ) => {
114+ test ( 'should parse lowercase-hex PDU string correctly ' , ( ) => {
113115 const pduStr = '07919730071111f1400b919746121611f100008111701222822310050a03000410846f3619f476b3f3' ;
114116 const parsedPdu = parse ( pduStr ) ;
115117
@@ -119,14 +121,16 @@ describe('Parser', () => {
119121
120122 test . each ( [
121123 {
124+ name : 'bold, italic, underline, strikethrough' ,
122125 pduStr : '07919730071111F1400B919746121611F100008111701222322342140A030004100A030606200A030E09400A031C0D80C2379BCC0225E961767ACC0255DDE4B29C9D76974161371934A5CBD3EB321D2D7FD7CF6817' ,
123126 text : 'Bold, Italic, Underline and Strikethrough.'
124127 } ,
125128 {
129+ name : 'bold only' ,
126130 pduStr : '07919730071111F1400B919746121611F100008111701222822310050A03000410846F3619F476B3F3' ,
127131 text : 'Bold only'
128132 }
129- ] ) ( 'EMS formatted text (#%# )' , ( { pduStr, text } ) => {
133+ ] ) ( 'should parse EMS formatted text ($name )' , ( { pduStr, text } ) => {
130134 const parsedPdu = parse ( pduStr ) ;
131135
132136 expectDeliverOrSubmit ( parsedPdu ) ;
@@ -135,20 +139,22 @@ describe('Parser', () => {
135139
136140 test . each ( [
137141 {
142+ name : 'segment 1 of 2' ,
138143 pduStr : '07919730071111F1400B919746121611F10000100161916223230D0500032E020190E175DD1D06' ,
139144 pointer : 0x2e ,
140145 segments : 2 ,
141146 current : 1 ,
142147 text : 'Hakuna'
143148 } ,
144149 {
150+ name : 'segment 2 of 2' ,
145151 pduStr : '07919730071111F1400B919746121611F10000100161916233230E0500032E020240ED303D4C0F03' ,
146152 pointer : 0x2e ,
147153 segments : 2 ,
148154 current : 2 ,
149155 text : ' matata'
150156 }
151- ] ) ( 'Concatenated messages with 8bit ref. (#%#) ' , ( { pduStr, pointer, segments, current, text } ) => {
157+ ] ) ( 'should parse concatenated 8-bit ref, $name ' , ( { pduStr, pointer, segments, current, text } ) => {
152158 const parsedPdu = parse ( pduStr ) ;
153159
154160 expectDeliverOrSubmit ( parsedPdu ) ;
@@ -158,55 +164,62 @@ describe('Parser', () => {
158164
159165 test . each ( [
160166 {
167+ name : '(0x1234), segment 1 of 2' ,
161168 pduStr : '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601' ,
162169 pointer : 0x1234 ,
163170 segments : 2 ,
164171 current : 1 ,
165172 text : 'Hello,'
166173 } ,
167174 {
175+ name : '(0x1234), segment 2 of 2' ,
168176 pduStr : '07919730071111F1400B919746121611F10000811170021232230F06080412340202A0FB5BCE268700' ,
169177 pointer : 0x1234 ,
170178 segments : 2 ,
171179 current : 2 ,
172180 text : ' world!'
173181 } ,
174182 {
183+ name : '(0x1235), segment 1 of 2' ,
175184 pduStr : '07919730071111F1400B919746121611F10000811170021222230B06080412350201C8340B' ,
176185 pointer : 0x1235 ,
177186 segments : 2 ,
178187 current : 1 ,
179188 text : 'Hi,'
180189 } ,
181190 {
191+ name : '(0x1235), segment 2 of 2' ,
182192 pduStr : '07919730071111F1400B919746121611F10000811170021232230F06080412350202A0FB5BCE268700' ,
183193 pointer : 0x1235 ,
184194 segments : 2 ,
185195 current : 2 ,
186196 text : ' world!'
187197 } ,
188198 {
199+ name : '(0x1234), segment 1 of 3' ,
189200 pduStr : '07919730071111F1400B919746121611F10000811170021222230E060804123403015774987E9A03' ,
190201 pointer : 0x1234 ,
191202 segments : 3 ,
192203 current : 1 ,
193204 text : "What's"
194205 } ,
195206 {
207+ name : '(0x1234), segment 2 of 3' ,
196208 pduStr : '07919730071111F1400B919746121611F10000811170021232230C06080412340302A03A9C05' ,
197209 pointer : 0x1234 ,
198210 segments : 3 ,
199211 current : 2 ,
200212 text : ' up,'
201213 } ,
202214 {
215+ name : '(0x1234), segment 3 of 3' ,
203216 pduStr : '07919730071111F1400B919746121611F10000811170021242230D06080412340303A076D8FD03' ,
204217 pointer : 0x1234 ,
205218 segments : 3 ,
206219 current : 3 ,
207220 text : ' man?'
208221 }
209- ] ) ( 'Concatenated messages with 16bit ref. (#%#) ' , ( { pduStr, pointer, segments, current, text } ) => {
222+ ] ) ( 'should parse concatenated 16-bit $name ' , ( { pduStr, pointer, segments, current, text } ) => {
210223 const parsedPdu = parse ( pduStr ) ;
211224
212225 expectDeliverOrSubmit ( parsedPdu ) ;
0 commit comments