]> cloud.milkyroute.net Git - dolphin.git/blob - src/tests/viewpropertiestest.cpp
Enable test mode in all test
[dolphin.git] / src / tests / viewpropertiestest.cpp
1 /*
2 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "dolphin_generalsettings.h"
8 #include "views/viewproperties.h"
9 #include "testdir.h"
10
11 #include <QTest>
12
13 class ViewPropertiesTest : public QObject
14 {
15 Q_OBJECT
16
17 private Q_SLOTS:
18 void initTestCase();
19 void init();
20 void cleanup();
21
22 void testReadOnlyBehavior();
23 void testAutoSave();
24
25 private:
26 bool m_globalViewProps;
27 TestDir* m_testDir;
28 };
29
30 void ViewPropertiesTest::initTestCase()
31 {
32 QStandardPaths::setTestModeEnabled(true);
33 }
34
35 void ViewPropertiesTest::init()
36 {
37 m_globalViewProps = GeneralSettings::self()->globalViewProps();
38 GeneralSettings::self()->setGlobalViewProps(false);
39 GeneralSettings::self()->save();
40
41 // It is mandatory to create the test-directory inside the home-directory
42 // of the user: ViewProperties does not write inside directories
43 // outside the home-directory to prevent overwriting other user-settings
44 // in case if write-permissions are given.
45 m_testDir = new TestDir(QDir::homePath() + "/.viewPropertiesTest-");
46 }
47
48 void ViewPropertiesTest::cleanup()
49 {
50 delete m_testDir;
51 m_testDir = nullptr;
52
53 GeneralSettings::self()->setGlobalViewProps(m_globalViewProps);
54 GeneralSettings::self()->save();
55 }
56
57 /**
58 * Test whether only reading properties won't result in creating
59 * a .directory file when destructing the ViewProperties instance
60 * and autosaving is enabled.
61 */
62 void ViewPropertiesTest::testReadOnlyBehavior()
63 {
64 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
65 QVERIFY(!QFile::exists(dotDirectoryFile));
66
67 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
68 QVERIFY(props->isAutoSaveEnabled());
69 const QByteArray sortRole = props->sortRole();
70 Q_UNUSED(sortRole)
71 props.reset();
72
73 QVERIFY(!QFile::exists(dotDirectoryFile));
74 }
75
76 void ViewPropertiesTest::testAutoSave()
77 {
78 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
79 QVERIFY(!QFile::exists(dotDirectoryFile));
80
81 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
82 QVERIFY(props->isAutoSaveEnabled());
83 props->setSortRole("someNewSortRole");
84 props.reset();
85
86 QVERIFY(QFile::exists(dotDirectoryFile));
87 }
88
89 QTEST_GUILESS_MAIN(ViewPropertiesTest)
90
91 #include "viewpropertiestest.moc"