diff options
Diffstat (limited to 'tests/auto/dbus/qdbusinterface')
-rw-r--r-- | tests/auto/dbus/qdbusinterface/CMakeLists.txt | 14 | ||||
-rw-r--r-- | tests/auto/dbus/qdbusinterface/myobject.h | 2 | ||||
-rw-r--r-- | tests/auto/dbus/qdbusinterface/qmyserver/CMakeLists.txt | 6 | ||||
-rw-r--r-- | tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp | 2 | ||||
-rw-r--r-- | tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp | 114 |
5 files changed, 97 insertions, 41 deletions
diff --git a/tests/auto/dbus/qdbusinterface/CMakeLists.txt b/tests/auto/dbus/qdbusinterface/CMakeLists.txt index 2d7728241e..56439f9ef6 100644 --- a/tests/auto/dbus/qdbusinterface/CMakeLists.txt +++ b/tests/auto/dbus/qdbusinterface/CMakeLists.txt @@ -1,10 +1,13 @@ # Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +# SPDX-License-Identifier: BSD-3-Clause -# Generated from qdbusinterface.pro. +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_qdbusinterface LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() add_subdirectory(qmyserver) -# special case begin ##################################################################### ## ../tst_qdbusinterface Test: @@ -22,10 +25,6 @@ qt_internal_add_test(tst_qdbusinterface Qt::DBus ) -#### Keys ignored in scope 1:.:.:qdbusinterface.pro:<TRUE>: -# CONFIG = "testcase" -# DESTDIR = "./" - ## Scopes: ##################################################################### @@ -43,4 +42,3 @@ qt_internal_extend_target(tst_qdbusinterface CONDITION NOT QT_FEATURE_dbus_linke add_dependencies(tst_qdbusinterface qmyserver_qdbusinterface) -# special case end diff --git a/tests/auto/dbus/qdbusinterface/myobject.h b/tests/auto/dbus/qdbusinterface/myobject.h index d1a74517b9..355d4d3752 100644 --- a/tests/auto/dbus/qdbusinterface/myobject.h +++ b/tests/auto/dbus/qdbusinterface/myobject.h @@ -1,5 +1,5 @@ // Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef MYOBJECT_H #define MYOBJECT_H diff --git a/tests/auto/dbus/qdbusinterface/qmyserver/CMakeLists.txt b/tests/auto/dbus/qdbusinterface/qmyserver/CMakeLists.txt index c0a308e287..55eb2c39cc 100644 --- a/tests/auto/dbus/qdbusinterface/qmyserver/CMakeLists.txt +++ b/tests/auto/dbus/qdbusinterface/qmyserver/CMakeLists.txt @@ -1,7 +1,5 @@ # Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -# Generated from qmyserver.pro. +# SPDX-License-Identifier: BSD-3-Clause ##################################################################### ## qmyserver_qdbusinterface Binary: @@ -9,7 +7,7 @@ qt_internal_add_executable(qmyserver_qdbusinterface OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/" - NO_INSTALL # special case + NO_INSTALL SOURCES ../myobject.h qmyserver.cpp diff --git a/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp b/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp index 886f02d799..5d8692d9a6 100644 --- a/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp +++ b/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp @@ -1,6 +1,6 @@ // Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 Intel Corporation. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QCoreApplication> #include <QDBusServer> diff --git a/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp index 10edc0e322..803ae4fa0f 100644 --- a/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp +++ b/tests/auto/dbus/qdbusinterface/tst_qdbusinterface.cpp @@ -1,5 +1,5 @@ // Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QTest> #include <QDebug> @@ -20,6 +20,8 @@ #include "../qdbusmarshall/common.h" #include "myobject.h" +using namespace Qt::StringLiterals; + #define TEST_INTERFACE_NAME "org.qtproject.QtDBus.MyObject" #define TEST_SIGNAL_NAME "somethingHappened" @@ -198,6 +200,10 @@ private slots: void complexPropertyWritePeer(); void interactiveAuthorizationRequired(); + + void interfaceNameFallback_data(); + void interfaceNameFallback(); + private: QProcess proc; }; @@ -468,14 +474,14 @@ void tst_QDBusInterface::callMethod() QCOMPARE(reply.type(), QDBusMessage::ReplyMessage); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); QVariant v = MyObject::callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); QCOMPARE(dv.variant().toString(), QString("foo")); // verify reply - QCOMPARE(reply.arguments().count(), 1); + QCOMPARE(reply.arguments().size(), 1); v = reply.arguments().at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -487,14 +493,14 @@ void tst_QDBusInterface::callMethod() QCOMPARE(reply.type(), QDBusMessage::ReplyMessage); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); v = MyObject::callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); QCOMPARE(dv.variant().toString(), QString("bar")); // verify reply - QCOMPARE(reply.arguments().count(), 1); + QCOMPARE(reply.arguments().size(), 1); v = reply.arguments().at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -515,7 +521,7 @@ void tst_QDBusInterface::invokeMethod() QCOMPARE(MyObject::callCount, 1); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); QVariant v = MyObject::callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -527,7 +533,7 @@ void tst_QDBusInterface::invokeMethod() QCOMPARE(MyObject::callCount, 2); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); v = MyObject::callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -549,7 +555,7 @@ void tst_QDBusInterface::invokeMethodWithReturn() QCOMPARE(MyObject::callCount, 1); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); QVariant v = MyObject::callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -564,7 +570,7 @@ void tst_QDBusInterface::invokeMethodWithReturn() QCOMPARE(MyObject::callCount, 2); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); v = MyObject::callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -593,7 +599,7 @@ void tst_QDBusInterface::invokeMethodWithMultiReturn() QCOMPARE(MyObject::callCount, 1); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 2); + QCOMPARE(MyObject::callArgs.size(), 2); QVariant v = MyObject::callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -618,7 +624,7 @@ void tst_QDBusInterface::invokeMethodWithMultiReturn() QCOMPARE(MyObject::callCount, 2); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 2); + QCOMPARE(MyObject::callArgs.size(), 2); v = MyObject::callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -649,7 +655,7 @@ void tst_QDBusInterface::invokeMethodWithComplexReturn() QCOMPARE(MyObject::callCount, 1); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); QVariant v = MyObject::callArgs.at(0); QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>()); QCOMPARE(qdbus_cast<QList<int> >(v), arg); @@ -663,7 +669,7 @@ void tst_QDBusInterface::invokeMethodWithComplexReturn() QCOMPARE(MyObject::callCount, 2); // verify what the callee received - QCOMPARE(MyObject::callArgs.count(), 1); + QCOMPARE(MyObject::callArgs.size(), 1); v = MyObject::callArgs.at(0); QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>()); QCOMPARE(qdbus_cast<QList<int> >(v), arg2); @@ -703,14 +709,14 @@ void tst_QDBusInterface::callMethodPeer() // verify what the callee received QVariantList callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); QVariant v = callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); QCOMPARE(dv.variant().toString(), QString("foo")); // verify reply - QCOMPARE(reply.arguments().count(), 1); + QCOMPARE(reply.arguments().size(), 1); v = reply.arguments().at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -723,14 +729,14 @@ void tst_QDBusInterface::callMethodPeer() // verify what the callee received callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); v = callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); QCOMPARE(dv.variant().toString(), QString("bar")); // verify reply - QCOMPARE(reply.arguments().count(), 1); + QCOMPARE(reply.arguments().size(), 1); v = reply.arguments().at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -752,7 +758,7 @@ void tst_QDBusInterface::invokeMethodPeer() // verify what the callee received QVariantList callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); QVariant v = callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -765,7 +771,7 @@ void tst_QDBusInterface::invokeMethodPeer() // verify what the callee received callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); v = callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -788,7 +794,7 @@ void tst_QDBusInterface::invokeMethodWithReturnPeer() // verify what the callee received QVariantList callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); QVariant v = callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -804,7 +810,7 @@ void tst_QDBusInterface::invokeMethodWithReturnPeer() // verify what the callee received callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); v = callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -834,7 +840,7 @@ void tst_QDBusInterface::invokeMethodWithMultiReturnPeer() // verify what the callee received QVariantList callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 2); + QCOMPARE(callArgs.size(), 2); QVariant v = callArgs.at(0); QDBusVariant dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -860,7 +866,7 @@ void tst_QDBusInterface::invokeMethodWithMultiReturnPeer() // verify what the callee received callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 2); + QCOMPARE(callArgs.size(), 2); v = callArgs.at(0); dv = qdbus_cast<QDBusVariant>(v); QCOMPARE(dv.variant().userType(), QMetaType::QString); @@ -892,7 +898,7 @@ void tst_QDBusInterface::invokeMethodWithComplexReturnPeer() // verify what the callee received QVariantList callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); QVariant v = callArgs.at(0); QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>()); QCOMPARE(qdbus_cast<QList<int> >(v), arg); @@ -907,7 +913,7 @@ void tst_QDBusInterface::invokeMethodWithComplexReturnPeer() // verify what the callee received callArgs = callArgsPeer(); - QCOMPARE(callArgs.count(), 1); + QCOMPARE(callArgs.size(), 1); v = callArgs.at(0); QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>()); QCOMPARE(qdbus_cast<QList<int> >(v), arg2); @@ -1009,7 +1015,7 @@ void tst_QDBusInterface::propertyRead() QVariant v = iface.property("prop1"); QVERIFY(v.isValid()); - QCOMPARE(v.userType(), int(QVariant::Int)); + QCOMPARE(v.userType(), int(QMetaType::Int)); QCOMPARE(v.toInt(), arg); QCOMPARE(MyObject::callCount, 1); } @@ -1072,7 +1078,7 @@ void tst_QDBusInterface::propertyReadPeer() QVariant v = iface.property("prop1"); QVERIFY(v.isValid()); - QCOMPARE(v.userType(), int(QVariant::Int)); + QCOMPARE(v.userType(), int(QMetaType::Int)); QCOMPARE(v.toInt(), arg); QCOMPARE(callCountPeer(), 1); } @@ -1147,6 +1153,60 @@ void tst_QDBusInterface::interactiveAuthorizationRequired() QVERIFY(reply.arguments().at(0).toBool()); } +class TestObject : public QObject +{ + Q_OBJECT +public Q_SLOTS: + void test() { } +}; + +void tst_QDBusInterface::interfaceNameFallback_data() +{ + QTest::addColumn<QString>("appName"); + QTest::addColumn<QString>("orgDomain"); + QTest::addColumn<QString>("interfaceName"); + + QTest::addRow("empty.empty") << "" << "" << "local.tst_qdbusinterface"; + QTest::addRow("with-domain") << "" << "qt-project.org" << "org.qt_project.tst_qdbusinterface"; + QTest::addRow("numbers") << "prog42" << "7-zip.org" << "org._7_zip.prog42"; + QTest::addRow("non-latin1") << u"\u00e6"_s << u"\u00e5"_s << "xn__5ca.xn__6ca"; +} + +void tst_QDBusInterface::interfaceNameFallback() +{ + QFETCH(QString, appName); + QFETCH(QString, orgDomain); + QFETCH(QString, interfaceName); + + auto app = QCoreApplication::instance(); + auto oldApplicationName = app->applicationName(); + auto oldOrganizationDomain = app->organizationDomain(); + + app->setApplicationName(appName); + app->setOrganizationDomain(orgDomain); + auto obj = new TestObject; + + auto cleanup = qScopeGuard([&] { + obj->deleteLater(); + app->setApplicationName(oldApplicationName); + app->setOrganizationDomain(oldOrganizationDomain); + }); + + auto con = QDBusConnection::sessionBus(); + const QString path = "/interfaceNameFallback"_L1; + + QVERIFY(con.registerObject(path, obj, QDBusConnection::ExportAllContents)); + + QDBusInterface interface(con.baseService(), path, "org.freedesktop.DBus.Introspectable"_L1, + con); + auto reply = interface.call("Introspect"); + + QCOMPARE(reply.type(), QDBusMessage::ReplyMessage); + QString tag = u"<interface name=\"%1.TestObject\">"_s.arg(interfaceName); + auto result = reply.arguments().at(0).toString(); + QVERIFY2(result.contains(tag), qUtf8Printable(u"Tag '%1' not found\n%2"_s.arg(tag, result))); +} + QTEST_MAIN(tst_QDBusInterface) #include "tst_qdbusinterface.moc" |