@@ -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"