Warning, file /frameworks/kcoreaddons/autotests/knetworkmountstestnoconfig.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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("KDirWatchUseINotify/") << "/" << KNetworkMounts::KDirWatchUseINotify;
0084     QTest::newRow("KDirWatchDontAddWatches/") << "/" << KNetworkMounts::KDirWatchDontAddWatches;
0085     QTest::newRow("SymlinkPathsUseCache/") << "/" << KNetworkMounts::SymlinkPathsUseCache;
0086 
0087     QTest::newRow("LowSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::LowSideEffectsOptimizations;
0088     QTest::newRow("MediumSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::MediumSideEffectsOptimizations;
0089     QTest::newRow("StrongSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::StrongSideEffectsOptimizations;
0090     QTest::newRow("KDirWatchUseINotify/mnt") << "/mnt" << KNetworkMounts::KDirWatchUseINotify;
0091     QTest::newRow("KDirWatchDontAddWatches/mnt") << "/mnt" << KNetworkMounts::KDirWatchDontAddWatches;
0092     QTest::newRow("SymlinkPathsUseCache/mnt") << "/mnt" << KNetworkMounts::SymlinkPathsUseCache;
0093 
0094     QTest::newRow("LowSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::LowSideEffectsOptimizations;
0095     QTest::newRow("MediumSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::MediumSideEffectsOptimizations;
0096     QTest::newRow("StrongSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::StrongSideEffectsOptimizations;
0097     QTest::newRow("KDirWatchUseINotify/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchUseINotify;
0098     QTest::newRow("KDirWatchDontAddWatches/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchDontAddWatches;
0099     QTest::newRow("SymlinkPathsUseCache/mnt/") << "/mnt/" << KNetworkMounts::SymlinkPathsUseCache;
0100 }
0101 
0102 void KNetworkMountsTestNoConfig::testNoConfigPathOptions()
0103 {
0104     QFETCH(QString, path);
0105     QFETCH(KNetworkMounts::KNetworkMountOption, option);
0106 
0107     QVERIFY(!KNetworkMounts::self()->isOptionEnabledForPath(path, option));
0108 }
0109 
0110 void KNetworkMountsTestNoConfig::testNoConfigOptions_data()
0111 {
0112     QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
0113     QTest::addColumn<bool>("default_value");
0114     QTest::addColumn<bool>("expected_value");
0115 
0116     QTest::newRow("LowSideEffectsOptimizations_false") << KNetworkMounts::LowSideEffectsOptimizations << false << false;
0117     QTest::newRow("LowSideEffectsOptimizations_true") << KNetworkMounts::LowSideEffectsOptimizations << true << true;
0118 
0119     QTest::newRow("MediumSideEffectsOptimizationss_false") << KNetworkMounts::MediumSideEffectsOptimizations << false << false;
0120     QTest::newRow("MediumSideEffectsOptimizations_true") << KNetworkMounts::MediumSideEffectsOptimizations << true << true;
0121 
0122     QTest::newRow("StrongSideEffectsOptimizations_false") << KNetworkMounts::StrongSideEffectsOptimizations << false << false;
0123     QTest::newRow("StrongSideEffectsOptimizationss_true") << KNetworkMounts::StrongSideEffectsOptimizations << true << true;
0124 
0125     QTest::newRow("KDirWatchUseINotify_false") << KNetworkMounts::KDirWatchUseINotify << false << false;
0126     QTest::newRow("KDirWatchUseINotifys_true") << KNetworkMounts::KDirWatchUseINotify << true << true;
0127 
0128     QTest::newRow("KDirWatchDontAddWatches_false") << KNetworkMounts::KDirWatchDontAddWatches << false << false;
0129     QTest::newRow("KDirWatchDontAddWatches_true") << KNetworkMounts::KDirWatchDontAddWatches << true << true;
0130 
0131     QTest::newRow("SymlinkPathsUseCache_false") << KNetworkMounts::SymlinkPathsUseCache << false << false;
0132     QTest::newRow("SymlinkPathsUseCache_true") << KNetworkMounts::SymlinkPathsUseCache << true << true;
0133 }
0134 
0135 void KNetworkMountsTestNoConfig::testNoConfigOptions()
0136 {
0137     QFETCH(KNetworkMounts::KNetworkMountOption, option);
0138     QFETCH(bool, default_value);
0139     QFETCH(bool, expected_value);
0140 
0141     QCOMPARE(KNetworkMounts::self()->isOptionEnabled(option, default_value), expected_value);
0142 }
0143 
0144 #include "moc_knetworkmountstestnoconfig.cpp"