[telepathy-gabble/master] Test SetAvatar's error when server rejects avatar
Will Thompson
will.thompson at collabora.co.uk
Tue Apr 28 06:06:43 PDT 2009
---
tests/twisted/Makefile.am | 1 +
tests/twisted/vcard/update-rejected.py | 42 ++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 0 deletions(-)
create mode 100644 tests/twisted/vcard/update-rejected.py
diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am
index 4e33384..45b30c0 100644
--- a/tests/twisted/Makefile.am
+++ b/tests/twisted/Makefile.am
@@ -71,6 +71,7 @@ TWISTED_TESTS = \
vcard/test-set-alias.py \
vcard/test-vcard-cache.py \
vcard/test-vcard-race.py \
+ vcard/update-rejected.py \
jingle/accept-extra-stream.py \
jingle/call-state.py \
jingle/google-relay.py \
diff --git a/tests/twisted/vcard/update-rejected.py b/tests/twisted/vcard/update-rejected.py
new file mode 100644
index 0000000..0431de6
--- /dev/null
+++ b/tests/twisted/vcard/update-rejected.py
@@ -0,0 +1,42 @@
+"""
+Regression test for fd.o #20442, where the XMPP error returned by a server that
+doesn't like the avatar you tried to set was not mapped to a TP error before
+being sent over the bus.
+"""
+
+from twisted.words.xish import domish
+
+from servicetest import call_async
+from gabbletest import exec_test, expect_and_handle_get_vcard, send_error_reply
+
+import ns
+import constants as cs
+
+def test(q, bus, conn, stream):
+ conn.Connect()
+
+ expect_and_handle_get_vcard(q, stream)
+
+ call_async(q, conn.Avatars, 'SetAvatar', 'william shatner',
+ 'image/x-actor-name')
+
+ set_vcard_event = q.expect('stream-iq', query_ns=ns.VCARD_TEMP,
+ query_name='vCard', iq_type='set')
+ iq = set_vcard_event.stanza
+
+ error = domish.Element((None, 'error'))
+ error['code'] = '400'
+ error['type'] = 'modify'
+ error.addElement((ns.STANZA, 'bad-request'))
+
+ send_error_reply(stream, iq, error)
+
+ event = q.expect('dbus-error', method='SetAvatar')
+
+ assert event.error.get_dbus_name() == cs.INVALID_ARGUMENT, \
+ event.error.get_dbus_name()
+
+ conn.Disconnect()
+
+if __name__ == '__main__':
+ exec_test(test)
--
1.5.6.5
More information about the telepathy-commits
mailing list