Exemplo n.º 1
0
    def DoHandshake(self, resource_prefix, resource, username,
                    initial_stream_domain, auth_domain, auth_stream_domain):
        self.data_received = 0
        id_generator = xmppserver.IdGenerator('foo')
        handshake_task = (xmppserver.HandshakeTask(self, id_generator,
                                                   resource_prefix))
        stream_xml = xmppserver.ParseXml('<stream:stream xmlns:stream="foo"/>')
        stream_xml.setAttribute('to', initial_stream_domain)
        self.assertEqual(self.data_received, 0)
        handshake_task.FeedStanza(stream_xml)
        self.assertEqual(self.data_received, 2)

        if auth_domain:
            username_domain = '%s@%s' % (username, auth_domain)
        else:
            username_domain = username
        auth_string = base64.b64encode('\0%s\0bar' % username_domain)
        auth_xml = xmppserver.ParseXml('<auth>%s</auth>' % auth_string)
        handshake_task.FeedStanza(auth_xml)
        self.assertEqual(self.data_received, 3)

        stream_xml = xmppserver.ParseXml('<stream:stream xmlns:stream="foo"/>')
        stream_xml.setAttribute('to', auth_stream_domain)
        handshake_task.FeedStanza(stream_xml)
        self.assertEqual(self.data_received, 5)

        bind_xml = xmppserver.ParseXml(
            '<iq type="set"><bind><resource>%s</resource></bind></iq>' %
            resource)
        handshake_task.FeedStanza(bind_xml)
        self.assertEqual(self.data_received, 6)

        session_xml = xmppserver.ParseXml(
            '<iq type="set"><session></session></iq>')
        handshake_task.FeedStanza(session_xml)
        self.assertEqual(self.data_received, 7)

        self.assertEqual(self.jid.username, username)
        self.assertEqual(
            self.jid.domain, auth_stream_domain or auth_domain
            or initial_stream_domain)
        self.assertEqual(self.jid.resource,
                         '%s.%s' % (resource_prefix, resource))
Exemplo n.º 2
0
 def testBasic(self):
     id_generator = xmppserver.IdGenerator('foo')
     for i in xrange(0, 100):
         self.assertEqual('foo.%d' % i, id_generator.GetNextId())