File indexing completed on 2024-05-12 05:17:11
0001 /* 0002 SPDX-FileCopyrightText: 2016 Daniel Vrátil <dvratil@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include <QTest> 0008 0009 #include "../src/movejob.h" 0010 #include "kimap/imapset.h" 0011 #include "kimap/session.h" 0012 #include "kimaptest/fakeserver.h" 0013 0014 #include <QTest> 0015 0016 class MoveJobTest : public QObject 0017 { 0018 Q_OBJECT 0019 0020 private Q_SLOTS: 0021 0022 void testMove_data() 0023 { 0024 QTest::addColumn<bool>("uidBased"); 0025 QTest::addColumn<qint64>("id"); 0026 QTest::addColumn<qint64>("resultUid"); 0027 QTest::addColumn<QString>("mailbox"); 0028 QTest::addColumn<QList<QByteArray>>("scenario"); 0029 0030 QList<QByteArray> scenario; 0031 scenario << FakeServer::preauth() << "C: A000001 MOVE 3 \"foo\"" 0032 << "S: * OK [COPYUID 12345 3 7]" 0033 << "S: A000001 OK MOVE completed"; 0034 0035 QTest::newRow("not uid based") << false << qint64(3) << qint64(7) << QStringLiteral("foo") << scenario; 0036 0037 scenario.clear(); 0038 scenario << FakeServer::preauth() << "C: A000001 UID MOVE 1024 \"bar\"" 0039 << "S: * OK [COPYUID 12346 4 2048]" 0040 << "S: A000001 OK MOVE completed"; 0041 0042 QTest::newRow("uid based") << true << qint64(1024) << qint64(2048) << QStringLiteral("bar") << scenario; 0043 } 0044 0045 void testMove() 0046 { 0047 QFETCH(bool, uidBased); 0048 QFETCH(qint64, id); 0049 QFETCH(qint64, resultUid); 0050 QFETCH(QString, mailbox); 0051 QFETCH(QList<QByteArray>, scenario); 0052 0053 FakeServer fakeServer; 0054 fakeServer.setScenario(scenario); 0055 fakeServer.startAndWait(); 0056 0057 KIMAP::Session session(QStringLiteral("127.0.0.1"), 5989); 0058 0059 auto job = new KIMAP::MoveJob(&session); 0060 job->setMailBox(mailbox); 0061 job->setUidBased(uidBased); 0062 job->setSequenceSet(KIMAP::ImapSet(id)); 0063 bool result = job->exec(); 0064 QVERIFY(result); 0065 QCOMPARE(job->resultingUids(), KIMAP::ImapSet(resultUid)); 0066 0067 fakeServer.quit(); 0068 } 0069 }; 0070 0071 QTEST_GUILESS_MAIN(MoveJobTest) 0072 0073 #include "movejobtest.moc"