[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