File indexing completed on 2024-04-28 05:45:22
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "views/viewproperties.h" 0008 #include "dolphin_generalsettings.h" 0009 #include "testdir.h" 0010 0011 #include <QTest> 0012 0013 class ViewPropertiesTest : public QObject 0014 { 0015 Q_OBJECT 0016 0017 private Q_SLOTS: 0018 void initTestCase(); 0019 void init(); 0020 void cleanup(); 0021 0022 void testReadOnlyBehavior(); 0023 void testAutoSave(); 0024 0025 private: 0026 bool m_globalViewProps; 0027 TestDir *m_testDir; 0028 }; 0029 0030 void ViewPropertiesTest::initTestCase() 0031 { 0032 QStandardPaths::setTestModeEnabled(true); 0033 } 0034 0035 void ViewPropertiesTest::init() 0036 { 0037 m_globalViewProps = GeneralSettings::self()->globalViewProps(); 0038 GeneralSettings::self()->setGlobalViewProps(false); 0039 GeneralSettings::self()->save(); 0040 0041 // It is mandatory to create the test-directory inside the home-directory 0042 // of the user: ViewProperties does not write inside directories 0043 // outside the home-directory to prevent overwriting other user-settings 0044 // in case if write-permissions are given. 0045 m_testDir = new TestDir(QDir::homePath() + "/.viewPropertiesTest-"); 0046 } 0047 0048 void ViewPropertiesTest::cleanup() 0049 { 0050 delete m_testDir; 0051 m_testDir = nullptr; 0052 0053 GeneralSettings::self()->setGlobalViewProps(m_globalViewProps); 0054 GeneralSettings::self()->save(); 0055 } 0056 0057 /** 0058 * Test whether only reading properties won't result in creating 0059 * a .directory file when destructing the ViewProperties instance 0060 * and autosaving is enabled. 0061 */ 0062 void ViewPropertiesTest::testReadOnlyBehavior() 0063 { 0064 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory"; 0065 QVERIFY(!QFile::exists(dotDirectoryFile)); 0066 0067 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url())); 0068 QVERIFY(props->isAutoSaveEnabled()); 0069 const QByteArray sortRole = props->sortRole(); 0070 Q_UNUSED(sortRole) 0071 props.reset(); 0072 0073 QVERIFY(!QFile::exists(dotDirectoryFile)); 0074 } 0075 0076 void ViewPropertiesTest::testAutoSave() 0077 { 0078 QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory"; 0079 QVERIFY(!QFile::exists(dotDirectoryFile)); 0080 0081 QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url())); 0082 QVERIFY(props->isAutoSaveEnabled()); 0083 props->setSortRole("someNewSortRole"); 0084 props.reset(); 0085 0086 QVERIFY(QFile::exists(dotDirectoryFile)); 0087 } 0088 0089 QTEST_GUILESS_MAIN(ViewPropertiesTest) 0090 0091 #include "viewpropertiestest.moc"