From 239e3a9071f74fb8f31aa35eafb7788b7de5b2c7 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Sun, 15 Feb 2026 14:17:11 +0100 Subject: [PATCH] tests: cover GameCenter policy and capabilities --- tests/dbus_smoketest.cpp | 73 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/tests/dbus_smoketest.cpp b/tests/dbus_smoketest.cpp index ff0e46a..61f6c25 100644 --- a/tests/dbus_smoketest.cpp +++ b/tests/dbus_smoketest.cpp @@ -83,6 +83,7 @@ private Q_SLOTS: void pingGameCenter(); void gameCenterUniqueness(); + void gameCenterPolicyAndCapabilities(); void pingRunner(); void pingInput(); void runnerResolveLaunchNative(); @@ -276,6 +277,78 @@ void DbusSmokeTest::gameCenterUniqueness() pingGameCenter(); } +void DbusSmokeTest::gameCenterPolicyAndCapabilities() +{ + org::kde::GameCenter1 iface(QStringLiteral("org.kde.GameCenter1"), QStringLiteral("/org/kde/ALaKarte/GameCenter1"), m_bus); + QVERIFY(iface.isValid()); + iface.setTimeout(2000); + + { + QDBusPendingReply reply = iface.Version(); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + QCOMPARE(reply.argumentAt<0>(), 1u); + QCOMPARE(reply.argumentAt<1>(), 0u); + } + + { + QDBusPendingReply reply = iface.GetCapabilities(); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + const QVariantMap caps = reply.value(); + QVERIFY(caps.contains(QStringLiteral("supportsSystemd"))); + QVERIFY(caps.value(QStringLiteral("supportsSystemd")).canConvert()); + QVERIFY(caps.contains(QStringLiteral("supportsSystemBus"))); + QCOMPARE(caps.value(QStringLiteral("supportsSystemBus")).toBool(), false); + QVERIFY(caps.contains(QStringLiteral("supportsPowerProfiles"))); + QVERIFY(caps.value(QStringLiteral("supportsPowerProfiles")).canConvert()); + } + + QVariantMap originalPolicy; + { + QDBusPendingReply reply = iface.GetPolicy(); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + originalPolicy = reply.value(); + } + + { + QVariantMap policy; + policy.insert(QStringLiteral("maxConcurrent"), 0); + QDBusPendingReply<> reply = iface.SetPolicy(policy); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + } + + { + QDBusPendingReply reply = iface.GetPolicy(); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + QCOMPARE(reply.value().value(QStringLiteral("maxConcurrent")).toInt(), 0); + } + + { + const int originalMaxConcurrent = originalPolicy.value(QStringLiteral("maxConcurrent"), 0).toInt(); + QVariantMap policy; + policy.insert(QStringLiteral("maxConcurrent"), originalMaxConcurrent); + QDBusPendingReply<> reply = iface.SetPolicy(policy); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + } + + { + QDBusPendingReply reply = iface.ListSessions(); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + } + + { + QDBusPendingReply<> reply = iface.StopByGameId(QStringLiteral("alakarte-test-nonexistent")); + reply.waitForFinished(); + QVERIFY2(!reply.isError(), qPrintable(reply.error().message())); + } +} + void DbusSmokeTest::pingRunner() { org::kde::ALaKarte::Runner1 iface(QStringLiteral("org.kde.ALaKarte.Runner1"), QStringLiteral("/org/kde/ALaKarte/Runner1"), m_bus);