@@ -81,7 +81,99 @@ private Q_SLOTS:
81 QTRY_COMPARE(spy.count(), 1);
81 QTRY_COMPARE(spy.count(), 1);
84− void testGnomeSessionWrapper_data() {
84+ void testGnomeSessionWrapperWithoutConfirmation_data() {
85+ QTest::addColumn<QString>("method");
86+ QTest::addColumn<QString>("signal");
88+ QTest::newRow("Reboot") << "RequestReboot" << SIGNAL(RebootCalled(bool));
89+ QTest::newRow("Shutdown") << "RequestShutdown" << SIGNAL(PowerOffCalled(bool));
92+ void testGnomeSessionWrapperWithoutConfirmation() {
93+ QFETCH(QString, method);
94+ QFETCH(QString, signal);
96+ DBusUnitySessionService dbusUnitySessionService;
97+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
98+ QCoreApplication::processEvents(); // to let the services register on DBus
100+ QDBusInterface login1Interface("org.freedesktop.login1",
102+ "org.freedesktop.login1.Manager");
103+ QSignalSpy spy(&login1Interface, signal.toUtf8().data());
105+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
106+ "/org/gnome/SessionManager",
107+ "org.gnome.SessionManager",
108+ QDBusConnection::sessionBus());
109+ QVERIFY(dbusGnomeSessionWrapper.isValid());
111+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call(method);
112+ QVERIFY(reply.isValid());
113+ QTRY_COMPARE(spy.count(), 1);
116+ void testGnomeSessionWrapperWithConfirmation_data() {
117+ QTest::addColumn<QString>("method");
118+ QTest::addColumn<QString>("signal");
120+ QTest::newRow("Reboot") << "Reboot" << SIGNAL(RebootRequested(bool));
121+ QTest::newRow("Shutdown") << "Shutdown" << SIGNAL(ShutdownRequested(bool));
124+ void testGnomeSessionWrapperWithConfirmation() {
125+ QFETCH(QString, method);
126+ QFETCH(QString, signal);
128+ DBusUnitySessionService dbusUnitySessionService;
129+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
130+ QCoreApplication::processEvents(); // to let the services register on DBus
132+ QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data());
134+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
135+ "/org/gnome/SessionManager",
136+ "org.gnome.SessionManager",
137+ QDBusConnection::sessionBus());
138+ QVERIFY(dbusGnomeSessionWrapper.isValid());
140+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call(method);
141+ QVERIFY(reply.isValid());
142+ QCOMPARE(spy.count(), 1);
145+ void testGnomeSessionWrapperLogout_data() {
146+ QTest::addColumn<int>("mode");
147+ QTest::addColumn<QString>("signal");
149+ QTest::newRow("Logout") << 0 << SIGNAL(LogoutRequested(bool));
150+ QTest::newRow("LogoutNoDialog") << 1 << SIGNAL(LogoutReady());
151+ QTest::newRow("LogoutNoInhibits") << 2 << SIGNAL(LogoutReady());
152+ QTest::newRow("LogoutNoDialogNoInhibits") << 3 << SIGNAL(LogoutReady());
155+ void testGnomeSessionWrapperLogout() {
157+ QFETCH(QString, signal);
159+ DBusUnitySessionService dbusUnitySessionService;
160+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
161+ QCoreApplication::processEvents(); // to let the services register on DBus
163+ QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data());
165+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
166+ "/org/gnome/SessionManager",
167+ "org.gnome.SessionManager",
168+ QDBusConnection::sessionBus());
169+ QVERIFY(dbusGnomeSessionWrapper.isValid());
171+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call("Logout", (quint32)mode);
172+ QVERIFY(reply.isValid());
173+ QCOMPARE(spy.count(), 1);
176+ void testGnomeSessionDialogWrapper_data() {
85 QTest::addColumn<uint>("method");
177 QTest::addColumn<uint>("method");
86 QTest::addColumn<QString>("signal");
178 QTest::addColumn<QString>("signal");
@@ -90,7 +182,7 @@ private Q_SLOTS:
90 QTest::newRow("Reboot") << (uint)Action::REBOOT << "RebootRequested(bool)";
182 QTest::newRow("Reboot") << (uint)Action::REBOOT << "RebootRequested(bool)";
93− void testGnomeSessionWrapper() {
185+ void testGnomeSessionDialogWrapper() {
94 QFETCH(uint, method);
186 QFETCH(uint, method);
95 QFETCH(QString, signal);
187 QFETCH(QString, signal);
@@ -102,7 +194,7 @@ private Q_SLOTS:
102 // .. because QSignalSpy checks the signal signature like this: "if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE)"
194 // .. because QSignalSpy checks the signal signature like this: "if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE)"
103 QSignalSpy spy(&dbusUnitySessionService, qPrintable(signal.prepend(QSIGNAL_CODE)));
195 QSignalSpy spy(&dbusUnitySessionService, qPrintable(signal.prepend(QSIGNAL_CODE)));
105− DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
197+ DBusGnomeSessionManagerDialogWrapper dbusGnomeSessionManagerDialogWrapper;
106 QCoreApplication::processEvents(); // to let the service register on DBus
198 QCoreApplication::processEvents(); // to let the service register on DBus
108 QDBusInterface dbusGnomeSessionWrapper("com.canonical.Unity",
200 QDBusInterface dbusGnomeSessionWrapper("com.canonical.Unity",