File indexing completed on 2024-05-12 05:17:10
0001 /* 0002 SPDX-FileCopyrightText: 2015 Christian Mollekopf <mollekopf@kolabsys.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "kimap/idjob.h" 0008 #include "kimap/session.h" 0009 #include "kimaptest/fakeserver.h" 0010 0011 #include <QTest> 0012 0013 using ArrayMap = QMap<QByteArray, QByteArray>; 0014 Q_DECLARE_METATYPE(ArrayMap) 0015 0016 class IdJobTest : public QObject 0017 { 0018 Q_OBJECT 0019 0020 private Q_SLOTS: 0021 0022 void testId_data() 0023 { 0024 QTest::addColumn<QList<QByteArray>>("scenario"); 0025 QTest::addColumn<ArrayMap>("values"); 0026 QList<QByteArray> scenario; 0027 scenario << "S: * PREAUTH" 0028 << R"(C: A000001 ID ("name" "clientid"))" 0029 << "S: * ID NIL" 0030 << "S: A000001 OK ID completed"; 0031 0032 ArrayMap values; 0033 values.insert("name", "clientid"); 0034 QTest::newRow("good") << scenario << values; 0035 } 0036 0037 void testId() 0038 { 0039 QFETCH(QList<QByteArray>, scenario); 0040 QFETCH(ArrayMap, values); 0041 0042 FakeServer fakeServer; 0043 fakeServer.setScenario(scenario); 0044 fakeServer.startAndWait(); 0045 KIMAP::Session session(QStringLiteral("127.0.0.1"), 5989); 0046 0047 auto job = new KIMAP::IdJob(&session); 0048 const auto keys = values.keys(); 0049 for (const QByteArray &key : keys) { 0050 job->setField(key, values.value(key)); 0051 } 0052 bool result = job->exec(); 0053 QVERIFY(result); 0054 fakeServer.quit(); 0055 } 0056 }; 0057 0058 QTEST_GUILESS_MAIN(IdJobTest) 0059 0060 #include "idjobtest.moc"