1package xmpp 2 3import ( 4 "github.com/coyim/coyim/xmpp/data" 5 . "gopkg.in/check.v1" 6) 7 8type RegisterSuite struct{} 9 10var _ = Suite(&RegisterSuite{}) 11 12func (s *RegisterSuite) Test_CancelRegistration_SendCancelationRequest(c *C) { 13 expectedoOut := "<iq xmlns='jabber:client' from='user@xmpp.org' type='set' id='.+'>\n" + 14 "\t<query xmlns='jabber:iq:register'>\n" + 15 "\t\t<remove/>\n" + 16 "\t</query>\n" + 17 "\t</iq>" 18 19 mockIn := &mockConnIOReaderWriter{} 20 conn := newConn() 21 conn.out = mockIn 22 conn.jid = "user@xmpp.org" 23 24 _, _, err := conn.CancelRegistration() 25 c.Assert(err, IsNil) 26 c.Assert(string(mockIn.write), Matches, expectedoOut) 27} 28 29func (s *RegisterSuite) Test_setupStream_registerWithoutAuthenticating(c *C) { 30 rw := &mockConnIOReaderWriter{read: []byte( 31 "<?xml version='1.0'?>" + 32 "<str:stream xmlns:str='http://etherx.jabber.org/streams' version='1.0'>" + 33 "<str:features>" + 34 "<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>" + 35 "<mechanism>PLAIN</mechanism>" + 36 "</mechanisms>" + 37 "<register xmlns='http://jabber.org/features/iq-register'/>" + 38 "</str:features>" + 39 "<iq xmlns='jabber:client' type='result'>" + 40 "<query xmlns='jabber:iq:register'><username/></query>" + 41 "</iq>" + 42 "<iq xmlns='jabber:client' type='result'></iq>", 43 )} 44 conn := &fullMockedConn{rw: rw} 45 46 d := &dialer{ 47 JID: "user@domain", 48 password: "pass", 49 config: data.Config{ 50 SkipTLS: true, 51 CreateCallback: func(title, instructions string, fields []interface{}) error { 52 return nil 53 }, 54 }, 55 } 56 _, err := d.setupStream(conn) 57 58 c.Assert(err, IsNil) 59 c.Assert(string(rw.write), Equals, ""+ 60 "<?xml version='1.0'?>"+ 61 "<stream:stream to='domain' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>\n"+ 62 "<iq type='get' id='create_1'><query xmlns='jabber:iq:register'/></iq>"+ 63 "</stream:stream>", 64 ) 65} 66