File indexing completed on 2024-03-24 15:26:20

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 "knetworkmountsteststatic.h"
0009 
0010 // include static functions
0011 #include "knetworkmounts_p.h"
0012 
0013 #include <KNetworkMounts>
0014 
0015 #include <QFile>
0016 #include <QStandardPaths>
0017 #include <QTest>
0018 
0019 QTEST_MAIN(KNetworkMountsTestStatic)
0020 
0021 void KNetworkMountsTestStatic::testStaticFunctions_data()
0022 {
0023     QTest::addColumn<QString>("path");
0024     QTest::addColumn<QStringList>("paths");
0025     QTest::addColumn<bool>("expected_is_slash_added_to_path");
0026     QTest::addColumn<QString>("expected_path_str");
0027     QTest::addColumn<bool>("expected_is_slash_added_to_paths");
0028     QTest::addColumn<QStringList>("expected_paths_str");
0029     QTest::addColumn<QString>("expected_matching");
0030 
0031     QTest::newRow("empty1") << QString() << QStringList() << false << "" << false << QStringList() << QString();
0032     QTest::newRow("empty2") << "" << (QStringList() << QString() << QString()) << false << "" << false << (QStringList() << QString() << QString())
0033                             << QString();
0034 
0035     QTest::newRow("/1") << "/" << QStringList() << false << "/" << false << QStringList() << QString();
0036     QTest::newRow("/2") << "/" << (QStringList() << QString() << QString()) << false << "/" << false << (QStringList() << QString() << QString()) << QString();
0037     QTest::newRow("/3") << "/" << (QStringList() << QStringLiteral("/")) << false << "/" << false << (QStringList() << QStringLiteral("/")) << "/";
0038     QTest::newRow("/4") << "/" << (QStringList() << QStringLiteral("/") << QString()) << false << "/" << false
0039                         << (QStringList() << QStringLiteral("/") << QString()) << "/";
0040 
0041     QTest::newRow("/mnt1") << "/mnt" << QStringList() << true << "/mnt/" << false << QStringList() << QString();
0042     QTest::newRow("/mnt2") << "/mnt" << (QStringList() << QStringLiteral("/mnt")) << true << "/mnt/" << true << (QStringList() << QStringLiteral("/mnt/"))
0043                            << "/mnt";
0044     QTest::newRow("/mnt3") << "/mnt" << (QStringList() << QStringLiteral("/mnt/")) << true << "/mnt/" << false << (QStringList() << QStringLiteral("/mnt/"))
0045                            << "/mnt/";
0046 
0047     QTest::newRow("/mnt/test1") << "/mnt" << (QStringList() << QStringLiteral("/mnt/test1") << QStringLiteral("/mnt/test2/")) << true << "/mnt/" << true
0048                                 << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "";
0049     QTest::newRow("/mnt/test2") << "/mnt/test2" << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << true << "/mnt/test2/"
0050                                 << false << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "/mnt/test2/";
0051     QTest::newRow("/mnt/test3") << "/mnt/test2/" << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << false << "/mnt/test2/"
0052                                 << false << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "/mnt/test2/";
0053 }
0054 
0055 void KNetworkMountsTestStatic::testStaticFunctions()
0056 {
0057     QFETCH(QString, path);
0058     QFETCH(QStringList, paths);
0059     QFETCH(bool, expected_is_slash_added_to_path);
0060     QFETCH(QString, expected_path_str);
0061     QFETCH(bool, expected_is_slash_added_to_paths);
0062     QFETCH(QStringList, expected_paths_str);
0063     QFETCH(QString, expected_matching);
0064 
0065     QCOMPARE(getMatchingPath(path, paths), expected_matching);
0066 
0067     QCOMPARE(ensureTrailingSlash(&path), expected_is_slash_added_to_path);
0068     QCOMPARE(path, expected_path_str);
0069     QCOMPARE(ensureTrailingSlashes(&paths), expected_is_slash_added_to_paths);
0070     QCOMPARE(paths, expected_paths_str);
0071 }
0072 
0073 void KNetworkMountsTestStatic::testStaticKNetworkMountOptionToString_data()
0074 {
0075     QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
0076     QTest::addColumn<QString>("string");
0077 
0078     QTest::newRow("LowSideEffectsOptimizations") << KNetworkMounts::LowSideEffectsOptimizations << "LowSideEffectsOptimizations";
0079     QTest::newRow("MediumSideEffectsOptimizations") << KNetworkMounts::MediumSideEffectsOptimizations << "MediumSideEffectsOptimizations";
0080     QTest::newRow("StrongSideEffectsOptimizations") << KNetworkMounts::StrongSideEffectsOptimizations << "StrongSideEffectsOptimizations";
0081     QTest::newRow("KDirWatchUseINotify") << KNetworkMounts::KDirWatchUseINotify << "KDirWatchUseINotify";
0082     QTest::newRow("KDirWatchDontAddWatches") << KNetworkMounts::KDirWatchDontAddWatches << "KDirWatchDontAddWatches";
0083     QTest::newRow("SymlinkPathsUseCache") << KNetworkMounts::SymlinkPathsUseCache << "SymlinkPathsUseCache";
0084 }
0085 void KNetworkMountsTestStatic::testStaticKNetworkMountOptionToString()
0086 {
0087     QFETCH(KNetworkMounts::KNetworkMountOption, option);
0088     QFETCH(QString, string);
0089 
0090     QCOMPARE(enumToString(option), string);
0091 }
0092 
0093 void KNetworkMountsTestStatic::testStaticKNetworkMountsTypeToString_data()
0094 {
0095     QTest::addColumn<KNetworkMounts::KNetworkMountsType>("type");
0096     QTest::addColumn<QString>("string");
0097 
0098     QTest::newRow("NfsPaths") << KNetworkMounts::NfsPaths << "NfsPaths";
0099     QTest::newRow("SmbPaths") << KNetworkMounts::SmbPaths << "SmbPaths";
0100     QTest::newRow("SymlinkDirectory") << KNetworkMounts::SymlinkDirectory << "SymlinkDirectory";
0101     QTest::newRow("SymlinkToNetworkMount") << KNetworkMounts::SymlinkToNetworkMount << "SymlinkToNetworkMount";
0102     QTest::newRow("Any") << KNetworkMounts::Any << "Any";
0103 }
0104 void KNetworkMountsTestStatic::testStaticKNetworkMountsTypeToString()
0105 {
0106     QFETCH(KNetworkMounts::KNetworkMountsType, type);
0107     QFETCH(QString, string);
0108 
0109     QCOMPARE(enumToString(type), string);
0110 }
0111 
0112 #include "moc_knetworkmountsteststatic.cpp"