on xenial help sign in
add tests for new property
commite7a428837db8b7293ec7d76cdab495a6a3701426 authorMichael Terry <michael.terry@canonical.com> dateWed 18 Jun 2014, 15:49 (12 years ago) parent92b45e3
3 files changed+35−1
plugins/LightDM/Greeter.cpp+1 tests/plugins/LightDM/CMakeLists.txt+1−1 tests/plugins/LightDM/dbus.cpp+33
plugins/LightDM/Greeter.cpp+1
@@ -39,6 +39,7 @@ private:
3939
4040GreeterPrivate::GreeterPrivate(Greeter* parent)
4141 : m_greeter(new QLightDM::Greeter(parent)),
42+ m_active(false),
4243 wasPrompted(false),
4344 promptless(false),
4445 q_ptr(parent)
tests/plugins/LightDM/CMakeLists.txt+1−1
@@ -19,7 +19,7 @@ target_link_libraries(test-lightdm-dbus
1919
2020add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
2121
22−add_custom_target(testLightDMDBus dbus-launch env QML2_IMPORT_PATH=${CMAKE_BINARY_DIR}/tests/mocks LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full ${CMAKE_CURRENT_BINARY_DIR}/test-lightdm-dbus)
22+add_custom_target(testLightDMDBus xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum dbus-launch env QML2_IMPORT_PATH=${CMAKE_BINARY_DIR}/tests/mocks LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full ${CMAKE_CURRENT_BINARY_DIR}/test-lightdm-dbus)
2323add_dependencies(testLightDMDBus test-lightdm-dbus)
2424
2525add_dependencies(qmluitests testLightDMDBus)
tests/plugins/LightDM/dbus.cpp+33
@@ -38,6 +38,13 @@ private Q_SLOTS:
3838 // SIGNAL method, because QtDBus doesn't know about PropertiesChanged.
3939 // So we connect the hard way for the benefit of any tests that want
4040 // to watch.
41+ QDBusConnection::sessionBus().connect(
42+ "com.canonical.UnityGreeter",
43+ "/",
44+ "org.freedesktop.DBus.Properties",
45+ "PropertiesChanged",
46+ this,
47+ SIGNAL(PropertiesChangedRelay(const QString&, const QVariantMap&, const QStringList&)));
4148 QDBusConnection::sessionBus().connect(
4249 "com.canonical.UnityGreeter",
4350 "/list",
@@ -57,6 +64,12 @@ private Q_SLOTS:
5764 view->show();
5865 QTest::qWaitForWindowExposed(view);
5966
67+ dbusMain = new QDBusInterface("com.canonical.UnityGreeter",
68+ "/",
69+ "com.canonical.UnityGreeter",
70+ QDBusConnection::sessionBus(), view);
71+ QVERIFY(dbusMain->isValid());
72+
6073 dbusList = new QDBusInterface("com.canonical.UnityGreeter",
6174 "/list",
6275 "com.canonical.UnityGreeter.List",
@@ -155,9 +168,29 @@ private Q_SLOTS:
155168 QVERIFY(arguments.at(1).toMap()["EntryIsLocked"] == false);
156169 }
157170
171+ void testIsActive()
172+ {
173+ QVERIFY(!greeter->isActive());
174+ QVERIFY(!dbusMain->property("IsActive").toBool());
175+
176+ QSignalSpy spy(this, SIGNAL(PropertiesChangedRelay(QString, QVariantMap, QStringList)));
177+ greeter->setIsActive(true);
178+ spy.wait();
179+
180+ QVERIFY(greeter->isActive());
181+ QVERIFY(dbusMain->property("IsActive").toBool());
182+
183+ QCOMPARE(spy.count(), 1);
184+ QList<QVariant> arguments = spy.takeFirst();
185+ QCOMPARE(arguments.at(0).toString(), QString("com.canonical.UnityGreeter"));
186+ QVERIFY(arguments.at(1).toMap().contains("IsActive"));
187+ QVERIFY(arguments.at(1).toMap()["IsActive"].toBool());
188+ }
189+
158190private:
159191 QQuickView *view;
160192 Greeter *greeter;
193+ QDBusInterface *dbusMain;
161194 QDBusInterface *dbusList;
162195};
163196