summaryrefslogtreecommitdiffstats
path: root/test/qt/tst_qdbusconnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/qt/tst_qdbusconnection.cpp')
-rw-r--r--test/qt/tst_qdbusconnection.cpp120
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"