aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-10 08:31:00 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-10 08:31:00 +0000
commitd98bbdffd9f45ff8ecd1fece04cad2d93f5d0a9e (patch)
tree1e371d69c010daf60dae5e04121a897394306115 /example
parent064a65d8d2bde24369bb83d8393da1344035ad83 (diff)
downloadqxmpp-d98bbdffd9f45ff8ecd1fece04cad2d93f5d0a9e.tar.gz
parse/serialise XML-RPC faults
Diffstat (limited to 'example')
-rw-r--r--example/tests/tests.cpp38
-rw-r--r--example/tests/tests.h1
2 files changed, 39 insertions, 0 deletions
diff --git a/example/tests/tests.cpp b/example/tests/tests.cpp
index d233004b..1da51be5 100644
--- a/example/tests/tests.cpp
+++ b/example/tests/tests.cpp
@@ -464,10 +464,48 @@ void TestXmlRpc::testResponse()
QXmppRpcResponseIq iq;
parsePacket(iq, xml);
+ QCOMPARE(iq.faultCode(), 0);
+ QCOMPARE(iq.faultString(), QString());
QCOMPARE(iq.values(), QVariantList() << QString("Colorado"));
serializePacket(iq, xml);
}
+void TestXmlRpc::testResponseFault()
+{
+ const QByteArray xml(
+ "<iq"
+ " id=\"rpc1\""
+ " to=\"requester@company-b.com/jrpc-client\""
+ " from=\"responder@company-a.com/jrpc-server\""
+ " type=\"result\">"
+ "<query xmlns=\"jabber:iq:rpc\">"
+ "<methodResponse>"
+ "<fault>"
+ "<value>"
+ "<struct>"
+ "<member>"
+ "<name>faultCode</name>"
+ "<value><i4>404</i4></value>"
+ "</member>"
+ "<member>"
+ "<name>faultString</name>"
+ "<value><string>Not found</string></value>"
+ "</member>"
+ "</struct>"
+ "</value>"
+ "</fault>"
+ "</methodResponse>"
+ "</query>"
+ "</iq>");
+
+ QXmppRpcResponseIq iq;
+ parsePacket(iq, xml);
+ QCOMPARE(iq.faultCode(), 404);
+ QCOMPARE(iq.faultString(), QLatin1String("Not found"));
+ QCOMPARE(iq.values(), QVariantList());
+ serializePacket(iq, xml);
+}
+
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
diff --git a/example/tests/tests.h b/example/tests/tests.h
index 9dc1a01c..2294339f 100644
--- a/example/tests/tests.h
+++ b/example/tests/tests.h
@@ -77,4 +77,5 @@ private slots:
void testInvoke();
void testResponse();
+ void testResponseFault();
};