diff options
Diffstat (limited to 'tests/auto/dbus')
6 files changed, 29 insertions, 239 deletions
diff --git a/tests/auto/dbus/qdbusabstractinterface/interface.h b/tests/auto/dbus/qdbusabstractinterface/interface.h index 5db59b19eb..ecf732ce2d 100644 --- a/tests/auto/dbus/qdbusabstractinterface/interface.h +++ b/tests/auto/dbus/qdbusabstractinterface/interface.h @@ -43,6 +43,7 @@ #define INTERFACE_H #include <QtCore/QObject> +#include <QtCore/QHash> #include <QtDBus/QDBusArgument> struct RegisteredType @@ -103,7 +104,7 @@ public slots: Q_SCRIPTABLE void voidMethod() {} Q_SCRIPTABLE int sleepMethod(int); Q_SCRIPTABLE QString stringMethod() { return "Hello, world"; } - Q_SCRIPTABLE RegisteredType complexMethod() { return RegisteredType("Hello, world"); } + Q_SCRIPTABLE RegisteredType complexMethod(const QVariantHash &vars) { return RegisteredType(vars.value("arg1").toString()); } Q_SCRIPTABLE QString multiOutMethod(int &value) { value = 42; return "Hello, world"; } signals: diff --git a/tests/auto/dbus/qdbusabstractinterface/org.qtproject.QtDBus.Pinger.xml b/tests/auto/dbus/qdbusabstractinterface/org.qtproject.QtDBus.Pinger.xml index 845e7be5b4..ad61351cb2 100644 --- a/tests/auto/dbus/qdbusabstractinterface/org.qtproject.QtDBus.Pinger.xml +++ b/tests/auto/dbus/qdbusabstractinterface/org.qtproject.QtDBus.Pinger.xml @@ -8,7 +8,7 @@ </property> <signal name="voidSignal"/> <signal name="stringSignal"> - <arg type="s"/> + <arg type="s" name="string-data"/> </signal> <signal name="complexSignal"> <arg name="" type="(s)"/> @@ -23,6 +23,8 @@ <arg type="s" direction="out"/> </method> <method name="complexMethod"> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QHash<QString,QVariant>"/> + <arg type='a{sv}' name='platform_data' direction='in'/> <arg type="(s)" direction="out"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="RegisteredType"/> </method> diff --git a/tests/auto/dbus/qdbusabstractinterface/pinger.cpp b/tests/auto/dbus/qdbusabstractinterface/pinger.cpp deleted file mode 100644 index be4fc30409..0000000000 --- a/tests/auto/dbus/qdbusabstractinterface/pinger.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtDBus module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/* - * This file was generated by qdbusxml2cpp version 0.7 - * Command line was: qdbusxml2cpp -i interface.h -p pinger org.qtproject.QtDBus.Pinger.xml - * - * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). - * - * This is an auto-generated file. - * This file may have been hand-edited. Look for HAND-EDIT comments - * before re-generating it. - */ - -#include "pinger.h" - -/* - * Implementation of interface class ComTrolltechQtDBusPingerInterface - */ - -ComTrolltechQtDBusPingerInterface::ComTrolltechQtDBusPingerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) - : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) -{ -} - -ComTrolltechQtDBusPingerInterface::~ComTrolltechQtDBusPingerInterface() -{ -} - diff --git a/tests/auto/dbus/qdbusabstractinterface/pinger.h b/tests/auto/dbus/qdbusabstractinterface/pinger.h deleted file mode 100644 index 6bed72c203..0000000000 --- a/tests/auto/dbus/qdbusabstractinterface/pinger.h +++ /dev/null @@ -1,152 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtDBus module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/* - * This file was generated by qdbusxml2cpp version 0.7 - * Command line was: qdbusxml2cpp -i interface.h -p pinger org.qtproject.QtDBus.Pinger.xml - * - * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). - * - * This is an auto-generated file. - * Do not edit! All changes made to it will be lost. - */ - -#ifndef PINGER_H_1246463415 -#define PINGER_H_1246463415 - -#include <QtCore/QObject> -#include <QtCore/QByteArray> -#include <QtCore/QList> -#include <QtCore/QMap> -#include <QtCore/QString> -#include <QtCore/QStringList> -#include <QtCore/QVariant> -#include <QtDBus/QtDBus> -#include "interface.h" - -/* - * Proxy class for interface org.qtproject.QtDBus.Pinger - */ -class ComTrolltechQtDBusPingerInterface: public QDBusAbstractInterface -{ - Q_OBJECT -public: - static inline const char *staticInterfaceName() - { return "org.qtproject.QtDBus.Pinger"; } - -public: - ComTrolltechQtDBusPingerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); - - ~ComTrolltechQtDBusPingerInterface(); - - Q_PROPERTY(RegisteredType complexProp READ complexProp WRITE setComplexProp) - inline RegisteredType complexProp() const - { return qvariant_cast< RegisteredType >(property("complexProp")); } - inline void setComplexProp(RegisteredType value) - { setProperty("complexProp", QVariant::fromValue(value)); } - - Q_PROPERTY(QString stringProp READ stringProp WRITE setStringProp) - inline QString stringProp() const - { return qvariant_cast< QString >(property("stringProp")); } - inline void setStringProp(const QString &value) - { setProperty("stringProp", QVariant::fromValue(value)); } - - Q_PROPERTY(QDBusVariant variantProp READ variantProp WRITE setVariantProp) - inline QDBusVariant variantProp() const - { return qvariant_cast< QDBusVariant >(property("variantProp")); } - inline void setVariantProp(const QDBusVariant &value) - { setProperty("variantProp", QVariant::fromValue(value)); } - -public Q_SLOTS: // METHODS - inline QDBusPendingReply<RegisteredType> complexMethod() - { - QList<QVariant> argumentList; - return asyncCallWithArgumentList(QLatin1String("complexMethod"), argumentList); - } - - inline QDBusPendingReply<QString, int> multiOutMethod() - { - QList<QVariant> argumentList; - return asyncCallWithArgumentList(QLatin1String("multiOutMethod"), argumentList); - } - inline QDBusReply<QString> multiOutMethod(int &out1) - { - QList<QVariant> argumentList; - QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("multiOutMethod"), argumentList); - if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) { - out1 = qdbus_cast<int>(reply.arguments().at(1)); - } - return reply; - } - - inline QDBusPendingReply<int> sleepMethod(int in0) - { - QList<QVariant> argumentList; - argumentList << QVariant::fromValue(in0); - return asyncCallWithArgumentList(QLatin1String("sleepMethod"), argumentList); - } - - inline QDBusPendingReply<QString> stringMethod() - { - QList<QVariant> argumentList; - return asyncCallWithArgumentList(QLatin1String("stringMethod"), argumentList); - } - - inline QDBusPendingReply<> voidMethod() - { - QList<QVariant> argumentList; - return asyncCallWithArgumentList(QLatin1String("voidMethod"), argumentList); - } - -Q_SIGNALS: // SIGNALS - void complexSignal(RegisteredType in0); - void stringSignal(const QString &in0); - void voidSignal(); -}; - -namespace com { - namespace trolltech { - namespace QtDBus { - typedef ::ComTrolltechQtDBusPingerInterface Pinger; - } - } -} -#endif diff --git a/tests/auto/dbus/qdbusabstractinterface/test/test.pro b/tests/auto/dbus/qdbusabstractinterface/test/test.pro index 363d5fdf9c..66744b9252 100644 --- a/tests/auto/dbus/qdbusabstractinterface/test/test.pro +++ b/tests/auto/dbus/qdbusabstractinterface/test/test.pro @@ -2,13 +2,11 @@ CONFIG += testcase SOURCES += ../tst_qdbusabstractinterface.cpp ../interface.cpp HEADERS += ../interface.h -# These are generated sources -# To regenerate, see the command-line at the top of the files -SOURCES += ../pinger.cpp -HEADERS += ../pinger.h - TARGET = ../tst_qdbusabstractinterface QT = core testlib QT += dbus DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +DBUS_INTERFACES = ../org.qtproject.QtDBus.Pinger.xml +QDBUSXML2CPP_INTERFACE_HEADER_FLAGS += -i ../interface.h diff --git a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp index 5f3cf539e9..91e69fcdb7 100644 --- a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp +++ b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp @@ -47,13 +47,13 @@ #include <QtDBus> #include "interface.h" -#include "pinger.h" +#include "pinger_interface.h" static const char serviceName[] = "org.qtproject.autotests.qpinger"; static const char objectPath[] = "/org/qtproject/qpinger"; static const char *interfaceName = serviceName; -typedef QSharedPointer<com::trolltech::QtDBus::Pinger> Pinger; +typedef QSharedPointer<org::qtproject::QtDBus::Pinger> Pinger; class tst_QDBusAbstractInterface: public QObject { @@ -67,7 +67,7 @@ class tst_QDBusAbstractInterface: public QObject return Pinger(); if (service.isEmpty() && !service.isNull()) service = con.baseService(); - return Pinger(new com::trolltech::QtDBus::Pinger(service, path, con)); + return Pinger(new org::qtproject::QtDBus::Pinger(service, path, con)); } Pinger getPingerPeer(const QString &path = "/", const QString &service = "") @@ -75,7 +75,7 @@ class tst_QDBusAbstractInterface: public QObject QDBusConnection con = QDBusConnection("peer"); if (!con.isConnected()) return Pinger(); - return Pinger(new com::trolltech::QtDBus::Pinger(service, path, con)); + return Pinger(new org::qtproject::QtDBus::Pinger(service, path, con)); } void resetServer() @@ -308,14 +308,22 @@ void tst_QDBusAbstractInterface::makeStringCall() QCOMPARE(r.value(), targetObj.stringMethod()); } +static QHash<QString, QVariant> complexMethodArgs() +{ + QHash<QString, QVariant> args; + args.insert("arg1", "Hello world"); + args.insert("arg2", 12345); + return args; +} + void tst_QDBusAbstractInterface::makeComplexCall() { Pinger p = getPinger(); QVERIFY2(p, "Not connected to D-Bus"); - QDBusReply<RegisteredType> r = p->complexMethod(); + QDBusReply<RegisteredType> r = p->complexMethod(complexMethodArgs()); QVERIFY(r.isValid()); - QCOMPARE(r.value(), targetObj.complexMethod()); + QCOMPARE(r.value(), targetObj.complexMethod(complexMethodArgs())); } void tst_QDBusAbstractInterface::makeMultiOutCall() @@ -356,9 +364,9 @@ void tst_QDBusAbstractInterface::makeComplexCallPeer() Pinger p = getPingerPeer(); QVERIFY2(p, "Not connected to D-Bus"); - QDBusReply<RegisteredType> r = p->complexMethod(); + QDBusReply<RegisteredType> r = p->complexMethod(complexMethodArgs()); QVERIFY(r.isValid()); - QCOMPARE(r.value(), targetObj.complexMethod()); + QCOMPARE(r.value(), targetObj.complexMethod(complexMethodArgs())); } void tst_QDBusAbstractInterface::makeMultiOutCallPeer() @@ -401,10 +409,10 @@ void tst_QDBusAbstractInterface::makeAsyncComplexCall() Pinger p = getPinger(); QVERIFY2(p, "Not connected to D-Bus"); - QDBusPendingReply<RegisteredType> r = p->complexMethod(); + QDBusPendingReply<RegisteredType> r = p->complexMethod(complexMethodArgs()); r.waitForFinished(); QVERIFY(r.isValid()); - QCOMPARE(r.value(), targetObj.complexMethod()); + QCOMPARE(r.value(), targetObj.complexMethod(complexMethodArgs())); } void tst_QDBusAbstractInterface::makeAsyncMultiOutCall() @@ -449,10 +457,10 @@ void tst_QDBusAbstractInterface::makeAsyncComplexCallPeer() Pinger p = getPingerPeer(); QVERIFY2(p, "Not connected to D-Bus"); - QDBusPendingReply<RegisteredType> r = p->complexMethod(); + QDBusPendingReply<RegisteredType> r = p->complexMethod(complexMethodArgs()); r.waitForFinished(); QVERIFY(r.isValid()); - QCOMPARE(r.value(), targetObj.complexMethod()); + QCOMPARE(r.value(), targetObj.complexMethod(complexMethodArgs())); } void tst_QDBusAbstractInterface::makeAsyncMultiOutCallPeer() @@ -551,7 +559,7 @@ void tst_QDBusAbstractInterface::callWithTimeout() } // Now using generated code - com::trolltech::QtDBus::Pinger p(server_serviceName, server_objectPath, QDBusConnection::sessionBus()); + org::qtproject::QtDBus::Pinger p(server_serviceName, server_objectPath, QDBusConnection::sessionBus()); { // Call with no timeout QDBusReply<int> reply = p.sleepMethod(100); |