aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
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();
};