108 lines
4.9 KiB
Smalltalk
108 lines
4.9 KiB
Smalltalk
"
|
|
(C) 2011 by Holger Hans Peter Freyther
|
|
All Rights Reserved
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as
|
|
published by the Free Software Foundation, either version 3 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
"
|
|
|
|
PackageLoader fileInPackage: 'PetitParserTests'.
|
|
|
|
PP.PPCompositeParserTest subclass: SIPGrammarTest [
|
|
<comment: 'I try to parse some SIP messages.'>
|
|
<category: 'SIP-Core'>
|
|
|
|
SIPGrammarTest class >> packageNamesUnderTest [
|
|
<category: 'accessing'>
|
|
^ #('SIPGrammar')
|
|
]
|
|
|
|
parserClass [
|
|
<category: 'accessing'>
|
|
^ SIPGrammar
|
|
]
|
|
|
|
|
|
testTrying [
|
|
| data res hdr |
|
|
data := #(16r53 16r49 16r50 16r2F 16r32 16r2E 16r30 16r20
|
|
16r31 16r30 16r30 16r20 16r54 16r72 16r79 16r69
|
|
16r6E 16r67 16r0D 16r0A 16r56 16r69 16r61 16r3A
|
|
16r20 16r53 16r49 16r50 16r2F 16r32 16r2E 16r30
|
|
16r2F 16r55 16r44 16r50 16r20 16r31 16r37 16r32
|
|
16r2E 16r31 16r36 16r2E 16r32 16r35 16r34 16r2E
|
|
16r32 16r34 16r3B 16r72 16r70 16r6F 16r72 16r74
|
|
16r3D 16r35 16r30 16r36 16r30 16r3B 16r62 16r72
|
|
16r61 16r6E 16r63 16r68 16r3D 16r7A 16r39 16r68
|
|
16r47 16r34 16r62 16r4B 16r66 16r77 16r6A 16r6C
|
|
16r78 16r64 16r72 16r76 16r0D 16r0A 16r46 16r72
|
|
16r6F 16r6D 16r3A 16r20 16r22 16r7A 16r65 16r63
|
|
16r6B 16r65 16r22 16r20 16r3C 16r73 16r69 16r70
|
|
16r3A 16r31 16r30 16r30 16r30 16r40 16r6F 16r6E
|
|
16r2D 16r77 16r61 16r76 16r65 16r73 16r2E 16r63
|
|
16r6F 16r6D 16r3E 16r3B 16r74 16r61 16r67 16r3D
|
|
16r77 16r6D 16r79 16r63 16r6C 16r0D 16r0A 16r54
|
|
16r6F 16r3A 16r20 16r3C 16r73 16r69 16r70 16r3A
|
|
16r39 16r31 16r39 16r38 16r40 16r31 16r37 16r32
|
|
16r2E 16r31 16r36 16r2E 16r31 16r2E 16r37 16r32
|
|
16r3E 16r0D 16r0A 16r43 16r61 16r6C 16r6C 16r2D
|
|
16r49 16r44 16r3A 16r20 16r6F 16r66 16r63 16r77
|
|
16r6E 16r70 16r6D 16r75 16r6C 16r6D 16r63 16r65
|
|
16r61 16r73 16r67 16r40 16r78 16r69 16r61 16r6F
|
|
16r79 16r75 16r0D 16r0A 16r43 16r53 16r65 16r71
|
|
16r3A 16r20 16r39 16r38 16r33 16r20 16r49 16r4E
|
|
16r56 16r49 16r54 16r45 16r0D 16r0A 16r55 16r73
|
|
16r65 16r72 16r2D 16r41 16r67 16r65 16r6E 16r74
|
|
16r3A 16r20 16r46 16r72 16r65 16r65 16r53 16r57
|
|
16r49 16r54 16r43 16r48 16r2D 16r6D 16r6F 16r64
|
|
16r5F 16r73 16r6F 16r66 16r69 16r61 16r2F 16r31
|
|
16r2E 16r30 16r2E 16r68 16r65 16r61 16r64 16r2D
|
|
16r67 16r69 16r74 16r2D 16r64 16r66 16r66 16r34
|
|
16r31 16r61 16r66 16r20 16r32 16r30 16r31 16r31
|
|
16r2D 16r30 16r34 16r2D 16r32 16r30 16r20 16r31
|
|
16r34 16r2D 16r31 16r31 16r2D 16r32 16r34 16r20
|
|
16r2B 16r30 16r32 16r30 16r30 16r0D 16r0A 16r43
|
|
16r6F 16r6E 16r74 16r65 16r6E 16r74 16r2D 16r4C
|
|
16r65 16r6E 16r67 16r74 16r68 16r3A 16r20 16r30
|
|
16r0D 16r0A 16r0D 16r0A) asByteArray.
|
|
|
|
res := self parse: data asString.
|
|
self assert: res size = 4.
|
|
self assert: res first third = '100'.
|
|
self assert: (res first at: 5) = 'Trying'.
|
|
|
|
hdr := res second.
|
|
|
|
self assert: (hdr at: 1) first first = 'Via'.
|
|
self assert: (hdr at: 1) first third = ' SIP/2.0/UDP 172.16.254.24;rport=5060;branch=z9hG4bKfwjlxdrv'.
|
|
|
|
self assert: (hdr at: 2) first first = 'From'.
|
|
self assert: (hdr at: 2) first third = ' "zecke" <sip:1000@on-waves.com>;tag=wmycl'.
|
|
|
|
self assert: (hdr at: 3) first first = 'To'.
|
|
self assert: (hdr at: 3) first third = ' <sip:9198@172.16.1.72>'.
|
|
|
|
self assert: (hdr at: 4) first first = 'Call-ID'.
|
|
self assert: (hdr at: 4) first third = ' ofcwnpmulmceasg@xiaoyu'.
|
|
|
|
self assert: (hdr at: 5) first first = 'CSeq'.
|
|
self assert: (hdr at: 5) first third = ' 983 INVITE'.
|
|
|
|
self assert: (hdr at: 6) first first = 'User-Agent'.
|
|
self assert: (hdr at: 6) first third = ' FreeSWITCH-mod_sofia/1.0.head-git-dff41af 2011-04-20 14-11-24 +0200'.
|
|
|
|
self assert: (hdr at: 7) first first = 'Content-Length'.
|
|
self assert: (hdr at: 7) first third = ' 0'.
|
|
]
|
|
]
|