Skip to content

Commit

Permalink
Add a test for Recv()
Browse files Browse the repository at this point in the history
  • Loading branch information
lufia authored and mattn committed Nov 21, 2016
1 parent 02db6f5 commit f66ee47
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions xmpp_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package xmpp

import (
"bytes"
"encoding/xml"
"net"
"reflect"
"strings"
"testing"
"time"
)

type localAddr struct{}

func (a *localAddr) Network() string {
return "tcp"
}

func (addr *localAddr) String() string {
return "localhost:5222"
}

type testConn struct {
*bytes.Buffer
}

func tConnect(s string) net.Conn {
var conn testConn
conn.Buffer = bytes.NewBufferString(s)
return &conn
}

func (*testConn) Close() error {
return nil
}

func (*testConn) LocalAddr() net.Addr {
return &localAddr{}
}

func (*testConn) RemoteAddr() net.Addr {
return &localAddr{}
}

func (*testConn) SetDeadline(time.Time) error {
return nil
}

func (*testConn) SetReadDeadline(time.Time) error {
return nil
}

func (*testConn) SetWriteDeadline(time.Time) error {
return nil
}

var text = strings.TrimSpace(`
<message xmlns="jabber:client" id="3" type="error" to="[email protected]/ABC">
<gcm xmlns="google:mobile:data">
{"random": "text"}
</gcm>
<error code="400" type="modify">
<bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">
InvalidJson: JSON_PARSING_ERROR : Missing Required Field: message_id\n
</text>
</error>
</message>
`)

func TestStanzaError(t *testing.T) {
var c Client
c.conn = tConnect(text)
c.p = xml.NewDecoder(c.conn)
v, err := c.Recv()
if err != nil {
t.Fatalf("Recv() = %v", err)
}

chat := Chat{
Type: "error",
Other: []string{
"\n\t\t{\"random\": \"text\"}\n\t",
"\n\t\t\n\t\t\n\t",
},
}
if !reflect.DeepEqual(v, chat) {
t.Errorf("Recv() = %#v; want %#v", v, chat)
}
}

0 comments on commit f66ee47

Please sign in to comment.