fix everything

This commit is contained in:
Martin/Geno 2019-06-24 16:38:22 +02:00 committed by Mickaël Rémond
parent 6fbfe9fd0a
commit 1971772394
2 changed files with 22 additions and 20 deletions

View File

@ -18,10 +18,10 @@ type MucPresence struct {
// History implements XEP-0045: Multi-User Chat - 19.1
type History struct {
MaxChars int `xml:"maxchars,attr,omitempty"`
MaxStanzas int `xml:"maxstanzas,attr,omitempty"`
Seconds int `xml:"seconds,attr,omitempty"`
Since time.Time `xml:"since,attr,omitempty"`
MaxChars *int `xml:"maxchars,attr,omitempty"`
MaxStanzas *int `xml:"maxstanzas,attr,omitempty"`
Seconds *int `xml:"seconds,attr,omitempty"`
Since *time.Time `xml:"since,attr,omitempty"`
}
func init() {

View File

@ -54,30 +54,32 @@ func TestMucHistory(t *testing.T) {
t.Error("muc presence extension was not found")
}
if muc.History.MaxStanzas != 20 {
if *muc.History.MaxStanzas != 20 {
t.Errorf("incorrect max stanza: '%d'", muc.History.MaxStanzas)
}
}
// https://xmpp.org/extensions/xep-0045.html#example-37
func TestMucNoHistory(t *testing.T) {
str := `<presence
from='hag66@shakespeare.lit/pda'
id='n13mt3l'
to='coven@chat.shakespeare.lit/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'>
<history maxstanzas='0'/>
</x>
</presence>`
str := "<presence" +
" id=\"n13mt3l\"" +
" from=\"hag66@shakespeare.lit/pda\"" +
" to=\"coven@chat.shakespeare.lit/thirdwitch\">" +
"<x xmlns=\"http://jabber.org/protocol/muc\">" +
"<history maxstanzas=\"0\"></history>" +
"</x>" +
"</presence>"
maxstanzas := 0
pres := xmpp.Presence{Attrs: xmpp.Attrs{
From: "hag66@shakespeare.lit/pda",
Id: "n13mt3l",
To: "coven@chat.shakespeare.lit/thirdwitch",
},
From: "hag66@shakespeare.lit/pda",
Id: "n13mt3l",
To: "coven@chat.shakespeare.lit/thirdwitch",
},
Extensions: []xmpp.PresExtension{
xmpp.MucPresence{
History: xmpp.History{MaxStanzas: 0},
History: xmpp.History{MaxStanzas: &maxstanzas},
},
},
}
@ -86,7 +88,7 @@ func TestMucNoHistory(t *testing.T) {
t.Error("error on encode:", err)
}
if data != str {
t.Errorf("incorrect max stanza: '%d'", muc.History.MaxStanzas)
if string(data) != str {
t.Errorf("incorrect stanza: \n%s\n%s", str, data)
}
}