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"