knetworkmountsteststatic.cpp 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*
  2. This software is a contribution of the LiMux project of the city of Munich.
  3. SPDX-FileCopyrightText: 2021 Robert Hoffmann <robert@roberthoffmann.de>
  4. SPDX-License-Identifier: LGPL-2.0-or-later
  5. */
  6. #include "knetworkmountsteststatic.h"
  7. // include static functions
  8. #include "knetworkmounts_p.h"
  9. #include <KNetworkMounts>
  10. #include <QFile>
  11. #include <QStandardPaths>
  12. #include <QTest>
  13. QTEST_MAIN(KNetworkMountsTestStatic)
  14. void KNetworkMountsTestStatic::testStaticFunctions_data()
  15. {
  16. QTest::addColumn<QString>("path");
  17. QTest::addColumn<QStringList>("paths");
  18. QTest::addColumn<bool>("expected_is_slash_added_to_path");
  19. QTest::addColumn<QString>("expected_path_str");
  20. QTest::addColumn<bool>("expected_is_slash_added_to_paths");
  21. QTest::addColumn<QStringList>("expected_paths_str");
  22. QTest::addColumn<QString>("expected_matching");
  23. QTest::newRow("empty1") << QString() << QStringList() << false << "" << false << QStringList() << QString();
  24. QTest::newRow("empty2") << "" << (QStringList() << QString() << QString()) << false << "" << false << (QStringList() << QString() << QString())
  25. << QString();
  26. QTest::newRow("/1") << "/" << QStringList() << false << "/" << false << QStringList() << QString();
  27. QTest::newRow("/2") << "/" << (QStringList() << QString() << QString()) << false << "/" << false << (QStringList() << QString() << QString()) << QString();
  28. QTest::newRow("/3") << "/" << (QStringList() << QStringLiteral("/")) << false << "/" << false << (QStringList() << QStringLiteral("/")) << "/";
  29. QTest::newRow("/4") << "/" << (QStringList() << QStringLiteral("/") << QString()) << false << "/" << false
  30. << (QStringList() << QStringLiteral("/") << QString()) << "/";
  31. QTest::newRow("/mnt1") << "/mnt" << QStringList() << true << "/mnt/" << false << QStringList() << QString();
  32. QTest::newRow("/mnt2") << "/mnt" << (QStringList() << QStringLiteral("/mnt")) << true << "/mnt/" << true << (QStringList() << QStringLiteral("/mnt/"))
  33. << "/mnt";
  34. QTest::newRow("/mnt3") << "/mnt" << (QStringList() << QStringLiteral("/mnt/")) << true << "/mnt/" << false << (QStringList() << QStringLiteral("/mnt/"))
  35. << "/mnt/";
  36. QTest::newRow("/mnt/test1") << "/mnt" << (QStringList() << QStringLiteral("/mnt/test1") << QStringLiteral("/mnt/test2/")) << true << "/mnt/" << true
  37. << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "";
  38. QTest::newRow("/mnt/test2") << "/mnt/test2" << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << true << "/mnt/test2/"
  39. << false << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "/mnt/test2/";
  40. QTest::newRow("/mnt/test3") << "/mnt/test2/" << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << false << "/mnt/test2/"
  41. << false << (QStringList() << QStringLiteral("/mnt/test1/") << QStringLiteral("/mnt/test2/")) << "/mnt/test2/";
  42. }
  43. void KNetworkMountsTestStatic::testStaticFunctions()
  44. {
  45. QFETCH(QString, path);
  46. QFETCH(QStringList, paths);
  47. QFETCH(bool, expected_is_slash_added_to_path);
  48. QFETCH(QString, expected_path_str);
  49. QFETCH(bool, expected_is_slash_added_to_paths);
  50. QFETCH(QStringList, expected_paths_str);
  51. QFETCH(QString, expected_matching);
  52. QCOMPARE(getMatchingPath(path, paths), expected_matching);
  53. QCOMPARE(ensureTrailingSlash(&path), expected_is_slash_added_to_path);
  54. QCOMPARE(path, expected_path_str);
  55. QCOMPARE(ensureTrailingSlashes(&paths), expected_is_slash_added_to_paths);
  56. QCOMPARE(paths, expected_paths_str);
  57. }
  58. void KNetworkMountsTestStatic::testStaticKNetworkMountOptionToString_data()
  59. {
  60. QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
  61. QTest::addColumn<QString>("string");
  62. QTest::newRow("LowSideEffectsOptimizations") << KNetworkMounts::LowSideEffectsOptimizations << "LowSideEffectsOptimizations";
  63. QTest::newRow("MediumSideEffectsOptimizations") << KNetworkMounts::MediumSideEffectsOptimizations << "MediumSideEffectsOptimizations";
  64. QTest::newRow("StrongSideEffectsOptimizations") << KNetworkMounts::StrongSideEffectsOptimizations << "StrongSideEffectsOptimizations";
  65. QTest::newRow("KDirWatchUseINotify") << KNetworkMounts::KDirWatchUseINotify << "KDirWatchUseINotify";
  66. QTest::newRow("KDirWatchDontAddWatches") << KNetworkMounts::KDirWatchDontAddWatches << "KDirWatchDontAddWatches";
  67. QTest::newRow("SymlinkPathsUseCache") << KNetworkMounts::SymlinkPathsUseCache << "SymlinkPathsUseCache";
  68. }
  69. void KNetworkMountsTestStatic::testStaticKNetworkMountOptionToString()
  70. {
  71. QFETCH(KNetworkMounts::KNetworkMountOption, option);
  72. QFETCH(QString, string);
  73. QCOMPARE(enumToString(option), string);
  74. }
  75. void KNetworkMountsTestStatic::testStaticKNetworkMountsTypeToString_data()
  76. {
  77. QTest::addColumn<KNetworkMounts::KNetworkMountsType>("type");
  78. QTest::addColumn<QString>("string");
  79. QTest::newRow("NfsPaths") << KNetworkMounts::NfsPaths << "NfsPaths";
  80. QTest::newRow("SmbPaths") << KNetworkMounts::SmbPaths << "SmbPaths";
  81. QTest::newRow("SymlinkDirectory") << KNetworkMounts::SymlinkDirectory << "SymlinkDirectory";
  82. QTest::newRow("SymlinkToNetworkMount") << KNetworkMounts::SymlinkToNetworkMount << "SymlinkToNetworkMount";
  83. QTest::newRow("Any") << KNetworkMounts::Any << "Any";
  84. }
  85. void KNetworkMountsTestStatic::testStaticKNetworkMountsTypeToString()
  86. {
  87. QFETCH(KNetworkMounts::KNetworkMountsType, type);
  88. QFETCH(QString, string);
  89. QCOMPARE(enumToString(type), string);
  90. }
  91. #include "moc_knetworkmountsteststatic.cpp"