File: knetworkmountstestnoconfig.cpp

package info (click to toggle)
kcoreaddons 5.116.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,660 kB
  • sloc: cpp: 23,523; xml: 3,284; sh: 34; makefile: 7
file content (144 lines) | stat: -rw-r--r-- 7,071 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/*
    This software is a contribution of the LiMux project of the city of Munich.
    SPDX-FileCopyrightText: 2021 Robert Hoffmann <robert@roberthoffmann.de>

    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#include "knetworkmountstestnoconfig.h"

#include <KNetworkMounts>

#include <QFile>
#include <QStandardPaths>
#include <QTest>

QTEST_MAIN(KNetworkMountsTestNoConfig)

void KNetworkMountsTestNoConfig::initTestCase()
{
    QStandardPaths::setTestModeEnabled(true);
    m_configFileName = QStringLiteral("%1/network_mounts").arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation));

    QFile::remove(m_configFileName);
    QVERIFY(!QFile::exists(m_configFileName));
}

void KNetworkMountsTestNoConfig::cleanupTestCase()
{
    QVERIFY(!QFile::exists(m_configFileName));
    QVERIFY(!KNetworkMounts::self()->isEnabled());

    KNetworkMounts::self()->sync();
    QFile::remove(m_configFileName);
}

void KNetworkMountsTestNoConfig::testNoConfigPathTypes_data()
{
    QTest::addColumn<QString>("path");
    QTest::addColumn<KNetworkMounts::KNetworkMountsType>("type");

    QTest::newRow("NfsPaths/") << "/" << KNetworkMounts::NfsPaths;
    QTest::newRow("SmbPaths/") << "/" << KNetworkMounts::SmbPaths;
    QTest::newRow("SymlinkDirectory/") << "/" << KNetworkMounts::SymlinkDirectory;
    QTest::newRow("SymlinkToNetworkMount/") << "/" << KNetworkMounts::SymlinkToNetworkMount;
    QTest::newRow("Any/") << "/" << KNetworkMounts::Any;

    QTest::newRow("NfsPaths/mnt") << "/mnt" << KNetworkMounts::NfsPaths;
    QTest::newRow("SmbPaths/mnt") << "/mnt" << KNetworkMounts::SmbPaths;
    QTest::newRow("SymlinkDirectory/mnt") << "/mnt" << KNetworkMounts::SymlinkDirectory;
    QTest::newRow("SymlinkToNetworkMount/mnt") << "/mnt" << KNetworkMounts::SymlinkToNetworkMount;
    QTest::newRow("Any/mnt") << "/mnt" << KNetworkMounts::Any;

    QTest::newRow("NfsPaths/mnt/") << "/mnt/" << KNetworkMounts::NfsPaths;
    QTest::newRow("SmbPaths/mnt/") << "/mnt/" << KNetworkMounts::SmbPaths;
    QTest::newRow("SymlinkDirectory/mnt/") << "/mnt/" << KNetworkMounts::SymlinkDirectory;
    QTest::newRow("SymlinkToNetworkMount/mnt/") << "/mnt/" << KNetworkMounts::SymlinkToNetworkMount;
    QTest::newRow("Any/mnt/") << "/mnt/" << KNetworkMounts::Any;
}

void KNetworkMountsTestNoConfig::testNoConfigPathTypes()
{
    QFETCH(QString, path);
    QFETCH(KNetworkMounts::KNetworkMountsType, type);

    QVERIFY(!QFile::exists(m_configFileName));
    QVERIFY(!KNetworkMounts::self()->isEnabled());

    QCOMPARE(KNetworkMounts::self()->paths(type), QStringList());
    QCOMPARE(KNetworkMounts::self()->paths(), QStringList());
    QCOMPARE(KNetworkMounts::self()->canonicalSymlinkPath(path), path);
    QVERIFY(!KNetworkMounts::self()->isSlowPath(path, type));
    QVERIFY(!KNetworkMounts::self()->isSlowPath(path));
}

void KNetworkMountsTestNoConfig::testNoConfigPathOptions_data()
{
    QTest::addColumn<QString>("path");
    QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");

    QTest::newRow("LowSideEffectsOptimizations/") << "/" << KNetworkMounts::LowSideEffectsOptimizations;
    QTest::newRow("MediumSideEffectsOptimizations/") << "/" << KNetworkMounts::MediumSideEffectsOptimizations;
    QTest::newRow("StrongSideEffectsOptimizations/") << "/" << KNetworkMounts::StrongSideEffectsOptimizations;
    QTest::newRow("KDirWatchUseINotify/") << "/" << KNetworkMounts::KDirWatchUseINotify;
    QTest::newRow("KDirWatchDontAddWatches/") << "/" << KNetworkMounts::KDirWatchDontAddWatches;
    QTest::newRow("SymlinkPathsUseCache/") << "/" << KNetworkMounts::SymlinkPathsUseCache;

    QTest::newRow("LowSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::LowSideEffectsOptimizations;
    QTest::newRow("MediumSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::MediumSideEffectsOptimizations;
    QTest::newRow("StrongSideEffectsOptimizations/mnt") << "/mnt" << KNetworkMounts::StrongSideEffectsOptimizations;
    QTest::newRow("KDirWatchUseINotify/mnt") << "/mnt" << KNetworkMounts::KDirWatchUseINotify;
    QTest::newRow("KDirWatchDontAddWatches/mnt") << "/mnt" << KNetworkMounts::KDirWatchDontAddWatches;
    QTest::newRow("SymlinkPathsUseCache/mnt") << "/mnt" << KNetworkMounts::SymlinkPathsUseCache;

    QTest::newRow("LowSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::LowSideEffectsOptimizations;
    QTest::newRow("MediumSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::MediumSideEffectsOptimizations;
    QTest::newRow("StrongSideEffectsOptimizations/mnt/") << "/mnt/" << KNetworkMounts::StrongSideEffectsOptimizations;
    QTest::newRow("KDirWatchUseINotify/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchUseINotify;
    QTest::newRow("KDirWatchDontAddWatches/mnt/") << "/mnt/" << KNetworkMounts::KDirWatchDontAddWatches;
    QTest::newRow("SymlinkPathsUseCache/mnt/") << "/mnt/" << KNetworkMounts::SymlinkPathsUseCache;
}

void KNetworkMountsTestNoConfig::testNoConfigPathOptions()
{
    QFETCH(QString, path);
    QFETCH(KNetworkMounts::KNetworkMountOption, option);

    QVERIFY(!KNetworkMounts::self()->isOptionEnabledForPath(path, option));
}

void KNetworkMountsTestNoConfig::testNoConfigOptions_data()
{
    QTest::addColumn<KNetworkMounts::KNetworkMountOption>("option");
    QTest::addColumn<bool>("default_value");
    QTest::addColumn<bool>("expected_value");

    QTest::newRow("LowSideEffectsOptimizations_false") << KNetworkMounts::LowSideEffectsOptimizations << false << false;
    QTest::newRow("LowSideEffectsOptimizations_true") << KNetworkMounts::LowSideEffectsOptimizations << true << true;

    QTest::newRow("MediumSideEffectsOptimizationss_false") << KNetworkMounts::MediumSideEffectsOptimizations << false << false;
    QTest::newRow("MediumSideEffectsOptimizations_true") << KNetworkMounts::MediumSideEffectsOptimizations << true << true;

    QTest::newRow("StrongSideEffectsOptimizations_false") << KNetworkMounts::StrongSideEffectsOptimizations << false << false;
    QTest::newRow("StrongSideEffectsOptimizationss_true") << KNetworkMounts::StrongSideEffectsOptimizations << true << true;

    QTest::newRow("KDirWatchUseINotify_false") << KNetworkMounts::KDirWatchUseINotify << false << false;
    QTest::newRow("KDirWatchUseINotifys_true") << KNetworkMounts::KDirWatchUseINotify << true << true;

    QTest::newRow("KDirWatchDontAddWatches_false") << KNetworkMounts::KDirWatchDontAddWatches << false << false;
    QTest::newRow("KDirWatchDontAddWatches_true") << KNetworkMounts::KDirWatchDontAddWatches << true << true;

    QTest::newRow("SymlinkPathsUseCache_false") << KNetworkMounts::SymlinkPathsUseCache << false << false;
    QTest::newRow("SymlinkPathsUseCache_true") << KNetworkMounts::SymlinkPathsUseCache << true << true;
}

void KNetworkMountsTestNoConfig::testNoConfigOptions()
{
    QFETCH(KNetworkMounts::KNetworkMountOption, option);
    QFETCH(bool, default_value);
    QFETCH(bool, expected_value);

    QCOMPARE(KNetworkMounts::self()->isOptionEnabled(option, default_value), expected_value);
}

#include "moc_knetworkmountstestnoconfig.cpp"