on xenial help sign in
Fix up new tests
958dce3Michael Terry
tests/plugins/ImageCache/CMakeLists.txt+10
@@ -8,6 +8,7 @@ include_directories(
8 )
8 )
9
9
10add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
10add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
11+add_definitions(-DTEST_DIR="plugins/ImageCache")
11remove_definitions(-DQT_NO_KEYWORDS)
12remove_definitions(-DQT_NO_KEYWORDS)
12
13
13add_executable(ImageCacheTestExec
14add_executable(ImageCacheTestExec
@@ -18,3 +19,12 @@ add_unity8_uitest(ImageCache ImageCacheTestExec
18 DEPENDS ImageCache-qml
19 DEPENDS ImageCache-qml
19 IMPORT_PATHS ${UNITY_PLUGINPATH}
20 IMPORT_PATHS ${UNITY_PLUGINPATH}
20 )
21 )
22+install(TARGETS ImageCacheTestExec
23+ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/ImageCache"
24+)
25+install(FILES test.qml
26+ DESTINATION "${SHELL_APP_DIR}/tests/plugins/ImageCache"
27+)
28+install(DIRECTORY graphics
29+ DESTINATION "${SHELL_APP_DIR}/tests/plugins/ImageCache"
30+)
tests/plugins/ImageCache/test.cpp+4−2
@@ -24,6 +24,8 @@
24#include <time.h>
24#include <time.h>
25#include <utime.h>
25#include <utime.h>
26
26
27+#include <paths.h>
28+
27Q_DECLARE_METATYPE(QQuickImage::Status)
29Q_DECLARE_METATYPE(QQuickImage::Status)
28
30
29class ImageCacheTest : public QObject
31class ImageCacheTest : public QObject
@@ -52,7 +54,7 @@ private:
52
54
53 QString sourceFile(const QString &name)
55 QString sourceFile(const QString &name)
54 {
56 {
55− return CURRENT_SOURCE_DIR "/graphics/" + name;
57+ return testDataDir() + "/" TEST_DIR "/graphics/" + name;
56 }
58 }
57
59
58 QString cachedFile(bool isPath, const QString &name)
60 QString cachedFile(bool isPath, const QString &name)
@@ -93,7 +95,7 @@ private Q_SLOTS:
93 qputenv("HOME", home->path().toUtf8());
95 qputenv("HOME", home->path().toUtf8());
94
96
95 view = new QQuickView();
97 view = new QQuickView();
96− view->setSource(QUrl::fromLocalFile(CURRENT_SOURCE_DIR "/test.qml"));
98+ view->setSource(QUrl::fromLocalFile(testDataDir() + "/" TEST_DIR "/test.qml"));
97 image = view->rootObject();
99 image = view->rootObject();
98
100
99 view->show();
101 view->show();
tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+8−5
@@ -21,10 +21,10 @@ target_include_directories(GreeterDBusTestExec PUBLIC
21set_target_properties(GreeterDBusTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
21set_target_properties(GreeterDBusTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
22install(TARGETS GreeterDBusTestExec
22install(TARGETS GreeterDBusTestExec
23 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
23 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
24−)
24+ )
25install(FILES greeter.qml
25install(FILES greeter.qml
26 DESTINATION "${SHELL_APP_DIR}/tests/plugins/LightDM/IntegratedLightDM"
26 DESTINATION "${SHELL_APP_DIR}/tests/plugins/LightDM/IntegratedLightDM"
27−)
27+ )
28add_unity8_uitest(GreeterDBus dbus-test-runner
28add_unity8_uitest(GreeterDBus dbus-test-runner
29 ARG_PREFIX "--parameter"
29 ARG_PREFIX "--parameter"
30 ARGS --task $<TARGET_FILE:GreeterDBusTestExec>
30 ARGS --task $<TARGET_FILE:GreeterDBusTestExec>
@@ -46,7 +46,7 @@ target_include_directories(GreeterPamTestExec PUBLIC
46 )
46 )
47install(TARGETS GreeterPamTestExec
47install(TARGETS GreeterPamTestExec
48 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
48 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
49−)
49+ )
50add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
50add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
51
51
52# SessionsModelTest
52# SessionsModelTest
@@ -65,6 +65,9 @@ target_include_directories(GreeterSessionsModelTestExec PUBLIC
65 ${CMAKE_SOURCE_DIR}/plugins/Utils
65 ${CMAKE_SOURCE_DIR}/plugins/Utils
66 ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM/IntegratedLightDM
66 ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM/IntegratedLightDM
67 )
67 )
68+install(TARGETS GreeterSessionsModelTestExec
69+ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
70+ )
68add_unity8_uitest(GreeterSessions GreeterSessionsModelTestExec
71add_unity8_uitest(GreeterSessions GreeterSessionsModelTestExec
69 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
72 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
70 DEPENDS MockLightDM
73 DEPENDS MockLightDM
@@ -91,7 +94,7 @@ target_include_directories(GreeterUsersModelTestExec PUBLIC
91set_target_properties(GreeterUsersModelTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
94set_target_properties(GreeterUsersModelTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
92install(TARGETS GreeterUsersModelTestExec
95install(TARGETS GreeterUsersModelTestExec
93 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
96 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
94−)
97+ )
95add_unity8_uitest(GreeterUsers GreeterUsersModelTestExec
98add_unity8_uitest(GreeterUsers GreeterUsersModelTestExec
96 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
99 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
97 DEPENDS MockLightDM
100 DEPENDS MockLightDM
@@ -111,7 +114,7 @@ target_include_directories(GreeterIntegratedTestExec PUBLIC
111 )
114 )
112install(TARGETS GreeterIntegratedTestExec
115install(TARGETS GreeterIntegratedTestExec
113 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
116 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
114−)
117+ )
115add_unity8_unittest(GreeterIntegrated dbus-test-runner
118add_unity8_unittest(GreeterIntegrated dbus-test-runner
116 ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/IntegratedLightDM/liblightdm/
119 ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/IntegratedLightDM/liblightdm/
117 ARG_PREFIX "--parameter"
120 ARG_PREFIX "--parameter"
tests/plugins/LightDM/IntegratedLightDM/dbus.cpp+1−1
@@ -59,7 +59,7 @@ private Q_SLOTS:
59 void init()
59 void init()
60 {
60 {
61 view = new QQuickView();
61 view = new QQuickView();
62− view->setSource(QUrl::fromLocalFile(testDataDir() + "/plugins/IntegratedLightDM/greeter.qml"));
62+ view->setSource(QUrl::fromLocalFile(testDataDir() + "/plugins/LightDM/IntegratedLightDM/greeter.qml"));
63 greeter = dynamic_cast<Greeter*>(view->rootObject()->property("greeter").value<QObject*>());
63 greeter = dynamic_cast<Greeter*>(view->rootObject()->property("greeter").value<QObject*>());
64 QVERIFY(greeter);
64 QVERIFY(greeter);
65 QVERIFY(greeter->authenticationUser() == "");
65 QVERIFY(greeter->authenticationUser() == "");
tests/plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -49,7 +49,7 @@ install(TARGETS launchermodeltestExec
49 )
49 )
50
50
51add_unity8_unittest(LauncherModel dbus-test-runner
51add_unity8_unittest(LauncherModel dbus-test-runner
52− ENVIRONMENT "XDG_DATA_HOME=${CMAKE_CURRENT_BINARY_DIR}"
52+ ENVIRONMENT "APPDIR=${CMAKE_CURRENT_BINARY_DIR}/applications"
53 ARG_PREFIX "--parameter"
53 ARG_PREFIX "--parameter"
54 ARGS
54 ARGS
55 --task $<TARGET_FILE:mock-server>
55 --task $<TARGET_FILE:mock-server>
tests/plugins/Unity/Launcher/launchermodeltest.cpp+15−2
@@ -140,6 +140,7 @@ class LauncherModelTest : public QObject
140private:
140private:
141 LauncherModel *launcherModel;
141 LauncherModel *launcherModel;
142 MockAppManager *appManager;
142 MockAppManager *appManager;
143+ QTemporaryDir tmpDir;
143
144
144 QList<QVariantMap> getASConfig() {
145 QList<QVariantMap> getASConfig() {
145 AccountsServiceDBusAdaptor *as = launcherModel->m_asAdapter->m_accounts;
146 AccountsServiceDBusAdaptor *as = launcherModel->m_asAdapter->m_accounts;
@@ -149,11 +150,23 @@ private:
149 return qdbus_cast<QList<QVariantMap>>(reply.value().value<QDBusArgument>());
150 return qdbus_cast<QList<QVariantMap>>(reply.value().value<QDBusArgument>());
150 }
151 }
151
152
153+ // Link our app data from a tempdir & tell glib/UAL to look there.
154+ // We do this because we want to be able to delete the applications dir
155+ // during testing, but that dir may be read-only (installed on system).
156+ void setUpAppDir() {
157+ QFile appDir(qgetenv("APPDIR"));
158+ appDir.link(tmpDir.path() + "/applications");
159+
160+ qputenv("XDG_DATA_HOME", tmpDir.path().toUtf8());
161+ }
162+
152private Q_SLOTS:
163private Q_SLOTS:
153
164
154 void initTestCase() {
165 void initTestCase() {
155 qDBusRegisterMetaType<QList<QVariantMap>>();
166 qDBusRegisterMetaType<QList<QVariantMap>>();
156
167
168+ setUpAppDir();
169+
157 launcherModel = new LauncherModel(this);
170 launcherModel = new LauncherModel(this);
158 QCoreApplication::processEvents(); // to let the model register on DBus
171 QCoreApplication::processEvents(); // to let the model register on DBus
159 QCOMPARE(launcherModel->rowCount(QModelIndex()), 0);
172 QCOMPARE(launcherModel->rowCount(QModelIndex()), 0);
@@ -164,8 +177,8 @@ private Q_SLOTS:
164
177
165 // Adding 2 apps to the mock appmanager. Both should appear in the launcher.
178 // Adding 2 apps to the mock appmanager. Both should appear in the launcher.
166 void init() {
179 void init() {
167− // Launcher will look in current dir in testing mode for data
180+ // Switching to tmpDir makes manipulating our appdir symlink easier.
168− QDir::setCurrent(testDataDir() + "/" TEST_DIR);
181+ QDir::setCurrent(tmpDir.path());
169
182
170 QDBusInterface accountsInterface(QStringLiteral("org.freedesktop.Accounts"),
183 QDBusInterface accountsInterface(QStringLiteral("org.freedesktop.Accounts"),
171 QStringLiteral("/org/freedesktop/Accounts"),
184 QStringLiteral("/org/freedesktop/Accounts"),