def test_sendNotConnected(self):
        """
        Test send when there is no established XML stream.

        The data should be cached until an XML stream has been established and
        initialized.
        """
        factory = xmlstream.XmlStreamFactory(xmlstream.Authenticator())
        sm = xmlstream.StreamManager(factory)
        handler = DummyXMPPHandler()
        sm.addHandler(handler)

        xs = factory.buildProtocol(None)
        xs.transport = proto_helpers.StringTransport()
        sm.send("<presence/>")
        self.assertEquals("", xs.transport.value())
        self.assertEquals("<presence/>", sm._packetQueue[0])

        xs.connectionMade()
        self.assertEquals("", xs.transport.value())
        self.assertEquals("<presence/>", sm._packetQueue[0])

        xs.dataReceived("<stream:stream xmlns='jabber:client' "
                        "xmlns:stream='http://etherx.jabber.org/streams' "
                        "from='example.com' id='12345'>")
        xs.dispatch(xs, "//event/stream/authd")

        self.assertEquals("<presence/>", xs.transport.value())
        self.assertFalse(sm._packetQueue)
 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 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)
Esempio n. 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)
    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)
Esempio n. 7
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_sendNotInitialized(self):
        """
        Test send when the stream is connected but not yet initialized.

        The data should be cached until the XML stream has been initialized.
        """
        factory = xmlstream.XmlStreamFactory(xmlstream.Authenticator())
        sm = xmlstream.StreamManager(factory)
        xs = factory.buildProtocol(None)
        xs.transport = proto_helpers.StringTransport()
        xs.connectionMade()
        xs.dataReceived("<stream:stream xmlns='jabber:client' "
                        "xmlns:stream='http://etherx.jabber.org/streams' "
                        "from='example.com' id='12345'>")
        sm.send("<presence/>")
        self.assertEquals("", xs.transport.value())
        self.assertEquals("<presence/>", sm._packetQueue[0])
    def test_sendInitialized(self):
        """
        Test send when the stream has been initialized.

        The data should be sent directly over the XML stream.
        """
        factory = xmlstream.XmlStreamFactory(xmlstream.Authenticator())
        sm = xmlstream.StreamManager(factory)
        xs = factory.buildProtocol(None)
        xs.transport = proto_helpers.StringTransport()
        xs.connectionMade()
        xs.dataReceived("<stream:stream xmlns='jabber:client' "
                        "xmlns:stream='http://etherx.jabber.org/streams' "
                        "from='example.com' id='12345'>")
        xs.dispatch(xs, "//event/stream/authd")
        sm.send("<presence/>")
        self.assertEquals("<presence/>", xs.transport.value())
    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)
    def test_sendDisconnected(self):
        """
        Test send after XML stream disconnection.

        The data should be cached until a new XML stream has been established
        and initialized.
        """
        factory = xmlstream.XmlStreamFactory(xmlstream.Authenticator())
        sm = xmlstream.StreamManager(factory)
        handler = DummyXMPPHandler()
        sm.addHandler(handler)

        xs = factory.buildProtocol(None)
        xs.connectionMade()
        xs.transport = proto_helpers.StringTransport()
        xs.connectionLost(None)

        sm.send("<presence/>")
        self.assertEquals("", xs.transport.value())
        self.assertEquals("<presence/>", sm._packetQueue[0])
 def setUp(self):
     self.xmlstream = xmlstream.XmlStream(xmlstream.Authenticator())
     self.init = TestFeatureInitializer(self.xmlstream)
 def setUp(self):
     self.authenticator = xmlstream.Authenticator()
     self.xmlstream = xmlstream.XmlStream(self.authenticator)