mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-23 19:19:53 +00:00
Fixed bug in presence subscription handling.
Subscription requests and responses were not setting the correct 'to' attribute.
This commit is contained in:
parent
46ffa8e9fe
commit
ac330b5c6c
2 changed files with 44 additions and 2 deletions
|
@ -621,8 +621,8 @@ class BaseXMPP(XMLStream):
|
|||
None * Disable automatic handling and use
|
||||
a custom handler.
|
||||
"""
|
||||
presence = self.Presence()
|
||||
presence['to'] = presence['from'].bare
|
||||
presence.reply()
|
||||
presence['to'] = presence['to'].bare
|
||||
|
||||
# We are using trinary logic, so conditions have to be
|
||||
# more explicit than usual.
|
||||
|
|
|
@ -82,5 +82,47 @@ class TestStreamPresence(SleekTest):
|
|||
self.assertEqual(events, ['got_offline'],
|
||||
"Got offline incorrectly triggered: %s" % events)
|
||||
|
||||
def testAutoAuthorizeAndSubscribe(self):
|
||||
"""
|
||||
Test auto authorizing and auto subscribing
|
||||
to subscription requests.
|
||||
"""
|
||||
|
||||
events = set()
|
||||
|
||||
def presence_subscribe(p):
|
||||
events.add('presence_subscribe')
|
||||
|
||||
def changed_subscription(p):
|
||||
events.add('changed_subscription')
|
||||
|
||||
self.stream_start(jid='tester@localhost')
|
||||
|
||||
self.xmpp.add_event_handler('changed_subscription',
|
||||
changed_subscription)
|
||||
self.xmpp.add_event_handler('presence_subscribe',
|
||||
presence_subscribe)
|
||||
|
||||
# With these settings we should accept a subscription
|
||||
# and request a subscription in return.
|
||||
self.xmpp.auto_authorize = True
|
||||
self.xmpp.auto_subscribe = True
|
||||
|
||||
self.stream_recv("""
|
||||
<presence from="user@localhost" type="subscribe" />
|
||||
""")
|
||||
|
||||
self.stream_send_presence("""
|
||||
<presence to="user@localhost" type="subscribed" />
|
||||
""")
|
||||
|
||||
self.stream_send_presence("""
|
||||
<presence to="user@localhost" type="subscribe" />
|
||||
""")
|
||||
|
||||
expected = set(('presence_subscribe', 'changed_subscription'))
|
||||
self.assertEqual(events, expected,
|
||||
"Incorrect events triggered: %s" % events)
|
||||
|
||||
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamPresence)
|
||||
|
|
Loading…
Reference in a new issue