diff options
Diffstat (limited to 'tests/auto/dbus')
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 } |