File indexing completed on 2024-03-24 03:56:26
0001 /* 0002 This software is a contribution of the LiMux project of the city of Munich. 0003 SPDX-FileCopyrightText: 2021 Robert Hoffmann <robert@roberthoffmann.de> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "knetworkmountstestnoconfig.h" 0009 0010 #include <KNetworkMounts> 0011 0012 #include <QFile> 0013 #include <QStandardPaths> 0014 #include <QTest> 0015 0016 QTEST_MAIN(KNetworkMountsTestNoConfig) 0017 0018 void KNetworkMountsTestNoConfig::initTestCase() 0019 { 0020 QStandardPaths::setTestModeEnabled(true); 0021 m_configFileName = QStringLiteral("%1/network_mounts").arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)); 0022 0023 QFile::remove(m_configFileName); 0024 QVERIFY(!QFile::exists(m_configFileName)); 0025 } 0026 0027 void KNetworkMountsTestNoConfig::cleanupTestCase() 0028 { 0029 QVERIFY(!QFile::exists(m_configFileName)); 0030 QVERIFY(!KNetworkMounts::self()->isEnabled()); 0031 0032 KNetworkMounts::self()->sync(); 0033 QFile::remove(m_configFileName); 0034 } 0035 0036 void KNetworkMountsTestNoConfig::testNoConfigPathTypes_data() 0037 { 0038 QTest::addColumn<QString>("path"); 0039 QTest::addColumn<KNetworkMounts::KNetworkMountsType>("type"); 0040 0041 QTest::newRow("NfsPaths/") << "/" << KNetworkMounts::NfsPaths; 0042 QTest::newRow("SmbPaths/") << "/" << KNetworkMounts::SmbPaths; 0043 QTest::newRow("SymlinkDirectory/") << "/" << KNetworkMounts::SymlinkDirectory; 0044 QTest::newRow("SymlinkToNetworkMount/") << "/" << KNetworkMounts::SymlinkToNetworkMount; 0045 QTest::newRow("Any/") << "/" << KNetworkMounts::Any; 0046 0047 QTest::newRow("NfsPaths/mnt") << "/mnt" << KNetworkMounts::NfsPaths; 0048 QTest::newRow("SmbPaths/mnt") << "/mnt" << KNetworkMounts::SmbPaths; 0049 QTest::newRow("SymlinkDirectory/mnt") << "/mnt" << KNetworkMounts::SymlinkDirectory; 0050 QTest::newRow("SymlinkToNetworkMount/mnt") << "/mnt" << KNetworkMounts::SymlinkToNetworkMount; 0051 QTest::newRow("Any/mnt") << "/mnt" << KNetworkMounts::Any; 0052 0053 QTest::newRow("NfsPaths/mnt/") << "/mnt/" << KNetworkMounts::NfsPaths; 0054 QTest::newRow("SmbPaths/mnt/") << "/mnt/" << KNetworkMounts::SmbPaths; 0055 QTest::newRow("SymlinkDirectory/mnt/") << "/mnt/" << KNetworkMounts::SymlinkDirectory; 0056 QTest::newRow("SymlinkToNetworkMount/mnt/") << "/mnt/" << KNetworkMounts::SymlinkToNetworkMount; 0057 QTest::newRow("Any/mnt/") << "/mnt/" << KNetworkMounts::Any; 0058 } 0059 0060 void KNetworkMountsTestNoConfig::testNoConfigPathTypes() 0061 { 0062 QFETCH(QString, path); 0063 QFETCH(KNetworkMounts::KNetworkMountsType, type); 0064 0065 QVERIFY(!QFile::exists(m_configFileName)); 0066 QVERIFY(!KNetworkMounts::self()->isEnabled()); 0067 0068 QCOMPARE(KNetworkMounts::self()->paths(type), QStringList()); 0069 QCOMPARE(KNetworkMounts::self()->paths(), QStringList()); 0070 QCOMPARE(KNetworkMounts::self()->canonicalSymlinkPath(path), path); 0071 QVERIFY(!KNetworkMounts::self()->isSlowPath(path, type)); 0072 QVERIFY(!KNetworkMounts::self()->isSlowPath(path)); 0073 } 0074 0075 void KNetworkMountsTestNoConfig::testNoConfigPathOptions_data() 0076 { 0077 QTest::addColumn<QString>("path"); 0078 QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option"); 0079 0080 QTest::newRow("LowSideEffectsOptimizations/") << "/" << KNetworkMounts::LowSideEffectsOptimizations; 0081 QTest::newRow("MediumSideEffectsOptimizations/") << "/" << KNetworkMounts::MediumSideEffectsOptimizations; 0082 QTest::newRow("StrongSideEffectsOptimizations/") << "/" << KNetworkMounts::StrongSideEffectsOptimizations; 0083 QTest::newRow("KDirWatchDontAddWatches/") << "/" << KNetworkMounts::KDirWatchDontAddWatches; 0084 QTest::newRow("SymlinkPathsUseCache/") << "/" << KNetworkMounts::SymlinkPathsUseCache; 0085 0086 QTest::newRow("LowSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::LowSideEffectsOptimizations; 0087 QTest::newRow("MediumSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::MediumSideEffectsOptimizations; 0088 QTest::newRow("StrongSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::StrongSideEffectsOptimizations; 0089 QTest::newRow("KDirWatchDontAddWatches/mnt") << "/mnt" << KNetworkMounts::KDirWatchDontAddWatches; 0090 QTest::newRow("SymlinkPathsUseCache/mnt") << "/mnt" << KNetworkMounts::SymlinkPathsUseCache; 0091 0092 QTest::newRow("LowSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::LowSideEffectsOptimizations; 0093 QTest::newRow("MediumSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::MediumSideEffectsOptimizations; 0094 QTest::newRow("StrongSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::StrongSideEffectsOptimizations; 0095 QTest::newRow("KDirWatchDontAddWatches/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchDontAddWatches; 0096 QTest::newRow("SymlinkPathsUseCache/mnt/") << "/mnt/" << KNetworkMounts::SymlinkPathsUseCache; 0097 } 0098 0099 void KNetworkMountsTestNoConfig::testNoConfigPathOptions() 0100 { 0101 QFETCH(QString, path); 0102 QFETCH(KNetworkMounts::KNetworkMountOption, option); 0103 0104 QVERIFY(!KNetworkMounts::self()->isOptionEnabledForPath(path, option)); 0105 } 0106 0107 void KNetworkMountsTestNoConfig::testNoConfigOptions_data() 0108 { 0109 QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option"); 0110 QTest::addColumn<bool>("default_value"); 0111 QTest::addColumn<bool>("expected_value"); 0112 0113 QTest::newRow("LowSideEffectsOptimizations_false") << KNetworkMounts::LowSideEffectsOptimizations << false << false; 0114 QTest::newRow("LowSideEffectsOptimizations_true") << KNetworkMounts::LowSideEffectsOptimizations << true << true; 0115 0116 QTest::newRow("MediumSideEffectsOptimizationss_false") << KNetworkMounts::MediumSideEffectsOptimizations << false << false; 0117 QTest::newRow("MediumSideEffectsOptimizations_true") << KNetworkMounts::MediumSideEffectsOptimizations << true << true; 0118 0119 QTest::newRow("StrongSideEffectsOptimizations_false") << KNetworkMounts::StrongSideEffectsOptimizations << false << false; 0120 QTest::newRow("StrongSideEffectsOptimizationss_true") << KNetworkMounts::StrongSideEffectsOptimizations << true << true; 0121 0122 QTest::newRow("KDirWatchDontAddWatches_false") << KNetworkMounts::KDirWatchDontAddWatches << false << false; 0123 QTest::newRow("KDirWatchDontAddWatches_true") << KNetworkMounts::KDirWatchDontAddWatches << true << true; 0124 0125 QTest::newRow("SymlinkPathsUseCache_false") << KNetworkMounts::SymlinkPathsUseCache << false << false; 0126 QTest::newRow("SymlinkPathsUseCache_true") << KNetworkMounts::SymlinkPathsUseCache << true << true; 0127 } 0128 0129 void KNetworkMountsTestNoConfig::testNoConfigOptions() 0130 { 0131 QFETCH(KNetworkMounts::KNetworkMountOption, option); 0132 QFETCH(bool, default_value); 0133 QFETCH(bool, expected_value); 0134 0135 QCOMPARE(KNetworkMounts::self()->isOptionEnabled(option, default_value), expected_value); 0136 } 0137 0138 #include "moc_knetworkmountstestnoconfig.cpp"