File indexing completed on 2025-02-02 05:08:35

0001 /*
0002     SPDX-FileCopyrightText: 2014 Sandro Knauß <knauss@kolabsys.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <QDir>
0008 #include <QObject>
0009 #include <QTest>
0010 
0011 #include <KConfig>
0012 #include <KConfigGroup>
0013 #include <QTemporaryFile>
0014 
0015 #include "../ldap.h"
0016 #include <KLDAPWidgets/LdapClientSearchConfig>
0017 
0018 class TLdap : public Ldap
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit TLdap(QObject *parent = nullptr)
0023         : Ldap(parent)
0024     {
0025         mTempFile.open();
0026         mTempFile.close();
0027         mConfig = new KConfig(mTempFile.fileName(), KConfig::SimpleConfig);
0028         // TODO m_clientSearchConfig->askForWallet(false);
0029     }
0030 
0031     ~TLdap() override
0032     {
0033         mTempFile.close();
0034         delete mConfig;
0035     }
0036 
0037     KConfig *config() const override
0038     {
0039         mConfig->reparseConfiguration();
0040         return mConfig;
0041     }
0042 
0043     QTemporaryFile mTempFile;
0044     KConfig *mConfig = nullptr;
0045 };
0046 
0047 class LdapTest : public QObject
0048 {
0049     Q_OBJECT
0050 private Q_SLOTS:
0051     void testDestroy()
0052     {
0053 #if 0 // TODO port it
0054         TLdap l;
0055         QFile::remove(l.mTempFile.fileName());
0056         QFile::copy(QStringLiteral(TEST_DATA_DIR) + QStringLiteral("/ldap.cfg"), l.mTempFile.fileName());
0057         KLDAP::LdapClientSearchConfig csc;
0058         csc.askForWallet(false);
0059 
0060         KConfigGroup group = l.config()->group("LDAP");
0061         int cSelHosts = group.readEntry("NumSelectedHosts", 0);
0062         int cHosts = group.readEntry("NumHosts", 0);
0063         QCOMPARE(cSelHosts, 3);
0064         QCOMPARE(cHosts, 1);
0065         QList<KLDAP::LdapServer> selHosts;
0066         selHosts.reserve(cSelHosts);
0067 
0068         for (int i = 0; i < cSelHosts; ++i) {
0069             KLDAP::LdapServer server;
0070             csc.readConfig(server, group, i, true);
0071             selHosts.append(server);
0072         }
0073         QList<KLDAP::LdapServer> hosts;
0074         hosts.reserve(cHosts);
0075         for (int i = 0; i < cHosts; ++i) {
0076             KLDAP::LdapServer server;
0077             csc.readConfig(server, group, i, false);
0078             hosts.append(server);
0079         }
0080 
0081         l.m_entry = 0;
0082         l.destroy();
0083         group = l.config()->group("LDAP");
0084 
0085         QCOMPARE(group.readEntry("NumSelectedHosts", 0), 2);
0086         QCOMPARE(group.readEntry("NumHosts", 0), 1);
0087         KLDAP::LdapServer server;
0088         csc.readConfig(server, group, 0, false);
0089         QCOMPARE(server.host(), hosts.at(0).host());
0090 
0091         csc.readConfig(server, group, 0, true);
0092         QCOMPARE(server.host(), selHosts.at(1).host());
0093         csc.readConfig(server, group, 1, true);
0094         QCOMPARE(server.host(), selHosts.at(2).host());
0095 #endif
0096     }
0097 };
0098 
0099 QTEST_GUILESS_MAIN(LdapTest)
0100 
0101 #include "ldaptest.moc"