def setUp(self):
     self.gotAuthenticated = False
     self.initFailure = None
     self.authenticator = xmlstream.ConnectAuthenticator('otherHost')
     self.xmlstream = xmlstream.XmlStream(self.authenticator)
     self.xmlstream.addObserver('//event/stream/authd', self.onAuthenticated)
     self.xmlstream.addObserver('//event/xmpp/initfailed', self.onInitFailed)
    def test_authenticator(self):
        """
        Test that the associated authenticator is correctly called.
        """
        connectionMadeCalls = []
        streamStartedCalls = []
        associateWithStreamCalls = []

        class TestAuthenticator:
            def connectionMade(self):
                connectionMadeCalls.append(None)

            def streamStarted(self, rootElement):
                streamStartedCalls.append(rootElement)

            def associateWithStream(self, xs):
                associateWithStreamCalls.append(xs)

        a = TestAuthenticator()
        xs = xmlstream.XmlStream(a)
        self.assertEqual([xs], associateWithStreamCalls)
        xs.connectionMade()
        self.assertEqual([None], connectionMadeCalls)
        xs.dataReceived("<stream:stream xmlns='jabber:client' "
                        "xmlns:stream='http://etherx.jabber.org/streams' "
                        "from='example.com' id='12345'>")
        self.assertEqual(1, len(streamStartedCalls))
        xs.reset()
        self.assertEqual([None], connectionMadeCalls)
 def test_connectionLost(self):
     """
     Test that connectionLost forgets the XML stream.
     """
     handler = xmlstream.XMPPHandler()
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     handler.makeConnection(xs)
     handler.connectionLost(Exception())
     self.assertIdentical(None, handler.xmlstream)
 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_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)
Пример #6
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)
    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)
 def test_disconnected(self):
     """
     Test that protocol handlers have their connectionLost method
     called when the XML stream is disconnected.
     """
     sm = self.streamManager
     handler = DummyXMPPHandler()
     handler.setHandlerParent(sm)
     xs = xmlstream.XmlStream(xmlstream.Authenticator())
     sm._disconnected(xs)
     self.assertEquals(0, handler.doneMade)
     self.assertEquals(0, handler.doneInitialized)
     self.assertEquals(1, handler.doneLost)
Пример #9
0
    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.xmlstream.sid = u'12345'
        self.init = component.ComponentInitiatingInitializer(self.xmlstream)
 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.assertEquals(1, handler.doneMade)
        self.assertEquals(1, handler.doneInitialized)
        self.assertEquals(0, handler.doneLost)
Пример #12
0
    def testAuth(self):
        self.authComplete = False
        outlist = []

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

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

        # Go...
        xs.connectionMade()
        xs.dataReceived(
            "<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("%s%s" % ("12345", "secret")).hexdigest()

        self.assertEquals(outlist[1], "<handshake>%s</handshake>" % (hv))

        xs.dataReceived("<handshake/>")

        self.assertEquals(self.authComplete, True)
Пример #13
0
 def setUp(self):
     self.output = []
     authenticator = component.ListenComponentAuthenticator('secret')
     self.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)