summaryrefslogtreecommitdiffstats
path: root/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp')
-rw-r--r--tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp
index 5494959aaf..05480c6dd2 100644
--- a/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp
+++ b/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp
@@ -33,6 +33,7 @@
#include <QtTest/QtTest>
#include <QtCore/qvariant.h>
#include <QtDBus/QtDBus>
+#include <QtDBus/private/qdbus_symbols_p.h>
#include <qdebug.h>
#include "../qdbusmarshall/common.h"
#include "myobject.h"
@@ -213,6 +214,8 @@ private slots:
void propertyWritePeer();
void complexPropertyReadPeer();
void complexPropertyWritePeer();
+
+ void interactiveAuthorizationRequired();
private:
QProcess proc;
};
@@ -1127,6 +1130,30 @@ void tst_QDBusInterface::complexPropertyWritePeer()
QCOMPARE(complexPropPeer(), arg);
}
+void tst_QDBusInterface::interactiveAuthorizationRequired()
+{
+ int major;
+ int minor;
+ int micro;
+ q_dbus_get_version(&major, &minor, &micro);
+
+ QVersionNumber dbusVersion(major, minor, micro);
+ if (dbusVersion < QVersionNumber(1, 9, 2))
+ QSKIP("Your DBus library is too old to support interactive authorization");
+
+ QDBusMessage req = QDBusMessage::createMethodCall(serviceName, objectPath, interfaceName, "interactiveAuthorization");
+ QDBusMessage reply = QDBusConnection::sessionBus().call(req);
+
+ QCOMPARE(reply.type(), QDBusMessage::ErrorMessage);
+ QCOMPARE(reply.errorName(), QStringLiteral("org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"));
+
+ req.setInteractiveAuthorizationAllowed(true);
+ reply = QDBusConnection::sessionBus().call(req);
+
+ QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
+ QVERIFY(reply.arguments().at(0).toBool());
+}
+
QTEST_MAIN(tst_QDBusInterface)
#include "tst_qdbusinterface.moc"