1273
|
1 #!/usr/bin/python |
|
2 # -*- coding: utf-8 -*- |
|
3 |
|
4 # SAT: a jabber client |
|
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org) |
|
6 # Copyright (C) 2013, 2014 Adrien Cossa (souliane@mailoo.org) |
|
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) |