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, "") }