diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index 4e4aa07..6a05524 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -79,7 +79,7 @@ AWKeys::~AWKeys() delete m_timer; // delete dbus session - long id = reinterpret_cast(this); + qlonglong id = reinterpret_cast(this); QDBusConnection::sessionBus().unregisterObject(QString("/%1").arg(id)); // core @@ -330,7 +330,7 @@ void AWKeys::calculateValues() void AWKeys::createDBusInterface() { // get this object id - long id = reinterpret_cast(this); + qlonglong id = reinterpret_cast(this); // create session QDBusConnection bus = QDBusConnection::sessionBus(); diff --git a/sources/test/testawkeys.cpp b/sources/test/testawkeys.cpp index cb819fa..614a499 100644 --- a/sources/test/testawkeys.cpp +++ b/sources/test/testawkeys.cpp @@ -18,10 +18,13 @@ #include "testawkeys.h" +#include +#include #include #include "awkeys.h" #include "awtestlibrary.h" +#include "version.h" void TestAWKeys::initTestCase() @@ -159,4 +162,24 @@ void TestAWKeys::test_valueByKey() } +void TestAWKeys::test_dbus() +{ + // get id + qlonglong id = reinterpret_cast(plugin); + + // create connection and message + QDBusConnection bus = QDBusConnection::sessionBus(); + QDBusMessage request + = QDBusMessage::createMethodCall(AWDBUS_SERVICE, QString("/%1").arg(id), + AWDBUS_SERVICE, QString("WhoAmI")); + // send message to dbus + QDBusMessage response = bus.call(request, QDBus::BlockWithGui); + + // parse result + QList arguments = response.arguments(); + QVERIFY(!arguments.isEmpty()); + QCOMPARE(arguments.at(0).toLongLong(), id); +} + + QTEST_MAIN(TestAWKeys); diff --git a/sources/test/testawkeys.h b/sources/test/testawkeys.h index 3c5a2fd..7a6c730 100644 --- a/sources/test/testawkeys.h +++ b/sources/test/testawkeys.h @@ -40,6 +40,7 @@ private slots: void test_wrapNewLines(); void test_infoByKey(); void test_valueByKey(); + void test_dbus(); private: AWKeys *plugin = nullptr;