]> cloud.milkyroute.net Git - dolphin.git/blob - src/tests/viewpropertiestest.cpp
Build with QT_NO_KEYWORDS
[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 init();
19 void cleanup();
20
21 void testReadOnlyBehavior();
22 void testAutoSave();
23
24 private:
25 bool m_globalViewProps;
26 TestDir* m_testDir;
27 };
28
29 void ViewPropertiesTest::init()
30 {
31 m_globalViewProps = GeneralSettings::self()->globalViewProps();
32 GeneralSettings::self()->setGlobalViewProps(false);
33 GeneralSettings::self()->save();
34
35 // It is mandatory to create the test-directory inside the home-directory
36 // of the user: ViewProperties does not write inside directories
37 // outside the home-directory to prevent overwriting other user-settings
38 // in case if write-permissions are given.
39 m_testDir = new TestDir(QDir::homePath() + "/.viewPropertiesTest-");
40 }
41
42 void ViewPropertiesTest::cleanup()
43 {
44 delete m_testDir;
45 m_testDir = nullptr;
46
47 GeneralSettings::self()->setGlobalViewProps(m_globalViewProps);
48 GeneralSettings::self()->save();
49 }
50
51 /**
52 * Test whether only reading properties won't result in creating
53 * a .directory file when destructing the ViewProperties instance
54 * and autosaving is enabled.
55 */
56 void ViewPropertiesTest::testReadOnlyBehavior()
57 {
58 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
59 QVERIFY(!QFile::exists(dotDirectoryFile));
60
61 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
62 QVERIFY(props->isAutoSaveEnabled());
63 const QByteArray sortRole = props->sortRole();
64 Q_UNUSED(sortRole)
65 props.reset();
66
67 QVERIFY(!QFile::exists(dotDirectoryFile));
68 }
69
70 void ViewPropertiesTest::testAutoSave()
71 {
72 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
73 QVERIFY(!QFile::exists(dotDirectoryFile));
74
75 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
76 QVERIFY(props->isAutoSaveEnabled());
77 props->setSortRole("someNewSortRole");
78 props.reset();
79
80 QVERIFY(QFile::exists(dotDirectoryFile));
81 }
82
83 QTEST_GUILESS_MAIN(ViewPropertiesTest)
84
85 #include "viewpropertiestest.moc"