File indexing completed on 2024-05-12 05:17:10
0001 /* 0002 SPDX-FileCopyrightText: 2020 Daniel Vrátil <dvratil@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include <QTest> 0008 0009 #include "kimap/enablejob.h" 0010 #include "kimap/session.h" 0011 #include "kimaptest/fakeserver.h" 0012 0013 #include <QTest> 0014 0015 Q_DECLARE_METATYPE(QList<QList<QByteArray>>) 0016 0017 class EnableJobTest : public QObject 0018 { 0019 Q_OBJECT 0020 0021 private Q_SLOTS: 0022 0023 void testEnable_data() 0024 { 0025 QTest::addColumn<QList<QByteArray>>("scenario"); 0026 QTest::addColumn<QStringList>("reqCapabilities"); 0027 QTest::addColumn<QStringList>("supportedCaps"); 0028 0029 QList<QByteArray> scenario; 0030 scenario << FakeServer::preauth() << "C: A000001 ENABLE CONDSTORE X-GOOD-IDEA" 0031 << "S: * ENABLED X-GOOD-IDEA" 0032 << "S: A000001 OK Enabled"; 0033 QStringList reqCapabilities = {QStringLiteral("CONDSTORE"), QStringLiteral("X-GOOD-IDEA")}; 0034 QStringList supportedCaps = {QStringLiteral("X-GOOD-IDEA")}; 0035 QTest::newRow("one feature") << scenario << reqCapabilities << supportedCaps; 0036 0037 scenario.clear(); 0038 scenario << FakeServer::preauth() << "C: A000001 ENABLE FEATURE1 FEATURE2" 0039 << "S: * ENABLED FEATURE1 FEATURE2" 0040 << "S: A000001 OK Enabled"; 0041 reqCapabilities = QStringList{QStringLiteral("FEATURE1"), QStringLiteral("FEATURE2")}; 0042 supportedCaps = QStringList{QStringLiteral("FEATURE1"), QStringLiteral("FEATURE2")}; 0043 QTest::newRow("both features") << scenario << reqCapabilities << supportedCaps; 0044 } 0045 0046 void testEnable() 0047 { 0048 QFETCH(QList<QByteArray>, scenario); 0049 QFETCH(QStringList, reqCapabilities); 0050 QFETCH(QStringList, supportedCaps); 0051 0052 FakeServer fakeServer; 0053 fakeServer.setScenario(scenario); 0054 fakeServer.startAndWait(); 0055 0056 KIMAP::Session session(QStringLiteral("127.0.0.1"), 5989); 0057 0058 auto job = new KIMAP::EnableJob(&session); 0059 job->setCapabilities(reqCapabilities); 0060 QVERIFY(job->exec()); 0061 0062 QCOMPARE(job->enabledCapabilities(), supportedCaps); 0063 0064 fakeServer.quit(); 0065 } 0066 }; 0067 0068 QTEST_GUILESS_MAIN(EnableJobTest) 0069 0070 #include "enablejobtest.moc"