annotate src/tmp/wokkel/test/test_rsm.py @ 1815:ec764bfb146d

test (RSM): fix according to modification in sat.tmp.wokkel: - parse has been renamed to fromElement in rev 1771 (b77dc676a4df) - use RSMResponse directly instead of ext_data in rev 1773 (6e867caf4621)
author souliane <souliane@mailoo.org>
date Tue, 19 Jan 2016 12:18:29 +0100
parents 0fb5785b4c63
children 2a030a830ebd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
1 # Copyright (c) Adrien Cossa.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
2 # See LICENSE for details.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
3
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
4 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
5 Tests for L{wokkel.rsm}.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
6 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
7
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
8 from zope.interface import verify
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
9
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
10 from twisted.trial import unittest
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
11 from twisted.words.xish import domish
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
12 from twisted.words.protocols.jabber.jid import JID
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
13 from twisted.words.protocols.jabber.xmlstream import toResponse
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
14 from twisted.internet import defer
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
15
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
16 from wokkel.generic import parseXml
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
17 from wokkel import iwokkel
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
18 from wokkel.test.helpers import XmlStreamStub, TestableRequestHandlerMixin
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
19
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
20 from sat.tmp.wokkel import pubsub
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
21 from sat.tmp.wokkel.rsm import NS_RSM, RSMRequest, RSMResponse, PubSubClient, PubSubService
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
22
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
23 import uuid
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
24
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
25
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
26 class RSMRequestTest(unittest.TestCase):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
27 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
28 Tests for L{rsm.RSMRequest}.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
29 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
30
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
31 def test___init__(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
32 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
33 Fail to initialize a RSMRequest with wrong attribute values.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
34 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
35 self.assertRaises(AssertionError, RSMRequest, index=371, after=u'test')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
36 self.assertRaises(AssertionError, RSMRequest, index=371, before=u'test')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
37 self.assertRaises(AssertionError, RSMRequest, before=117)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
38 self.assertRaises(AssertionError, RSMRequest, after=312)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
39 self.assertRaises(AssertionError, RSMRequest, after=u'117', before=u'312')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
40
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
41 def test_parse(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
42 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
43 Parse a request element asking for the first page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
44 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
45 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
46 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
47 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
48 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
49 <max>1</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
50 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
51 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
52 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
53 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
54 self.assertEqual(1, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
55 self.assertIdentical(None, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
56 self.assertIdentical(None, request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
57 self.assertIdentical(None, request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
58
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
59 def test_parseSecondPage(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
60 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
61 Parse a request element asking for a next page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
62 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
63 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
64 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
65 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
66 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
67 <max>3</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
68 <after>peterpan@neverland.lit</after>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
69 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
70 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
71 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
72 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
73 self.assertEqual(3, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
74 self.assertIdentical(None, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
75 self.assertEqual(u'peterpan@neverland.lit', request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
76 self.assertIdentical(None, request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
77
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
78 def test_parsePreviousPage(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
79 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
80 Parse a request element asking for a previous page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
81 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
82 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
83 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
84 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
85 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
86 <max>5</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
87 <before>peterpan@pixyland.org</before>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
88 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
89 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
90 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
91 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
92 self.assertEqual(5, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
93 self.assertIdentical(None, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
94 self.assertIdentical(None, request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
95 self.assertEqual(u'peterpan@pixyland.org', request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
96
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
97 def test_parseLastPage(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
98 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
99 Parse a request element asking for the last page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
100 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
101 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
102 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
103 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
104 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
105 <max>7</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
106 <before/>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
107 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
108 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
109 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
110 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
111 self.assertEqual(7, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
112 self.assertIdentical(None, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
113 self.assertIdentical(None, request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
114 self.assertEqual('', request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
115
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
116 def test_parseOutOfOrderPage(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
117 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
118 Parse a request element asking for a page out of order.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
119 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
120 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
121 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
122 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
123 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
124 <max>9</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
125 <index>371</index>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
126 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
127 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
128 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
129 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
130 self.assertEqual(9, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
131 self.assertEqual(371, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
132 self.assertIdentical(None, request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
133 self.assertIdentical(None, request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
134
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
135 def test_parseItemCount(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
136 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
137 Parse a request element asking for the items count.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
138 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
139 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
140 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
141 <nick>Pete</nick>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
142 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
143 <max>0</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
144 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
145 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
146 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
147 request = RSMRequest.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
148 self.assertEqual(0, request.max)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
149 self.assertIdentical(None, request.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
150 self.assertIdentical(None, request.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
151 self.assertIdentical(None, request.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
152
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
153 def test_render(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
154 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
155 Embed a page request in the element.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
156 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
157 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
158 element.addElement('items')['max_items'] = u'10'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
159 RSMRequest(1).render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
160
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
161 self.assertEqual(u'10', element.items['max_items']) # not changed
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
162
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
163 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
164 self.assertEqual(u'1', ''.join(element.set.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
165 self.assertIdentical(None, element.set.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
166 self.assertIdentical(None, element.set.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
167 self.assertIdentical(None, element.set.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
168
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
169 def test_renderPubSub(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
170 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
171 Embed a page request in the pubsub element.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
172 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
173 element = domish.Element((pubsub.NS_PUBSUB, 'pubsub'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
174 element.addElement('items')['max_items'] = u'10'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
175 RSMRequest(3).render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
176
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
177 self.assertEqual(u'3', element.items['max_items']) # changed
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
178
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
179 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
180 self.assertEqual(u'3', ''.join(element.set.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
181 self.assertIdentical(None, element.set.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
182 self.assertIdentical(None, element.set.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
183 self.assertIdentical(None, element.set.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
184
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
185 def test_renderItems(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
186 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
187 Embed a page request in the element, specify items.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
188 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
189 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
190 RSMRequest(5, 127).render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
191 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
192 self.assertEqual(u'5', ''.join(element.set.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
193 self.assertIdentical(None, element.set.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
194 self.assertIdentical(None, element.set.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
195 self.assertEqual(u'127', ''.join(element.set.index.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
196
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
197 def test_renderAfter(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
198 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
199 Embed a page request in the element, specify after.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
200 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
201 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
202 RSMRequest(5, after=u'test').render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
203 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
204 self.assertEqual(u'5', ''.join(element.set.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
205 self.assertEqual(u'test', ''.join(element.set.after.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
206 self.assertIdentical(None, element.set.before)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
207 self.assertIdentical(None, element.set.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
208
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
209 def test_renderBefore(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
210 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
211 Embed a page request in the element, specify before.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
212 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
213 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
214 RSMRequest(5, before=u'test').render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
215 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
216 self.assertEqual(u'5', ''.join(element.set.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
217 self.assertIdentical(None, element.set.after)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
218 self.assertEqual(u'test', ''.join(element.set.before.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
219 self.assertIdentical(None, element.set.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
220
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
221
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
222 class RSMResponseTest(unittest.TestCase):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
223 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
224 Tests for L{rsm.RSMResponse}.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
225 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
226
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
227 def test___init__(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
228 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
229 Fail to initialize a RSMResponse with wrong attribute values.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
230 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
231 self.assertRaises(AssertionError, RSMResponse, count=u'1')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
232 self.assertRaises(AssertionError, RSMResponse, index=127, first=u'127')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
233 self.assertRaises(AssertionError, RSMResponse, index=127, last=u'351')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
234 self.assertRaises(AssertionError, RSMResponse, first=u'127', last=u'351')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
235 self.assertRaises(AssertionError, RSMResponse, index=u'127',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
236 first=u'127', last=u'351')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
237 self.assertRaises(AssertionError, RSMResponse, index=127,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
238 first=127, last=u'351')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
239 self.assertRaises(AssertionError, RSMResponse, index=127,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
240 first=u'127', last=351)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
241
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
242 def test_parse(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
243 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
244 Parse a response element returning a page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
245 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
246 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
247 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
248 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
249 <first index='20'>stpeter@jabber.org</first>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
250 <last>peterpan@neverland.lit</last>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
251 <count>800</count>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
252 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
253 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
254 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
255 response = RSMResponse.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
256 self.assertEqual(800, response.count)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
257 self.assertEqual(20, response.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
258 self.assertEqual(u'stpeter@jabber.org', response.first)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
259 self.assertEqual(u'peterpan@neverland.lit', response.last)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
260
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
261 def test_parseEmptySet(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
262 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
263 Parse a response element returning an empty set.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
264 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
265 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
266 <query xmlns='jabber:iq:search'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
267 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
268 <count>800</count>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
269 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
270 </query>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
271 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
272 response = RSMResponse.fromElement(parseXml(xml))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
273 self.assertEqual(800, response.count)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
274 self.assertIdentical(None, response.first)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
275 self.assertIdentical(None, response.last)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
276 self.assertIdentical(None, response.index)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
277
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
278 def test_render(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
279 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
280 Embed a page response in the element.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
281 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
282 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
283 RSMResponse(800, 20, u'stpeter@jabber.org',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
284 u'peterpan@neverland.lit').render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
285
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
286 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
287 self.assertEqual(u'800', ''.join(element.set.count.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
288 self.assertEqual(u'stpeter@jabber.org',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
289 ''.join(element.set.first.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
290 self.assertEqual(u'peterpan@neverland.lit',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
291 ''.join(element.set.last.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
292 self.assertEqual(u'20', element.set.first['index'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
293
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
294 def test_renderEmptySet(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
295 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
296 Embed a page response in the element, for empty set.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
297 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
298 element = domish.Element(('jabber:iq:search', 'query'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
299 RSMResponse(800).render(element)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
300
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
301 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
302 self.assertEqual(u'800', ''.join(element.set.count.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
303 self.assertIdentical(None, element.set.first)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
304 self.assertIdentical(None, element.set.last)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
305
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
306
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
307 class PubSubClientTest(unittest.TestCase):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
308 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
309 Tests for L{rsm.PubSubClient}.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
310 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
311 timeout = 2
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
312
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
313 def setUp(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
314 self.stub = XmlStreamStub()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
315 self.protocol = PubSubClient()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
316 self.protocol.xmlstream = self.stub.xmlstream
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
317 self.protocol.connectionInitialized()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
318
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
319 def test_items(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
320 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
321 Test sending items request to get the first page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
322 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
323 def cb(response):
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
324 items, rsm = response
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
325 self.assertEquals(2, len(items))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
326 self.assertEquals([item1, item2], items)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
327 self.assertDictEqual(rsm, {'count': '800', 'index': '0',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
328 'first': 'item1', 'last': 'item2'})
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
329
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
330 d = self.protocol.items(JID('pubsub.example.org'), 'test',
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
331 rsm_request=RSMRequest(2))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
332 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
333
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
334 iq = self.stub.output[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
335 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
336 self.assertEquals('get', iq.getAttribute('type'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
337 self.assertEquals('pubsub', iq.pubsub.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
338 self.assertEquals(pubsub.NS_PUBSUB, iq.pubsub.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
339 children = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
340 'items', pubsub.NS_PUBSUB))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
341 self.assertEquals(1, len(children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
342 child = children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
343 self.assertEquals('test', child['node'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
344
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
345 set_elts = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
346 'set', NS_RSM))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
347 self.assertEquals(1, len(set_elts))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
348 set_elt = set_elts[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
349 self.assertEquals(u'2', ''.join(set_elt.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
350
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
351 response = toResponse(iq, 'result')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
352 items = response.addElement((pubsub.NS_PUBSUB,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
353 'pubsub')).addElement('items')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
354 items['node'] = 'test'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
355 item1 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
356 item1['id'] = 'item1'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
357 item2 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
358 item2['id'] = 'item2'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
359 RSMResponse(800, 0, u'item1', u'item2').render(response.pubsub)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
360 self.stub.send(response)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
361
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
362 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
363
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
364 def test_itemsAfter(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
365 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
366 Test sending items request to get the next page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
367 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
368 def cb(response):
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
369 items, rsm = response
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
370 self.assertEquals(2, len(items))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
371 self.assertEquals([item1, item2], items)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
372 self.assertDictEqual(rsm, {'count': '800', 'index': '2',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
373 'first': 'item3', 'last': 'item4'})
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
374
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
375 d = self.protocol.items(JID('pubsub.example.org'), 'test',
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
376 rsm_request=RSMRequest(2, after=u'item2'))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
377 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
378
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
379 iq = self.stub.output[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
380 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
381 self.assertEquals('get', iq.getAttribute('type'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
382 self.assertEquals('pubsub', iq.pubsub.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
383 self.assertEquals(pubsub.NS_PUBSUB, iq.pubsub.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
384 children = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
385 'items', pubsub.NS_PUBSUB))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
386 self.assertEquals(1, len(children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
387 child = children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
388 self.assertEquals('test', child['node'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
389
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
390 set_elts = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
391 'set', NS_RSM))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
392 self.assertEquals(1, len(set_elts))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
393 set_elt = set_elts[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
394 self.assertEquals(u'2', ''.join(set_elt.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
395 self.assertEquals(u'item2', ''.join(set_elt.after.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
396
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
397 response = toResponse(iq, 'result')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
398 items = response.addElement((pubsub.NS_PUBSUB,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
399 'pubsub')).addElement('items')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
400 items['node'] = 'test'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
401 item1 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
402 item1['id'] = 'item3'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
403 item2 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
404 item2['id'] = 'item4'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
405 RSMResponse(800, 2, u'item3', u'item4').render(response.pubsub)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
406 self.stub.send(response)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
407
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
408 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
409
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
410 def test_itemsBefore(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
411 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
412 Test sending items request to get the previous page.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
413 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
414 def cb(response):
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
415 items, rsm = response
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
416 self.assertEquals(2, len(items))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
417 self.assertEquals([item1, item2], items)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
418 self.assertDictEqual(rsm, {'count': '800', 'index': '0',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
419 'first': 'item1', 'last': 'item2'})
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
420
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
421 d = self.protocol.items(JID('pubsub.example.org'), 'test',
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
422 rsm_request=RSMRequest(2, before=u'item3'))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
423 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
424
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
425 iq = self.stub.output[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
426 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
427 self.assertEquals('get', iq.getAttribute('type'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
428 self.assertEquals('pubsub', iq.pubsub.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
429 self.assertEquals(pubsub.NS_PUBSUB, iq.pubsub.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
430 children = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
431 'items', pubsub.NS_PUBSUB))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
432 self.assertEquals(1, len(children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
433 child = children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
434 self.assertEquals('test', child['node'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
435
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
436 set_elts = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
437 'set', NS_RSM))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
438 self.assertEquals(1, len(set_elts))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
439 set_elt = set_elts[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
440 self.assertEquals(u'2', ''.join(set_elt.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
441 self.assertEquals(u'item3', ''.join(set_elt.before.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
442
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
443 response = toResponse(iq, 'result')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
444 items = response.addElement((pubsub.NS_PUBSUB,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
445 'pubsub')).addElement('items')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
446 items['node'] = 'test'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
447 item1 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
448 item1['id'] = 'item1'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
449 item2 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
450 item2['id'] = 'item2'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
451 RSMResponse(800, 0, u'item1', u'item2').render(response.pubsub)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
452 self.stub.send(response)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
453
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
454 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
455
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
456 def test_itemsIndex(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
457 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
458 Test sending items request to get a page out of order.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
459 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
460 def cb(response):
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
461 items, rsm = response
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
462 self.assertEquals(3, len(items))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
463 self.assertEquals([item1, item2, item3], items)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
464 self.assertDictEqual(rsm, {'count': '800', 'index': '3',
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
465 'first': 'item4', 'last': 'item6'})
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
466
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
467 d = self.protocol.items(JID('pubsub.example.org'), 'test',
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
468 rsm_response=RSMRequest(3, 3))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
469 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
470
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
471 iq = self.stub.output[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
472 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
473 self.assertEquals('get', iq.getAttribute('type'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
474 self.assertEquals('pubsub', iq.pubsub.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
475 self.assertEquals(pubsub.NS_PUBSUB, iq.pubsub.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
476 children = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
477 'items', pubsub.NS_PUBSUB))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
478 self.assertEquals(1, len(children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
479 child = children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
480 self.assertEquals('test', child['node'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
481
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
482 set_elts = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
483 'set', NS_RSM))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
484 self.assertEquals(1, len(set_elts))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
485 set_elt = set_elts[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
486 self.assertEquals(u'3', ''.join(set_elt.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
487 self.assertEquals(u'3', ''.join(set_elt.index.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
488
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
489 response = toResponse(iq, 'result')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
490 items = response.addElement((pubsub.NS_PUBSUB,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
491 'pubsub')).addElement('items')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
492 items['node'] = 'test'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
493 item1 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
494 item1['id'] = 'item4'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
495 item2 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
496 item2['id'] = 'item5'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
497 item3 = items.addElement('item')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
498 item3['id'] = 'item6'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
499 RSMResponse(800, 3, u'item4', u'item6').render(response.pubsub)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
500 self.stub.send(response)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
501
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
502 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
503
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
504 def test_itemsCount(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
505 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
506 Test sending items request to count them.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
507 """
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
508 def cb(response):
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
509 items, rsm = response
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
510 self.assertEquals(0, len(items))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
511 self.assertDictEqual(rsm, {'count': '800'})
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
512
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
513 d = self.protocol.items(JID('pubsub.example.org'), 'test',
1815
ec764bfb146d test (RSM): fix according to modification in sat.tmp.wokkel:
souliane <souliane@mailoo.org>
parents: 1438
diff changeset
514 rsm_request=RSMRequest(0))
1438
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
515 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
516
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
517 iq = self.stub.output[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
518 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
519 self.assertEquals('get', iq.getAttribute('type'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
520 self.assertEquals('pubsub', iq.pubsub.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
521 self.assertEquals(pubsub.NS_PUBSUB, iq.pubsub.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
522 children = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
523 'items', pubsub.NS_PUBSUB))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
524 self.assertEquals(1, len(children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
525 child = children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
526 self.assertEquals('test', child['node'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
527
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
528 set_elts = list(domish.generateElementsQNamed(iq.pubsub.children,
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
529 'set', NS_RSM))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
530 self.assertEquals(1, len(set_elts))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
531 set_elt = set_elts[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
532 self.assertEquals(u'0', ''.join(set_elt.max.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
533
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
534 response = toResponse(iq, 'result')
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
535 response.addElement((pubsub.NS_PUBSUB, 'pubsub'))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
536 RSMResponse(800).render(response.pubsub)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
537 self.stub.send(response)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
538
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
539 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
540
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
541
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
542 class PubSubServiceTest(unittest.TestCase, TestableRequestHandlerMixin):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
543
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
544 def setUp(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
545 self.stub = XmlStreamStub()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
546 self.resource = pubsub.PubSubResource()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
547 self.service = PubSubService(self.resource)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
548 self.service.send = self.stub.xmlstream.send
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
549
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
550 def test_on_items(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
551 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
552 On a items request, return the first item for the given node.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
553 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
554 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
555 <iq type='get' to='pubsub.example.org'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
556 from='user@example.org'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
557 <pubsub xmlns='http://jabber.org/protocol/pubsub'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
558 <items node='test'/>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
559 </pubsub>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
560 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
561 <max>1</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
562 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
563 </iq>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
564 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
565
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
566 def items(request):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
567 rsm = RSMResponse(800, 0, u'item', u'item').toElement()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
568 return defer.succeed([pubsub.Item('current'), rsm])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
569
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
570 def cb(element):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
571 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
572 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
573 self.assertEqual(1, len(element.items.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
574 item = element.items.children[-1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
575 self.assertTrue(domish.IElement.providedBy(item))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
576 self.assertEqual('item', item.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
577 self.assertEqual(pubsub.NS_PUBSUB, item.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
578 self.assertEqual('current', item['id'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
579 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
580 self.assertEqual('800', ''.join(element.set.count.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
581 self.assertEqual('0', element.set.first['index'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
582 self.assertEqual('item', ''.join(element.set.first.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
583 self.assertEqual('item', ''.join(element.set.last.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
584
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
585 self.resource.items = items
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
586 verify.verifyObject(iwokkel.IPubSubResource, self.resource)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
587 d = self.handleRequest(xml)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
588 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
589 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
590
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
591 def test_on_itemsIndex(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
592 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
593 On a items request, return some items out of order for the given node.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
594 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
595 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
596 <iq type='get' to='pubsub.example.org'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
597 from='user@example.org'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
598 <pubsub xmlns='http://jabber.org/protocol/pubsub'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
599 <items node='test'/>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
600 </pubsub>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
601 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
602 <max>2</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
603 <index>3</index>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
604 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
605 </iq>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
606 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
607
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
608 def items(request):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
609 rsm = RSMResponse(800, 3, u'i1', u'i2').toElement()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
610 return defer.succeed([pubsub.Item('i1'), pubsub.Item('i2'), rsm])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
611
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
612 def cb(element):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
613 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
614 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
615 self.assertEqual(2, len(element.items.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
616 item = element.items.children[0]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
617 self.assertTrue(domish.IElement.providedBy(item))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
618 self.assertEqual('item', item.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
619 self.assertEqual(pubsub.NS_PUBSUB, item.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
620 self.assertEqual('i1', item['id'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
621 item = element.items.children[1]
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
622 self.assertTrue(domish.IElement.providedBy(item))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
623 self.assertEqual('item', item.name)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
624 self.assertEqual(pubsub.NS_PUBSUB, item.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
625 self.assertEqual('i2', item['id'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
626 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
627 self.assertEqual('800', ''.join(element.set.count.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
628 self.assertEqual('3', element.set.first['index'])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
629 self.assertEqual('i1', ''.join(element.set.first.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
630 self.assertEqual('i2', ''.join(element.set.last.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
631
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
632 self.resource.items = items
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
633 verify.verifyObject(iwokkel.IPubSubResource, self.resource)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
634 d = self.handleRequest(xml)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
635 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
636 return d
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
637
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
638 def test_on_itemsCount(self):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
639 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
640 On a items request, return the items count.
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
641 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
642 xml = """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
643 <iq type='get' to='pubsub.example.org'
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
644 from='user@example.org'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
645 <pubsub xmlns='http://jabber.org/protocol/pubsub'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
646 <items node='test'/>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
647 </pubsub>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
648 <set xmlns='http://jabber.org/protocol/rsm'>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
649 <max>0</max>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
650 </set>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
651 </iq>
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
652 """
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
653
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
654 def items(request):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
655 rsm = RSMResponse(800).toElement()
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
656 return defer.succeed([rsm])
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
657
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
658 def cb(element):
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
659 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
660 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
661 self.assertEqual(0, len(element.items.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
662 self.assertEqual(NS_RSM, element.set.uri)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
663 self.assertEqual('800', ''.join(element.set.count.children))
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
664 self.assertEqual(None, element.set.first)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
665 self.assertEqual(None, element.set.last)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
666
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
667 self.resource.items = items
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
668 verify.verifyObject(iwokkel.IPubSubResource, self.resource)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
669 d = self.handleRequest(xml)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
670 d.addCallback(cb)
0fb5785b4c63 add tests for sat.tmp.wokkel
souliane <souliane@mailoo.org>
parents:
diff changeset
671 return d