1273
+ − 1 #!/usr/bin/python
+ − 2 # -*- coding: utf-8 -*-
+ − 3
+ − 4 # SAT: a jabber client
1396
+ − 5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Jérôme Poisson (goffi@goffi.org)
+ − 6 # Copyright (C) 2013, 2014, 2015 Adrien Cossa (souliane@mailoo.org)
1273
+ − 7
+ − 8 # This program is free software: you can redistribute it and/or modify
+ − 9 # it under the terms of the GNU Affero General Public License as published by
+ − 10 # the Free Software Foundation, either version 3 of the License, or
+ − 11 # (at your option) any later version.
+ − 12
+ − 13 # This program is distributed in the hope that it will be useful,
+ − 14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ − 16 # GNU Affero General Public License for more details.
+ − 17
+ − 18 # You should have received a copy of the GNU Affero General Public License
+ − 19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ − 20
+ − 21 """ Plugin XEP-0203 """
+ − 22
+ − 23 from sat.test import helpers
+ − 24 from sat.plugins.plugin_xep_0203 import XEP_0203
+ − 25 from twisted.words.xish import domish
+ − 26 from twisted.words.protocols.jabber.jid import JID
+ − 27 from dateutil.tz import tzutc
+ − 28 import datetime
+ − 29
+ − 30 NS_PUBSUB = 'http://jabber.org/protocol/pubsub'
+ − 31
+ − 32
+ − 33 class XEP_0203Test ( helpers . SatTestCase ):
+ − 34
+ − 35 def setUp ( self ):
+ − 36 self . host = helpers . FakeSAT ()
+ − 37 self . plugin = XEP_0203 ( self . host )
+ − 38
+ − 39 def test_delay ( self ):
+ − 40 delay_xml = """
+ − 41 <delay xmlns='urn:xmpp:delay'
+ − 42 from='capulet.com'
+ − 43 stamp='2002-09-10T23:08:25Z'>
+ − 44 Offline Storage
+ − 45 </delay>
+ − 46 """
+ − 47 message_xml = """
+ − 48 <message
+ − 49 from='romeo@montague.net/orchard'
+ − 50 to='juliet@capulet.com'
+ − 51 type='chat'>
+ − 52 <body>text</body>
+ − 53 %s
+ − 54 </message>
+ − 55 """ % delay_xml
+ − 56
+ − 57 parent = domish . Element (( None , 'message' ))
+ − 58 parent [ 'from' ] = 'romeo@montague.net/orchard'
+ − 59 parent [ 'to' ] = 'juliet@capulet.com'
+ − 60 parent [ 'type' ] = 'chat'
+ − 61 parent . addElement ( 'body' , None , 'text' )
+ − 62 stamp = datetime . datetime ( 2002 , 9 , 10 , 23 , 8 , 25 , tzinfo = tzutc ())
+ − 63 elt = self . plugin . delay ( stamp , JID ( 'capulet.com' ), 'Offline Storage' , parent )
+ − 64 self . assertEqualXML ( elt . toXml (), delay_xml , True )
+ − 65 self . assertEqualXML ( parent . toXml (), message_xml , True )