knetworkmountstestnoconfig.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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 "knetworkmountstestnoconfig.h"
  7. #include <KNetworkMounts>
  8. #include <QFile>
  9. #include <QStandardPaths>
  10. #include <QTest>
  11. QTEST_MAIN(KNetworkMountsTestNoConfig)
  12. void KNetworkMountsTestNoConfig::initTestCase()
  13. {
  14. QStandardPaths::setTestModeEnabled(true);
  15. m_configFileName = QStringLiteral("%1/network_mounts").arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation));
  16. QFile::remove(m_configFileName);
  17. QVERIFY(!QFile::exists(m_configFileName));
  18. }
  19. void KNetworkMountsTestNoConfig::cleanupTestCase()
  20. {
  21. QVERIFY(!QFile::exists(m_configFileName));
  22. QVERIFY(!KNetworkMounts::self()->isEnabled());
  23. KNetworkMounts::self()->sync();
  24. QFile::remove(m_configFileName);
  25. }
  26. void KNetworkMountsTestNoConfig::testNoConfigPathTypes_data()
  27. {
  28. QTest::addColumn<QString>("path");
  29. QTest::addColumn<KNetworkMounts::KNetworkMountsType>("type");
  30. QTest::newRow("NfsPaths/") << "/" << KNetworkMounts::NfsPaths;
  31. QTest::newRow("SmbPaths/") << "/" << KNetworkMounts::SmbPaths;
  32. QTest::newRow("SymlinkDirectory/") << "/" << KNetworkMounts::SymlinkDirectory;
  33. QTest::newRow("SymlinkToNetworkMount/") << "/" << KNetworkMounts::SymlinkToNetworkMount;
  34. QTest::newRow("Any/") << "/" << KNetworkMounts::Any;
  35. QTest::newRow("NfsPaths/mnt") << "/mnt" << KNetworkMounts::NfsPaths;
  36. QTest::newRow("SmbPaths/mnt") << "/mnt" << KNetworkMounts::SmbPaths;
  37. QTest::newRow("SymlinkDirectory/mnt") << "/mnt" << KNetworkMounts::SymlinkDirectory;
  38. QTest::newRow("SymlinkToNetworkMount/mnt") << "/mnt" << KNetworkMounts::SymlinkToNetworkMount;
  39. QTest::newRow("Any/mnt") << "/mnt" << KNetworkMounts::Any;
  40. QTest::newRow("NfsPaths/mnt/") << "/mnt/" << KNetworkMounts::NfsPaths;
  41. QTest::newRow("SmbPaths/mnt/") << "/mnt/" << KNetworkMounts::SmbPaths;
  42. QTest::newRow("SymlinkDirectory/mnt/") << "/mnt/" << KNetworkMounts::SymlinkDirectory;
  43. QTest::newRow("SymlinkToNetworkMount/mnt/") << "/mnt/" << KNetworkMounts::SymlinkToNetworkMount;
  44. QTest::newRow("Any/mnt/") << "/mnt/" << KNetworkMounts::Any;
  45. }
  46. void KNetworkMountsTestNoConfig::testNoConfigPathTypes()
  47. {
  48. QFETCH(QString, path);
  49. QFETCH(KNetworkMounts::KNetworkMountsType, type);
  50. QVERIFY(!QFile::exists(m_configFileName));
  51. QVERIFY(!KNetworkMounts::self()->isEnabled());
  52. QCOMPARE(KNetworkMounts::self()->paths(type), QStringList());
  53. QCOMPARE(KNetworkMounts::self()->paths(), QStringList());
  54. QCOMPARE(KNetworkMounts::self()->canonicalSymlinkPath(path), path);
  55. QVERIFY(!KNetworkMounts::self()->isSlowPath(path, type));
  56. QVERIFY(!KNetworkMounts::self()->isSlowPath(path));
  57. }
  58. void KNetworkMountsTestNoConfig::testNoConfigPathOptions_data()
  59. {
  60. QTest::addColumn<QString>("path");
  61. QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
  62. QTest::newRow("LowSideEffectsOptimizations/") << "/" << KNetworkMounts::LowSideEffectsOptimizations;
  63. QTest::newRow("MediumSideEffectsOptimizations/") << "/" << KNetworkMounts::MediumSideEffectsOptimizations;
  64. QTest::newRow("StrongSideEffectsOptimizations/") << "/" << KNetworkMounts::StrongSideEffectsOptimizations;
  65. QTest::newRow("KDirWatchUseINotify/") << "/" << KNetworkMounts::KDirWatchUseINotify;
  66. QTest::newRow("KDirWatchDontAddWatches/") << "/" << KNetworkMounts::KDirWatchDontAddWatches;
  67. QTest::newRow("SymlinkPathsUseCache/") << "/" << KNetworkMounts::SymlinkPathsUseCache;
  68. QTest::newRow("LowSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::LowSideEffectsOptimizations;
  69. QTest::newRow("MediumSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::MediumSideEffectsOptimizations;
  70. QTest::newRow("StrongSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::StrongSideEffectsOptimizations;
  71. QTest::newRow("KDirWatchUseINotify/mnt") << "/mnt" << KNetworkMounts::KDirWatchUseINotify;
  72. QTest::newRow("KDirWatchDontAddWatches/mnt") << "/mnt" << KNetworkMounts::KDirWatchDontAddWatches;
  73. QTest::newRow("SymlinkPathsUseCache/mnt") << "/mnt" << KNetworkMounts::SymlinkPathsUseCache;
  74. QTest::newRow("LowSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::LowSideEffectsOptimizations;
  75. QTest::newRow("MediumSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::MediumSideEffectsOptimizations;
  76. QTest::newRow("StrongSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::StrongSideEffectsOptimizations;
  77. QTest::newRow("KDirWatchUseINotify/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchUseINotify;
  78. QTest::newRow("KDirWatchDontAddWatches/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchDontAddWatches;
  79. QTest::newRow("SymlinkPathsUseCache/mnt/") << "/mnt/" << KNetworkMounts::SymlinkPathsUseCache;
  80. }
  81. void KNetworkMountsTestNoConfig::testNoConfigPathOptions()
  82. {
  83. QFETCH(QString, path);
  84. QFETCH(KNetworkMounts::KNetworkMountOption, option);
  85. QVERIFY(!KNetworkMounts::self()->isOptionEnabledForPath(path, option));
  86. }
  87. void KNetworkMountsTestNoConfig::testNoConfigOptions_data()
  88. {
  89. QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
  90. QTest::addColumn<bool>("default_value");
  91. QTest::addColumn<bool>("expected_value");
  92. QTest::newRow("LowSideEffectsOptimizations_false") << KNetworkMounts::LowSideEffectsOptimizations << false << false;
  93. QTest::newRow("LowSideEffectsOptimizations_true") << KNetworkMounts::LowSideEffectsOptimizations << true << true;
  94. QTest::newRow("MediumSideEffectsOptimizationss_false") << KNetworkMounts::MediumSideEffectsOptimizations << false << false;
  95. QTest::newRow("MediumSideEffectsOptimizations_true") << KNetworkMounts::MediumSideEffectsOptimizations << true << true;
  96. QTest::newRow("StrongSideEffectsOptimizations_false") << KNetworkMounts::StrongSideEffectsOptimizations << false << false;
  97. QTest::newRow("StrongSideEffectsOptimizationss_true") << KNetworkMounts::StrongSideEffectsOptimizations << true << true;
  98. QTest::newRow("KDirWatchUseINotify_false") << KNetworkMounts::KDirWatchUseINotify << false << false;
  99. QTest::newRow("KDirWatchUseINotifys_true") << KNetworkMounts::KDirWatchUseINotify << true << true;
  100. QTest::newRow("KDirWatchDontAddWatches_false") << KNetworkMounts::KDirWatchDontAddWatches << false << false;
  101. QTest::newRow("KDirWatchDontAddWatches_true") << KNetworkMounts::KDirWatchDontAddWatches << true << true;
  102. QTest::newRow("SymlinkPathsUseCache_false") << KNetworkMounts::SymlinkPathsUseCache << false << false;
  103. QTest::newRow("SymlinkPathsUseCache_true") << KNetworkMounts::SymlinkPathsUseCache << true << true;
  104. }
  105. void KNetworkMountsTestNoConfig::testNoConfigOptions()
  106. {
  107. QFETCH(KNetworkMounts::KNetworkMountOption, option);
  108. QFETCH(bool, default_value);
  109. QFETCH(bool, expected_value);
  110. QCOMPARE(KNetworkMounts::self()->isOptionEnabled(option, default_value), expected_value);
  111. }
  112. #include "moc_knetworkmountstestnoconfig.cpp"