Beispiel #1
0
 def test_connectedLogTrafficFalse(self):
     """
     Test raw data functions unset when logTraffic is set to False.
     """
     sm = self.streamManager
     handler = DummyXMPPHandler()
     handler.setHandlerParent(sm)
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     sm._connected(xs)
     self.assertIdentical(None, xs.rawDataInFn)
     self.assertIdentical(None, xs.rawDataOutFn)
Beispiel #2
0
 def setUp(self):
     authenticator = xmlstream.ConnectAuthenticator('otherhost')
     authenticator.namespace = 'testns'
     self.xmlstream = xmlstream.XmlStream(authenticator)
     self.clock = task.Clock()
     self.xmlstream._callLater = self.clock.callLater
     self.xmlstream.makeConnection(proto_helpers.StringTransport())
     self.xmlstream.dataReceived(
        "<stream:stream xmlns:stream='http://etherx.jabber.org/streams' "
                       "xmlns='testns' from='otherhost' version='1.0'>")
     self.iq = xmlstream.IQ(self.xmlstream, 'get')
 def test_disconnectedReason(self):
     """
     A L{STREAM_END_EVENT} results in L{StreamManager} firing the handlers
     L{connectionLost} methods, passing a L{failure.Failure} reason.
     """
     sm = self.streamManager
     handler = FailureReasonXMPPHandler()
     handler.setHandlerParent(sm)
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     sm._disconnected(failure.Failure(Exception("no reason")))
     self.assertEquals(True, handler.gotFailureReason)
Beispiel #4
0
    def setUp(self):
        self.output = []

        self.authenticator = xmlstream.Authenticator()
        self.xmlstream = xmlstream.XmlStream(self.authenticator)
        self.xmlstream.send = self.output.append
        self.xmlstream.connectionMade()
        self.xmlstream.dataReceived("<stream:stream xmlns='jabber:client' "
                        "xmlns:stream='http://etherx.jabber.org/streams' "
                        "from='example.com' id='12345' version='1.0'>")
        self.init = DummySASLInitiatingInitializer(self.xmlstream)
Beispiel #5
0
    def test_addHandlerConnected(self):
        """
        Adding a handler when connected doesn't call connectionInitialized.
        """
        sm = self.streamManager
        xs = xmlstream.XmlStream(xmlstream.Authenticator())
        sm._connected(xs)
        handler = DummyXMPPHandler()
        handler.setHandlerParent(sm)

        self.assertEquals(1, handler.doneMade)
        self.assertEquals(0, handler.doneInitialized)
        self.assertEquals(0, handler.doneLost)
    def test_makeConnection(self):
        """
        Test that makeConnection saves the XML stream and calls connectionMade.
        """
        class TestXMPPHandler(xmlstream.XMPPHandler):
            def connectionMade(self):
                self.doneMade = True

        handler = TestXMPPHandler()
        xs = xmlstream.XmlStream(xmlstream.Authenticator())
        handler.makeConnection(xs)
        self.assertTrue(handler.doneMade)
        self.assertIdentical(xs, handler.xmlstream)
Beispiel #7
0
    def setUp(self):
        self.output = []

        self.xmlstream = xmlstream.XmlStream(xmlstream.Authenticator())
        self.xmlstream.thisEntity = jid.JID('example.org')
        self.xmlstream.otherEntity = jid.JID('example.com')
        self.xmlstream.send = self.output.append

        self.router = component.Router()
        self.service = server.ServerService(self.router,
                                            secret='mysecret',
                                            domain='example.org')
        self.service.xmlstream = self.xmlstream
Beispiel #8
0
    def setUp(self):
        self.outlist = []

        authenticator = xmlstream.ConnectAuthenticator('otherhost')
        authenticator.namespace = 'testns'
        self.xmlstream = xmlstream.XmlStream(authenticator)
        self.xmlstream.transport = self
        self.xmlstream.transport.write = self.outlist.append
        self.xmlstream.connectionMade()
        self.xmlstream.dataReceived(
            "<stream:stream xmlns:stream='http://etherx.jabber.org/streams' "
            "xmlns='testns' from='otherhost' version='1.0'>")
        self.iq = xmlstream.IQ(self.xmlstream, type='get')
 def test_connected(self):
     """
     Test that protocol handlers have their connectionMade method called
     when the XML stream is connected.
     """
     sm = self.streamManager
     handler = DummyXMPPHandler()
     handler.setHandlerParent(sm)
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     sm._connected(xs)
     self.assertEqual(1, handler.doneMade)
     self.assertEqual(0, handler.doneInitialized)
     self.assertEqual(0, handler.doneLost)
    def setUp(self):
        self.output = []

        self.authenticator = xmlstream.Authenticator()
        self.authenticator.password = '******'
        self.xmlstream = xmlstream.XmlStream(self.authenticator)
        self.xmlstream.namespace = 'test:component'
        self.xmlstream.send = self.output.append
        self.xmlstream.connectionMade()
        self.xmlstream.dataReceived(
            "<stream:stream xmlns='test:component' "
            "xmlns:stream='http://etherx.jabber.org/streams' "
            "from='example.com' id='12345' version='1.0'>")
        self.init = ComponentInitiatingInitializer(self.xmlstream)
