summaryrefslogtreecommitdiffstats
path: root/tests/auto/dbus
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/dbus')
-rw-r--r--tests/auto/dbus/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp2
-rw-r--r--tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp75
-rw-r--r--tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h21
-rw-r--r--tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro4
-rw-r--r--tests/auto/dbus/qdbustype/qdbustype.pro4
5 files changed, 85 insertions, 21 deletions
diff --git a/tests/auto/dbus/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp b/tests/auto/dbus/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp
index 0def290eff..0edc5a92ea 100644
--- a/tests/auto/dbus/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp
+++ b/tests/auto/dbus/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp
@@ -1818,7 +1818,7 @@ void tst_QDBusAbstractAdaptor::typeMatching_data()
LLDateTimeMap lldtmap;
lldtmap[-1] = QDateTime();
QDateTime now = QDateTime::currentDateTime();
- lldtmap[now.toTime_t()] = now; // array of struct of int64 and struct of 3 ints and struct of 4 ints and int
+ lldtmap[now.toSecsSinceEpoch()] = now; // array of struct of int64 and struct of 3 ints and struct of 4 ints and int
QTest::newRow("lldtmap") << "LLDateTimeMap" << "a{x((iii)(iiii)i)}" << QVariant::fromValue(lldtmap);
MyStruct s;
diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
index 4a09dca544..95daa256b5 100644
--- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
+++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
@@ -1057,6 +1057,48 @@ void tst_QDBusConnection::multipleInterfacesInQObject()
QVERIFY_HOOKCALLED();
}
+void tst_QDBusConnection::connectSignal()
+{
+ if (!QCoreApplication::instance())
+ QSKIP("Test requires a QCoreApplication");
+
+ QDBusConnection con = QDBusConnection::sessionBus();
+
+ QDBusMessage signal = QDBusMessage::createSignal("/", "org.qtproject.TestCase",
+ "oneSignal");
+ signal << "one parameter";
+
+ SignalReceiver recv;
+ QVERIFY(con.connect(con.baseService(), signal.path(), signal.interface(),
+ signal.member(), &recv, SLOT(oneSlot(QString))));
+ QVERIFY(con.send(signal));
+ QTest::qWait(100);
+ QCOMPARE(recv.argumentReceived, signal.arguments().at(0).toString());
+ QCOMPARE(recv.signalsReceived, 1);
+
+ // disconnect and try with a signature
+ recv.argumentReceived.clear();
+ recv.signalsReceived = 0;
+ QVERIFY(con.disconnect(con.baseService(), signal.path(), signal.interface(),
+ signal.member(), &recv, SLOT(oneSlot(QString))));
+ QVERIFY(con.connect(con.baseService(), signal.path(), signal.interface(),
+ signal.member(), "s", &recv, SLOT(oneSlot(QString))));
+ QVERIFY(con.send(signal));
+ QTest::qWait(100);
+ QCOMPARE(recv.argumentReceived, signal.arguments().at(0).toString());
+ QCOMPARE(recv.signalsReceived, 1);
+
+ // confirm that we are, indeed, a unique connection
+ recv.argumentReceived.clear();
+ recv.signalsReceived = 0;
+ QVERIFY(!con.connect(con.baseService(), signal.path(), signal.interface(),
+ signal.member(), "s", &recv, SLOT(oneSlot(QString))));
+ QVERIFY(con.send(signal));
+ QTest::qWait(100);
+ QCOMPARE(recv.argumentReceived, signal.arguments().at(0).toString());
+ QCOMPARE(recv.signalsReceived, 1);
+}
+
void tst_QDBusConnection::slotsWithLessParameters()
{
if (!QCoreApplication::instance())
@@ -1068,25 +1110,36 @@ void tst_QDBusConnection::slotsWithLessParameters()
"oneSignal");
signal << "one parameter";
- signalsReceived = 0;
+ SignalReceiver recv;
QVERIFY(con.connect(con.baseService(), signal.path(), signal.interface(),
- signal.member(), this, SLOT(oneSlot())));
+ signal.member(), &recv, SLOT(oneSlot())));
QVERIFY(con.send(signal));
QTest::qWait(100);
- QCOMPARE(signalsReceived, 1);
+ QCOMPARE(recv.argumentReceived, QString());
+ QCOMPARE(recv.signalsReceived, 1);
// disconnect and try with a signature
- signalsReceived = 0;
+ recv.signalsReceived = 0;
QVERIFY(con.disconnect(con.baseService(), signal.path(), signal.interface(),
- signal.member(), this, SLOT(oneSlot())));
+ signal.member(), &recv, SLOT(oneSlot())));
QVERIFY(con.connect(con.baseService(), signal.path(), signal.interface(),
- signal.member(), "s", this, SLOT(oneSlot())));
+ signal.member(), "s", &recv, SLOT(oneSlot())));
+ QVERIFY(con.send(signal));
+ QTest::qWait(100);
+ QCOMPARE(recv.argumentReceived, QString());
+ QCOMPARE(recv.signalsReceived, 1);
+
+ // confirm that we are, indeed, a unique connection
+ recv.signalsReceived = 0;
+ QVERIFY(!con.connect(con.baseService(), signal.path(), signal.interface(),
+ signal.member(), "s", &recv, SLOT(oneSlot())));
QVERIFY(con.send(signal));
QTest::qWait(100);
- QCOMPARE(signalsReceived, 1);
+ QCOMPARE(recv.argumentReceived, QString());
+ QCOMPARE(recv.signalsReceived, 1);
}
-void tst_QDBusConnection::secondCallWithCallback()
+void SignalReceiver::secondCallWithCallback()
{
QDBusConnection con = QDBusConnection::sessionBus();
QDBusMessage msg = QDBusMessage::createMethodCall(con.baseService(), "/test", QString(),
@@ -1106,12 +1159,12 @@ void tst_QDBusConnection::nestedCallWithCallback()
QDBusMessage msg = QDBusMessage::createMethodCall(connection.baseService(), "/test", QString(),
"ThisFunctionDoesntExist");
- signalsReceived = 0;
- connection.callWithCallback(msg, this, SLOT(exitLoop()), SLOT(secondCallWithCallback()), 10);
+ SignalReceiver recv;
+ connection.callWithCallback(msg, &recv, SLOT(exitLoop()), SLOT(secondCallWithCallback()), 10);
QTestEventLoop::instance().enterLoop(15);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(signalsReceived, 1);
+ QCOMPARE(recv.signalsReceived, 1);
QCOMPARE_HOOKCOUNT(2);
}
diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
index b9eb0d9db7..b4d689e6f4 100644
--- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
+++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
@@ -69,20 +69,30 @@ public:
MyObjectWithoutInterface(QObject *parent = 0) : QObject(parent), callCount(0) {}
};
-class tst_QDBusConnection: public QObject
+class SignalReceiver : public QObject
{
Q_OBJECT
-
- int signalsReceived;
public:
- static int hookCallCount;
- tst_QDBusConnection();
+ QString argumentReceived;
+ int signalsReceived;
+ SignalReceiver() : signalsReceived(0) {}
public slots:
+ void oneSlot(const QString &arg) { ++signalsReceived; argumentReceived = arg;}
void oneSlot() { ++signalsReceived; }
void exitLoop() { ++signalsReceived; QTestEventLoop::instance().exitLoop(); }
void secondCallWithCallback();
+};
+
+class tst_QDBusConnection: public QObject
+{
+ Q_OBJECT
+
+public:
+ static int hookCallCount;
+ tst_QDBusConnection();
+public slots:
void init();
void cleanup();
@@ -115,6 +125,7 @@ private slots:
void callSelfByAnotherName();
void multipleInterfacesInQObject();
+ void connectSignal();
void slotsWithLessParameters();
void nestedCallWithCallback();
diff --git a/tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro b/tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro
index b0442a0ee4..21e665fa37 100644
--- a/tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro
+++ b/tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro
@@ -7,8 +7,8 @@ QT = core-private dbus-private testlib
contains(QT_CONFIG, dbus-linked) {
DEFINES += QT_LINKED_LIBDBUS
- LIBS += $$QT_LIBS_DBUS
- QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS
+ LIBS += $$QMAKE_LIBS_DBUS
+ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_DBUS
} else {
SOURCES += ../../../../../src/dbus/qdbus_symbols.cpp
}
diff --git a/tests/auto/dbus/qdbustype/qdbustype.pro b/tests/auto/dbus/qdbustype/qdbustype.pro
index 17ae349675..e65b9ec5b3 100644
--- a/tests/auto/dbus/qdbustype/qdbustype.pro
+++ b/tests/auto/dbus/qdbustype/qdbustype.pro
@@ -4,8 +4,8 @@ QT = core-private dbus-private testlib
SOURCES += tst_qdbustype.cpp
contains(QT_CONFIG, dbus-linked) {
DEFINES += QT_LINKED_LIBDBUS
- LIBS += $$QT_LIBS_DBUS
- QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS
+ LIBS += $$QMAKE_LIBS_DBUS
+ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_DBUS
} else {
SOURCES += ../../../../src/dbus/qdbus_symbols.cpp
}