on xenial help sign in
Fix up new tests
commit958dce329e59ea51196ec49b310d1c628a885492 authorMichael Terry <mike@mterry.name> dateThu 8 Dec 2016, 15:33 (10 years ago) parentd69c08b
6 files changed+39−11
tests/plugins/ImageCache/CMakeLists.txt+10 tests/plugins/ImageCache/test.cpp+4−2 tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+8−5 tests/plugins/LightDM/IntegratedLightDM/dbus.cpp+1−1 tests/plugins/Unity/Launcher/CMakeLists.txt+1−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp+15−2
tests/plugins/ImageCache/CMakeLists.txt+10
@@ -8,6 +8,7 @@ include_directories(
88 )
99
1010add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
11+add_definitions(-DTEST_DIR="plugins/ImageCache")
1112remove_definitions(-DQT_NO_KEYWORDS)
1213
1314add_executable(ImageCacheTestExec
@@ -18,3 +19,12 @@ add_unity8_uitest(ImageCache ImageCacheTestExec
1819 DEPENDS ImageCache-qml
1920 IMPORT_PATHS ${UNITY_PLUGINPATH}
2021 )
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 @@
2424#include <time.h>
2525#include <utime.h>
2626
27+#include <paths.h>
28+
2729Q_DECLARE_METATYPE(QQuickImage::Status)
2830
2931class ImageCacheTest : public QObject
@@ -52,7 +54,7 @@ private:
5254
5355 QString sourceFile(const QString &name)
5456 {
55− return CURRENT_SOURCE_DIR "/graphics/" + name;
57+ return testDataDir() + "/" TEST_DIR "/graphics/" + name;
5658 }
5759
5860 QString cachedFile(bool isPath, const QString &name)
@@ -93,7 +95,7 @@ private Q_SLOTS:
9395 qputenv("HOME", home->path().toUtf8());
9496
9597 view = new QQuickView();
96− view->setSource(QUrl::fromLocalFile(CURRENT_SOURCE_DIR "/test.qml"));
98+ view->setSource(QUrl::fromLocalFile(testDataDir() + "/" TEST_DIR "/test.qml"));
9799 image = view->rootObject();
98100
99101 view->show();
tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+8−5
@@ -21,10 +21,10 @@ target_include_directories(GreeterDBusTestExec PUBLIC
2121set_target_properties(GreeterDBusTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
2222install(TARGETS GreeterDBusTestExec
2323 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
24−)
24+ )
2525install(FILES greeter.qml
2626 DESTINATION "${SHELL_APP_DIR}/tests/plugins/LightDM/IntegratedLightDM"
27−)
27+ )
2828add_unity8_uitest(GreeterDBus dbus-test-runner
2929 ARG_PREFIX "--parameter"
3030 ARGS --task $<TARGET_FILE:GreeterDBusTestExec>
@@ -46,7 +46,7 @@ target_include_directories(GreeterPamTestExec PUBLIC
4646 )
4747install(TARGETS GreeterPamTestExec
4848 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
49−)
49+ )
5050add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
5151
5252# SessionsModelTest
@@ -65,6 +65,9 @@ target_include_directories(GreeterSessionsModelTestExec PUBLIC
6565 ${CMAKE_SOURCE_DIR}/plugins/Utils
6666 ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM/IntegratedLightDM
6767 )
68+install(TARGETS GreeterSessionsModelTestExec
69+ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
70+ )
6871add_unity8_uitest(GreeterSessions GreeterSessionsModelTestExec
6972 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
7073 DEPENDS MockLightDM
@@ -91,7 +94,7 @@ target_include_directories(GreeterUsersModelTestExec PUBLIC
9194set_target_properties(GreeterUsersModelTestExec PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/liblightdm")
9295install(TARGETS GreeterUsersModelTestExec
9396 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
94−)
97+ )
9598add_unity8_uitest(GreeterUsers GreeterUsersModelTestExec
9699 ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
97100 DEPENDS MockLightDM
@@ -111,7 +114,7 @@ target_include_directories(GreeterIntegratedTestExec PUBLIC
111114 )
112115install(TARGETS GreeterIntegratedTestExec
113116 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/LightDM/IntegratedLightDM"
114−)
117+ )
115118add_unity8_unittest(GreeterIntegrated dbus-test-runner
116119 ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/IntegratedLightDM/liblightdm/
117120 ARG_PREFIX "--parameter"
tests/plugins/LightDM/IntegratedLightDM/dbus.cpp+1−1
@@ -59,7 +59,7 @@ private Q_SLOTS:
5959 void init()
6060 {
6161 view = new QQuickView();
62− view->setSource(QUrl::fromLocalFile(testDataDir() + "/plugins/IntegratedLightDM/greeter.qml"));
62+ view->setSource(QUrl::fromLocalFile(testDataDir() + "/plugins/LightDM/IntegratedLightDM/greeter.qml"));
6363 greeter = dynamic_cast<Greeter*>(view->rootObject()->property("greeter").value<QObject*>());
6464 QVERIFY(greeter);
6565 QVERIFY(greeter->authenticationUser() == "");
tests/plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -49,7 +49,7 @@ install(TARGETS launchermodeltestExec
4949 )
5050
5151add_unity8_unittest(LauncherModel dbus-test-runner
52− ENVIRONMENT "XDG_DATA_HOME=${CMAKE_CURRENT_BINARY_DIR}"
52+ ENVIRONMENT "APPDIR=${CMAKE_CURRENT_BINARY_DIR}/applications"
5353 ARG_PREFIX "--parameter"
5454 ARGS
5555 --task $<TARGET_FILE:mock-server>
tests/plugins/Unity/Launcher/launchermodeltest.cpp+15−2
@@ -140,6 +140,7 @@ class LauncherModelTest : public QObject
140140private:
141141 LauncherModel *launcherModel;
142142 MockAppManager *appManager;
143+ QTemporaryDir tmpDir;
143144
144145 QList<QVariantMap> getASConfig() {
145146 AccountsServiceDBusAdaptor *as = launcherModel->m_asAdapter->m_accounts;
@@ -149,11 +150,23 @@ private:
149150 return qdbus_cast<QList<QVariantMap>>(reply.value().value<QDBusArgument>());
150151 }
151152
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+
152163private Q_SLOTS:
153164
154165 void initTestCase() {
155166 qDBusRegisterMetaType<QList<QVariantMap>>();
156167
168+ setUpAppDir();
169+
157170 launcherModel = new LauncherModel(this);
158171 QCoreApplication::processEvents(); // to let the model register on DBus
159172 QCOMPARE(launcherModel->rowCount(QModelIndex()), 0);
@@ -164,8 +177,8 @@ private Q_SLOTS:
164177
165178 // Adding 2 apps to the mock appmanager. Both should appear in the launcher.
166179 void init() {
167− // Launcher will look in current dir in testing mode for data
168− QDir::setCurrent(testDataDir() + "/" TEST_DIR);
180+ // Switching to tmpDir makes manipulating our appdir symlink easier.
181+ QDir::setCurrent(tmpDir.path());
169182
170183 QDBusInterface accountsInterface(QStringLiteral("org.freedesktop.Accounts"),
171184 QStringLiteral("/org/freedesktop/Accounts"),