smalltalk
/
osmo-st-sip
Archived
1
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
osmo-st-sip/grammar/SIPGrammarTest.st

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'.
]
]