on xenial help sign in
Add basic tests to plugin tests suite
bffb8fbJosh Arenson
tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+23
@@ -43,6 +43,29 @@ target_include_directories(GreeterPamTestExec PUBLIC
43 )
43 )
44add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
44add_qmltest_target(testGreeterPam GreeterPamTestExec COMMAND $<TARGET_FILE:GreeterPamTestExec>)
45
45
46+# SessionsModelTest
47+add_executable(GreeterSessionsModelTestExec
48+ sessionsmodel.cpp
49+ ${CMAKE_SOURCE_DIR}/plugins/LightDM/SessionsModel.cpp
50+ ${CMAKE_SOURCE_DIR}/plugins/Utils/unitysortfilterproxymodelqml.cpp
51+ )
52+add_dependencies(GreeterSessionsModelTestExec MockLightDM)
53+qt5_use_modules(GreeterSessionsModelTestExec Core Test)
54+target_link_libraries(GreeterSessionsModelTestExec
55+ MockLightDM
56+ )
57+target_include_directories(GreeterSessionsModelTestExec PUBLIC
58+ ${CMAKE_SOURCE_DIR}/plugins/LightDM
59+ ${CMAKE_SOURCE_DIR}/plugins/Utils
60+ ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM/IntegratedLightDM
61+ )
62+add_unity8_uitest(GreeterSessions GreeterSessionsModelTestExec
63+ ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
64+ DEPENDS MockLightDM
65+ LIGHTDM
66+ )
67+
68+# UsersModelTest
46add_executable(GreeterUsersModelTestExec
69add_executable(GreeterUsersModelTestExec
47 usersmodel.cpp
70 usersmodel.cpp
48 ${CMAKE_SOURCE_DIR}/plugins/LightDM/UsersModel.cpp
71 ${CMAKE_SOURCE_DIR}/plugins/LightDM/UsersModel.cpp
tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cppnew file+68
@@ -0,0 +1,68 @@
1+/*
2+ * Copyright (C) 2015 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "SessionsModel.h"
18+
19+#include <QLightDM/SessionsModel>
20+#include <QtCore/QModelIndex>
21+#include <QtTest>
22+
23+class GreeterSessionsModelTest : public QObject
24+{
25+ Q_OBJECT
26+
27+private Q_SLOTS:
28+
29+ void init()
30+ {
31+ model = new SessionsModel();
32+ QVERIFY(model);
33+ sourceModel = new QLightDM::SessionsModel();
34+ QVERIFY(sourceModel);
35+ }
36+
37+ void cleanup()
38+ {
39+ delete model;
40+ delete sourceModel;
41+ }
42+
43+ void testMultupleSessionsCountIsCorrect()
44+ {
45+ sourceModel->setTestScenario("multipleSessions");
46+ QVERIFY(sourceModel->rowCount(QModelIndex()) > 1);
47+ }
48+
49+ void testNoSessionsCountIsCorrect()
50+ {
51+ sourceModel->setTestScenario("noSessions");
52+ QVERIFY(sourceModel->rowCount(QModelIndex()) == 0);
53+ }
54+
55+ void testSingleSessionCountIsCorrect()
56+ {
57+ sourceModel->setTestScenario("singleSession");
58+ QVERIFY(sourceModel->rowCount(QModelIndex()) == 1);
59+ }
60+
61+private:
62+ SessionsModel *model;
63+ QLightDM::SessionsModel *sourceModel;
64+};
65+
66+QTEST_MAIN(GreeterSessionsModelTest)
67+
68+#include "sessionsmodel.moc"