aboutsummaryrefslogtreecommitdiff
path: root/example/tests/tests.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-09 15:35:19 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-09 15:35:19 +0000
commit889f415805e84e3d136f8bc009a81a07d157fed8 (patch)
tree1d2b3fd4f7e5091185b66960e02ceb6529dd61ad /example/tests/tests.cpp
parent05e418edc732b63048db65a715238c602f8e8524 (diff)
downloadqxmpp-889f415805e84e3d136f8bc009a81a07d157fed8.tar.gz
add tests for XML RPC
Diffstat (limited to 'example/tests/tests.cpp')
-rw-r--r--example/tests/tests.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/example/tests/tests.cpp b/example/tests/tests.cpp
index 1f49b274..43a7156d 100644
--- a/example/tests/tests.cpp
+++ b/example/tests/tests.cpp
@@ -35,6 +35,7 @@
#include "QXmppSession.h"
#include "QXmppUtils.h"
#include "tests.h"
+#include "xmlrpc.h"
void TestUtils::testHmac()
{
@@ -320,6 +321,48 @@ void TestJingle::testRinging()
serializePacket(iq, xml);
}
+static void checkVariant(const QVariant &value, const QByteArray &xml)
+{
+ // parse
+ QDomDocument doc;
+ QCOMPARE(doc.setContent(xml, true), true);
+ QDomElement element = doc.documentElement();
+ QStringList errors;
+ QVariant test = XMLRPC::demarshall(element, errors);
+ QCOMPARE(errors, QStringList());
+ QCOMPARE(test, value);
+
+ // serialise
+ QBuffer buffer;
+ buffer.open(QIODevice::ReadWrite);
+ QXmlStreamWriter writer(&buffer);
+ XMLRPC::marshall(&writer, value);
+ qDebug() << "expect " << xml;
+ qDebug() << "writing" << buffer.data();
+ QCOMPARE(buffer.data(), xml);
+}
+
+void TestXmlRpc::testBool()
+{
+ // FIXME : XML-RPC spec says we should write "0" or "1"
+ checkVariant(false,
+ QByteArray("<value><boolean>false</boolean></value>"));
+ checkVariant(true,
+ QByteArray("<value><boolean>true</boolean></value>"));
+}
+
+void TestXmlRpc::testDouble()
+{
+ checkVariant(double(-12.214),
+ QByteArray("<value><double>-12.214</double></value>"));
+}
+
+void TestXmlRpc::testString()
+{
+ checkVariant(QString("hello world"),
+ QByteArray("<value><string>hello world</string></value>"));
+}
+
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
@@ -336,6 +379,9 @@ int main(int argc, char *argv[])
TestJingle testJingle;
errors += QTest::qExec(&testJingle);
+ TestXmlRpc testXmlRpc;
+ errors += QTest::qExec(&testXmlRpc);
+
if (errors)
{
qWarning() << "Total failed tests:" << errors;