mirror of
https://github.com/FluuxIO/go-xmpp.git
synced 2024-11-26 20:32:02 -08:00
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
|
package xmpp_test
|
||
|
|
||
|
import (
|
||
|
"encoding/xml"
|
||
|
"testing"
|
||
|
|
||
|
"gosrc.io/xmpp"
|
||
|
)
|
||
|
|
||
|
func TestDecodeRequest(t *testing.T) {
|
||
|
str := `<message
|
||
|
from='northumberland@shakespeare.lit/westminster'
|
||
|
id='richard2-4.1.247'
|
||
|
to='kingrichard@royalty.england.lit/throne'>
|
||
|
<body>My lord, dispatch; read o'er these articles.</body>
|
||
|
<request xmlns='urn:xmpp:receipts'/>
|
||
|
</message>`
|
||
|
parsedMessage := xmpp.Message{}
|
||
|
if err := xml.Unmarshal([]byte(str), &parsedMessage); err != nil {
|
||
|
t.Errorf("message receipt unmarshall error: %v", err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if parsedMessage.Body != "My lord, dispatch; read o'er these articles." {
|
||
|
t.Errorf("Unexpected body: '%s'", parsedMessage.Body)
|
||
|
}
|
||
|
|
||
|
if len(parsedMessage.Extensions) < 1 {
|
||
|
t.Errorf("no extension found on parsed message")
|
||
|
return
|
||
|
}
|
||
|
|
||
|
switch ext := parsedMessage.Extensions[0].(type) {
|
||
|
case *xmpp.ReceiptRequest:
|
||
|
if ext.XMLName.Local != "request" {
|
||
|
t.Errorf("unexpected extension: %s:%s", ext.XMLName.Space, ext.XMLName.Local)
|
||
|
}
|
||
|
default:
|
||
|
t.Errorf("could not find receipts extension")
|
||
|
}
|
||
|
|
||
|
}
|