package gateway
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, "")
}
func TestPresenceNoFrom(t *testing.T) {
presence := newPresence("from@test", "to@test")
testPresence(t, presence, "")
}
func TestPresenceType(t *testing.T) {
presence := newPresence("from@test", "to@test", SPType("subscribe"))
testPresence(t, presence, "")
}
func TestPresenceShow(t *testing.T) {
presence := newPresence("from@test", "to@test", SPShow("dnd"))
testPresence(t, presence, "dnd")
}
func TestPresenceStatus(t *testing.T) {
presence := newPresence("from@test", "to@test", SPStatus("cooking"))
testPresence(t, presence, "cooking")
}
func TestPresenceNickname(t *testing.T) {
presence := newPresence("from@test", "to@test", SPNickname("Ishmael"))
testPresence(t, presence, "Ishmael")
}
func TestPresencePhoto(t *testing.T) {
presence := newPresence("from@test", "to@test", SPPhoto("01b87fcd030b72895ff8e88db57ec525450f000d"))
testPresence(t, presence, "01b87fcd030b72895ff8e88db57ec525450f000d")
}
func TestPresenceCaps(t *testing.T) {
caps := newPresence("from@test", "to@test", SPCaps("QgayPKawpkPSDYmwT/WM94uAlu0="))
testPresence(t, presence, "")
}