diff options
Diffstat (limited to 'test/qt/tst_qdbusconnection.cpp')
-rw-r--r-- | test/qt/tst_qdbusconnection.cpp | 120 |
1 files changed, 112 insertions, 8 deletions
diff --git a/test/qt/tst_qdbusconnection.cpp b/test/qt/tst_qdbusconnection.cpp index e14debdc..c3b15a2a 100644 --- a/test/qt/tst_qdbusconnection.cpp +++ b/test/qt/tst_qdbusconnection.cpp @@ -10,11 +10,19 @@ class tst_QDBusConnection: public QObject Q_OBJECT private slots: + void init(); + void cleanupTestCase(); void addConnection(); void connect(); void send(); void sendAsync(); void sendSignal(); + void requestName_data(); + void requestName(); + void getNameOwner_data(); + void getNameOwner(); + void releaseName_data(); + void releaseName(); }; class QDBusSpy: public QObject @@ -29,10 +37,25 @@ public: int serial; }; +void tst_QDBusConnection::init() +{ + if (qstrcmp(QTest::currentTestFunction(), "addConnection") == 0) + return; + + QDBusConnection::addConnection(QDBusConnection::SessionBus); + QVERIFY(QDBusConnection().isConnected()); +} + +void tst_QDBusConnection::cleanupTestCase() +{ + QDBusConnection::closeConnection(); + + QVERIFY(!QDBusConnection().isConnected()); +} + void tst_QDBusConnection::sendSignal() { - QDBusConnection con = QDBusConnection::addConnection( - QDBusConnection::SessionBus); + QDBusConnection con; QVERIFY(con.isConnected()); @@ -47,8 +70,7 @@ void tst_QDBusConnection::sendSignal() void tst_QDBusConnection::send() { - QDBusConnection con = QDBusConnection::addConnection( - QDBusConnection::SessionBus); + QDBusConnection con; QVERIFY(con.isConnected()); @@ -64,7 +86,7 @@ void tst_QDBusConnection::send() void tst_QDBusConnection::sendAsync() { - QDBusConnection con = QDBusConnection::addConnection(QDBusConnection::SessionBus); + QDBusConnection con; QVERIFY(con.isConnected()); QDBusSpy spy; @@ -85,10 +107,9 @@ void tst_QDBusConnection::connect() { QDBusSpy spy; - QDBusConnection con = QDBusConnection::addConnection( - QDBusConnection::SessionBus); + QDBusConnection con; - con.connect("/org/kde/selftest", "org.kde.selftest", "ping", &spy, + con.connect(con.baseService(), "/org/kde/selftest", "org.kde.selftest", "ping", &spy, SLOT(handlePing(QString))); QDBusMessage msg = QDBusMessage::signal("/org/kde/selftest", "org.kde.selftest", @@ -158,6 +179,89 @@ void tst_QDBusConnection::addConnection() } } +void tst_QDBusConnection::requestName_data() +{ + QTest::addColumn<QString>("requestedName"); + QTest::addColumn<int>("flags"); + QTest::addColumn<bool>("expectedResult"); + + QTest::newRow("null") << QString() << (int)QDBusConnection::NoReplace << false; + QTest::newRow("empty") << QString("") << (int)QDBusConnection::NoReplace << false; + QTest::newRow("invalid") << "./invalid name" << (int)QDBusConnection::NoReplace << false; +// QTest::newRow("existing") << "org.freedesktop.DBus" +// << (int)QDBusConnection::NoReplace << false; + + QTest::newRow("ok1") << "com.trolltech.QtDBUS.tst_qdbusconnection" + << (int)QDBusConnection::NoReplace << true; +} + +void tst_QDBusConnection::requestName() +{ + QDBusConnection con; + + QVERIFY(con.isConnected()); + + QFETCH(QString, requestedName); + QFETCH(int, flags); + QFETCH(bool, expectedResult); + + bool result = con.requestName(requestedName, (QDBusConnection::NameRequestMode)flags); + +// QEXPECT_FAIL("existing", "For whatever reason, the bus lets us replace this name", Abort); + QCOMPARE(result, expectedResult); +} + +void tst_QDBusConnection::getNameOwner_data() +{ + QTest::addColumn<QString>("name"); + QTest::addColumn<QString>("expectedResult"); + + QTest::newRow("null") << QString() << QString(); + QTest::newRow("empty") << QString("") << QString(); + + QTest::newRow("invalid") << ".invalid" << QString(); + QTest::newRow("non-existent") << "com.trolltech.QtDBUS.foo" << QString(); + + QTest::newRow("bus") << "org.freedesktop.DBus" << "org.freedesktop.DBus"; + + QString base = QDBusConnection().baseService(); + QTest::newRow("address") << base << base; + QTest::newRow("self") << "com.trolltech.QtDBUS.tst_qdbusconnection" << base; +} + +void tst_QDBusConnection::getNameOwner() +{ + QFETCH(QString, name); + QFETCH(QString, expectedResult); + + QDBusConnection con; + QVERIFY(con.isConnected()); + + QString result = con.getNameOwner(name); + + QCOMPARE(result, expectedResult); +} + +void tst_QDBusConnection::releaseName_data() +{ + requestName_data(); +} + +void tst_QDBusConnection::releaseName() +{ + QDBusConnection con; + + QVERIFY(con.isConnected()); + + QFETCH(QString, requestedName); + //QFETCH(int, flags); + QFETCH(bool, expectedResult); + + bool result = con.releaseName(requestedName); + + QCOMPARE(result, expectedResult); +} + QTEST_MAIN(tst_QDBusConnection) #include "tst_qdbusconnection.moc" |