2019-11-24 22:20:07 +00:00
|
|
|
package gateway
|
2019-11-14 20:11:04 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/xml"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"gosrc.io/xmpp/stanza"
|
|
|
|
)
|
|
|
|
|
|
|
|
func testPresence(t *testing.T, presence stanza.Presence, reference string) {
|
|
|
|
byteXML, err := xml.Marshal(presence)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("XML parse error: %v", err)
|
|
|
|
}
|
|
|
|
xmlText := string(byteXML)
|
|
|
|
if xmlText != reference {
|
|
|
|
t.Errorf("%v does not match %v", xmlText, reference)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceFrom(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPFrom("test"))
|
|
|
|
testPresence(t, presence, "<presence from=\"test@from@test\" to=\"to@test\"></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceNoFrom(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test")
|
|
|
|
testPresence(t, presence, "<presence from=\"from@test\" to=\"to@test\"></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceType(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPType("subscribe"))
|
|
|
|
testPresence(t, presence, "<presence type=\"subscribe\" from=\"from@test\" to=\"to@test\"></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceShow(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPShow("dnd"))
|
|
|
|
testPresence(t, presence, "<presence from=\"from@test\" to=\"to@test\"><show>dnd</show></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceStatus(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPStatus("cooking"))
|
|
|
|
testPresence(t, presence, "<presence from=\"from@test\" to=\"to@test\"><status>cooking</status></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresenceNickname(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPNickname("Ishmael"))
|
|
|
|
testPresence(t, presence, "<presence from=\"from@test\" to=\"to@test\"><nick xmlns=\"http://jabber.org/protocol/nick\">Ishmael</nick></presence>")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPresencePhoto(t *testing.T) {
|
|
|
|
presence := newPresence("from@test", "to@test", SPPhoto("01b87fcd030b72895ff8e88db57ec525450f000d"))
|
|
|
|
testPresence(t, presence, "<presence from=\"from@test\" to=\"to@test\"><x xmlns=\"vcard-temp:x:update\"><photo>01b87fcd030b72895ff8e88db57ec525450f000d</photo></x></presence>")
|
|
|
|
}
|