@@ -0,0 +1,64 @@
2+ * Copyright (C) 2017 Canonical, Ltd.
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.
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.
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/>.
17+#include "windowstatestorage.h"
20+#include <QStandardPaths>
22+class WindowStateStorageTest : public QObject
27+ void initTestCase() {
28+ QStandardPaths::setTestModeEnabled(true);
33+ storage = new WindowStateStorage(this);
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);
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);
53+ void testSaveRestoreStage() {
55+ storage->saveStage(QTest::currentTestFunction(), stage);
56+ QTRY_COMPARE(storage->getStage(QTest::currentTestFunction(), 0), stage);
60+ WindowStateStorage * storage{nullptr};
63+QTEST_GUILESS_MAIN(WindowStateStorageTest)
64+#include "WindowStateStorageTest.moc"