[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/qt-dbus
From: Thiago Macieira <thiago () kde ! org>
Date: 2006-06-19 12:42:20
Message-ID: 1150720940.093505.31904.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 552915 by thiago:
Fix regression:
call methods that take output arguments too.
M +27 -0 selftests/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp
M +1 -1 src/qdbusintegrator.cpp
--- trunk/kdesupport/qt-dbus/selftests/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp #552914:552915
@@ -53,6 +53,8 @@
void typeMatching_data();
void typeMatching();
+
+ void methodWithMoreThanOneReturnValue();
};
class QDBusSignalSpy: public QObject
@@ -153,6 +155,9 @@
void methodInt(int) { slotSpy = __PRETTY_FUNCTION__; }
void methodString(QString) { slotSpy = __PRETTY_FUNCTION__; }
+ int methodStringString(const QString &s, QString &out)
+ { slotSpy = __PRETTY_FUNCTION__; out = s; return 42; }
+
signals:
void signalVoid();
void signalInt(int);
@@ -975,6 +980,28 @@
iface->deleteLater();
}
+void tst_QDBusAbstractAdaptor::methodWithMoreThanOneReturnValue()
+{
+ QDBusConnection &con = QDBus::sessionBus();
+ QVERIFY(con.isConnected());
+
+ MyObject obj;
+ con.registerObject("/", &obj);
+
+ QString testString = "This is a test string.";
+
+ QDBusInterfacePtr remote(con, con.baseService(), "/", "local.Interface3");
+ QDBusMessage reply = remote->call(QDBusInterface::UseEventLoop, "methodStringString", testString);
+ QVERIFY(reply.count() == 2);
+
+ QDBusReply<int> intreply = reply;
+ QVERIFY(intreply.isSuccess());
+ QCOMPARE(intreply.value(), 42);
+
+ QCOMPARE(reply.at(1).userType(), int(QVariant::String));
+ QCOMPARE(qdbus_cast<QString>(reply.at(1)), testString);
+}
+
QTEST_MAIN(tst_QDBusAbstractAdaptor)
#include "tst_qdbusabstractadaptor.moc"
--- trunk/kdesupport/qt-dbus/src/qdbusintegrator.cpp #552914:552915
@@ -377,7 +377,7 @@
// try to match the parameters
int i;
QByteArray reconstructedSignature;
- for (i = 1; i < metaTypes.count(); ++i) {
+ for (i = 1; i <= inputCount; ++i) {
reconstructedSignature += QDBusUtil::typeToSignature( QVariant::Type(metaTypes.at(i)) );
if (!msgSignature.startsWith(reconstructedSignature))
break;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic