go-xmpp/jid_test.go

58 lines
1.4 KiB
Go
Raw Normal View History

package xmpp // import "gosrc.io/xmpp"
2016-01-06 16:59:44 +00:00
import (
"testing"
)
2016-01-06 18:21:37 +00:00
func TestValidJids(t *testing.T) {
tests := []struct {
jidstr string
expected Jid
}{
{jidstr: "test@domain.com", expected: Jid{"test", "domain.com", ""}},
{jidstr: "test@domain.com/resource", expected: Jid{"test", "domain.com", "resource"}},
// resource can contain '/' or '@'
{jidstr: "test@domain.com/a/b", expected: Jid{"test", "domain.com", "a/b"}},
{jidstr: "test@domain.com/a@b", expected: Jid{"test", "domain.com", "a@b"}},
}
2016-01-06 16:59:44 +00:00
for _, tt := range tests {
jid, err := NewJid(tt.jidstr)
if err != nil {
t.Errorf("could not parse correct jid: %s", tt.jidstr)
continue
2019-06-04 17:01:19 +00:00
}
if jid == nil {
t.Error("jid should not be nil")
2016-01-06 18:21:37 +00:00
}
2016-01-06 16:59:44 +00:00
if jid.username != tt.expected.username {
t.Errorf("incorrect jid username (%s): %s", tt.expected.username, jid.username)
2016-01-06 18:21:37 +00:00
}
if jid.username != tt.expected.username {
t.Errorf("incorrect jid domain (%s): %s", tt.expected.domain, jid.domain)
2016-01-06 18:21:37 +00:00
}
2016-01-06 16:59:44 +00:00
if jid.resource != tt.expected.resource {
t.Errorf("incorrect jid resource (%s): %s", tt.expected.resource, jid.resource)
2016-01-06 18:21:37 +00:00
}
2016-01-06 16:59:44 +00:00
}
2016-01-06 18:21:37 +00:00
}
func TestIncorrectJids(t *testing.T) {
badJids := []string{
"user:name@domain.com",
"user<name@domain.com",
"test@domain.com@otherdomain.com",
"test@domain com/resource",
}
2016-01-06 16:59:44 +00:00
2016-01-06 18:21:37 +00:00
for _, sjid := range badJids {
if _, err := NewJid(sjid); err == nil {
t.Error("parsing incorrect jid should return error: " + sjid)
}
2016-01-06 16:59:44 +00:00
}
}