Beispiel #11
0
    def setUp(self):
        self.output = []

        class MyService(object):
            pass

        self.service = MyService()
        self.service.defaultDomain = self.receiving
        self.service.domains = [self.receiving, 'pubsub.' + self.receiving]
        self.service.secret = self.secret

        self.authenticator = server.XMPPServerListenAuthenticator(self.service)
        self.xmlstream = xmlstream.XmlStream(self.authenticator)
        self.xmlstream.send = self.output.append
        self.xmlstream.transport = StringTransport()
 def testOnFailure(self):
     """
     Test that the SASL error condition is correctly extracted.
     """
     self.authenticator = xmlstream.Authenticator()
     self.xmlstream = xmlstream.XmlStream(self.authenticator)
     init = sasl.SASLInitiatingInitializer(self.xmlstream)
     failure = domish.Element(
         ('urn:ietf:params:xml:ns:xmpp-sasl', 'failure'))
     failure.addElement('not-authorized')
     init._deferred = defer.Deferred()
     init.onFailure(failure)
     self.assertFailure(init._deferred, sasl.SASLAuthError)
     init._deferred.addCallback(
         lambda e: self.assertEquals('not-authorized', e.condition))
     return init._deferred
 def setUp(self):
     """
     Set up XmlStream and several observers.
     """
     self.gotStreamStart = False
     self.gotStreamEnd = False
     self.gotStreamError = False
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     xs.addObserver('//event/stream/start', self.onStreamStart)
     xs.addObserver('//event/stream/end', self.onStreamEnd)
     xs.addObserver('//event/stream/error', self.onStreamError)
     xs.makeConnection(proto_helpers.StringTransportWithDisconnection())
     xs.transport.protocol = xs
     xs.namespace = 'testns'
     xs.version = (1, 0)
     self.xmlstream = xs
    def test_addHandlerInitialized(self):
        """
        Test the addition of a protocol handler after the stream
        have been initialized.

        Make sure that the handler will have the connected stream
        passed via C{makeConnection} and have C{connectionInitialized}
        called.
        """
        sm = self.streamManager
        xs = xmlstream.XmlStream(xmlstream.Authenticator())
        sm._connected(xs)
        sm._authd(xs)
        handler = DummyXMPPHandler()
        handler.setHandlerParent(sm)

        self.assertEqual(1, handler.doneMade)
        self.assertEqual(1, handler.doneInitialized)
        self.assertEqual(0, handler.doneLost)
Beispiel #15
0
    def testAuth(self):
        self.authComplete = False
        outlist = []

        ca = component.ConnectComponentAuthenticator(u"cjid", u"secret")
        xs = xmlstream.XmlStream(ca)
        xs.transport = DummyTransport(outlist)

        xs.addObserver(xmlstream.STREAM_AUTHD_EVENT,
                       self.authPassed)

        # Go...
        xs.connectionMade()
        xs.dataReceived(b"<stream:stream xmlns='jabber:component:accept' xmlns:stream='http://etherx.jabber.org/streams' from='cjid' id='12345'>")

        # Calculate what we expect the handshake value to be
        hv = sha1(b"12345" + b"secret").hexdigest().encode('ascii')

        self.assertEqual(outlist[1], b"<handshake>" + hv + b"</handshake>")

        xs.dataReceived("<handshake/>")

        self.assertEqual(self.authComplete, True)
Beispiel #16
0
 def __init__(self):
     self.output = []
     self.xmlstream = xmlstream.XmlStream(xmlstream.Authenticator())
     self.xmlstream.send = self.output.append
 def setUp(self):
     self.xmlstream = xmlstream.XmlStream(xmlstream.Authenticator())
     self.init = TestFeatureInitializer(self.xmlstream)
 def setUp(self):
     self.authenticator = xmlstream.ListenAuthenticator()
     self.xmlstream = xmlstream.XmlStream(self.authenticator)
Beispiel #19
0
 def setUp(self):
     self.output = []
     authenticator = component.ListenComponentAuthenticator('secret')
     self.xmlstream = xmlstream.XmlStream(authenticator)
     self.xmlstream.send = self.output.append
Beispiel #20
0
 def setUp(self):
     a = xmlstream.Authenticator()
     xs = xmlstream.XmlStream(a)
     self.init = client.CheckVersionInitializer(xs)