on xenial help sign in
Add a test for the real implementation of WindowStateStorage

Approved by: Albert Astals Cid, Unity8 CI Bot

commitc695a7ea8bc202d5c953c0c52a8309ae4fe1023e authorLukáš Tinkl <lukas.tinkl@canonical.com> dateTue 24 Jan 2017, 07:43 (10 years ago) parentd3e2ebf683cd5e
2 files changed+68−1
tests/plugins/Utils/CMakeLists.txt+4−1 tests/plugins/Utils/WindowStateStorageTest.cpp+64
tests/plugins/Utils/CMakeLists.txt+4−1
@@ -6,11 +6,14 @@ include_directories(
66
77add_definitions(-DCONFIG_TESTING)
88
9+execute_process(COMMAND mktemp -d OUTPUT_VARIABLE TMPDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
10+
911foreach(util_test
1012 QLimitProxyModel
1113 UnitySortFilterProxyModel
1214 WindowInputMonitor
1315 DeviceConfigParser
16+ WindowStateStorage
1417)
1518 add_executable(${util_test}TestExec ${util_test}Test.cpp ModelTest.cpp)
1619 qt5_use_modules(${util_test}TestExec Test Core Qml)
@@ -19,7 +22,7 @@ foreach(util_test
1922 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/Utils"
2023 )
2124 add_unity8_unittest(${util_test} ${util_test}TestExec ADD_TEST
22− ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/Utils
25+ ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/Utils HOME=${TMPDIR}
2326 )
2427
2528endforeach()
tests/plugins/Utils/WindowStateStorageTest.cppnew file+64
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (C) 2017 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 "windowstatestorage.h"
18+
19+#include <QTest>
20+#include <QStandardPaths>
21+
22+class WindowStateStorageTest : public QObject
23+{
24+ Q_OBJECT
25+
26+private Q_SLOTS:
27+ void initTestCase() {
28+ QStandardPaths::setTestModeEnabled(true);
29+ }
30+
31+ void init()
32+ {
33+ storage = new WindowStateStorage(this);
34+ }
35+
36+ void cleanup()
37+ {
38+ delete storage;
39+ }
40+
41+ void testSaveRestoreState() {
42+ const WindowStateStorage::WindowState state{WindowStateStorage::WindowState::WindowStateMaximizedTopLeft};
43+ storage->saveState(QTest::currentTestFunction(), state);
44+ QTRY_COMPARE(storage->getState(QTest::currentTestFunction(), WindowStateStorage::WindowState::WindowStateNormal), state);
45+ }
46+
47+ void testSaveRestoreGeometry() {
48+ const QRect geometry{10, 20, 30, 40};
49+ storage->saveGeometry(QTest::currentTestFunction(), geometry);
50+ QTRY_COMPARE(storage->getGeometry(QTest::currentTestFunction(), QRect()), geometry);
51+ }
52+
53+ void testSaveRestoreStage() {
54+ const int stage{1};
55+ storage->saveStage(QTest::currentTestFunction(), stage);
56+ QTRY_COMPARE(storage->getStage(QTest::currentTestFunction(), 0), stage);
57+ }
58+
59+private:
60+ WindowStateStorage * storage{nullptr};
61+};
62+
63+QTEST_GUILESS_MAIN(WindowStateStorageTest)
64+#include "WindowStateStorageTest.moc"