File indexing completed on 2025-02-16 04:55:53
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "findaccountinfojobtest.h" 0008 #include "../abstractakonadiimapsettinginterface.h" 0009 #include "../sieveimappasswordprovider.h" 0010 #include "../util.h" 0011 #include "akonadiimapsettinginterfacetest.h" 0012 #include "util/findaccountinfojob.h" 0013 #include <QSignalSpy> 0014 #include <QTest> 0015 QTEST_MAIN(FindAccountInfoJobTest) 0016 0017 class DataImapPasswordProvider : public KSieveCore::SieveImapPasswordProvider 0018 { 0019 public: 0020 DataImapPasswordProvider(AkonadiImapSettingInterfaceDataTest *data) 0021 : mData(data) 0022 { 0023 } 0024 0025 void passwords(const QString &identifier) override 0026 { 0027 Q_UNUSED(identifier) 0028 Q_EMIT passwordsRequested(mData->password, mData->sieveCustomPassword); 0029 } 0030 0031 AkonadiImapSettingInterfaceDataTest *const mData; 0032 }; 0033 0034 FindAccountInfoJobTest::FindAccountInfoJobTest(QObject *parent) 0035 : QObject(parent) 0036 { 0037 } 0038 0039 void FindAccountInfoJobTest::shouldReturnEmptyInfo() 0040 { 0041 auto job = new KSieveCore::FindAccountInfoJob; 0042 job->setIdentifier(QStringLiteral("dummy")); 0043 job->setProvider({}); 0044 QSignalSpy spy(job, &KSieveCore::FindAccountInfoJob::findAccountInfoFinished); 0045 job->start(); 0046 spy.wait(1000); 0047 QCOMPARE(spy.count(), 1); 0048 const auto info = spy.at(0).at(0).value<KSieveCore::Util::AccountInfo>(); 0049 QVERIFY(!info.sieveImapAccountSettings.isValid()); 0050 } 0051 0052 void FindAccountInfoJobTest::shouldAssignValue_data() 0053 { 0054 QTest::addColumn<AkonadiImapSettingInterfaceDataTest>("data"); 0055 QTest::addColumn<KSieveCore::Util::AccountInfo>("accountInfo"); 0056 QTest::addColumn<bool>("sieveImapAccountValid"); 0057 QTest::addColumn<bool>("useVacationFile"); 0058 QTest::newRow("default") << AkonadiImapSettingInterfaceDataTest() << KSieveCore::Util::AccountInfo() << false << false; 0059 0060 { 0061 const int imapPort = 53; 0062 AkonadiImapSettingInterfaceDataTest data1; 0063 data1.sieveSupport = true; 0064 data1.sieveReuseConfig = true; 0065 data1.imapServer = QStringLiteral("foo.bla.com"); 0066 data1.userName = QStringLiteral("kde"); 0067 data1.sievePort = 543; 0068 data1.imapPort = imapPort; 0069 data1.sieveCustomUsername = QString(); 0070 data1.sieveCustomAuthentification = QString(); 0071 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0072 data1.safety = QStringLiteral("SAFETY"); 0073 data1.alternateAuthentication = -1; 0074 // MailTransport::Transport::EnumAuthenticationType::CRAM_MD5 = 2 0075 data1.authentication = 2; 0076 data1.sieveAlternateUrl = QString(); 0077 data1.password = QStringLiteral("password1"); 0078 data1.sieveCustomPassword = QString(); 0079 0080 KSieveCore::Util::AccountInfo info1; 0081 const QString password = QStringLiteral("password1"); 0082 const QString userName = QStringLiteral("kde"); 0083 const int port = 543; 0084 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://foo.bla.com?x-mech=CRAM-MD5")); 0085 info1.sieveUrl.setPassword(password); 0086 info1.sieveUrl.setUserName(userName); 0087 info1.sieveUrl.setPort(port); 0088 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0089 info1.sieveImapAccountSettings.setPort(imapPort); 0090 info1.sieveImapAccountSettings.setUserName(userName); 0091 info1.sieveImapAccountSettings.setPassword(password); 0092 0093 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::Plain); 0094 // TODO fix encryptionmode 0095 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0096 0097 QTest::newRow("sievereuseconfig1") << data1 << info1 << true << false; 0098 } 0099 0100 { 0101 const int imapPort = 53; 0102 AkonadiImapSettingInterfaceDataTest data1; 0103 data1.sieveSupport = true; 0104 data1.sieveReuseConfig = true; 0105 data1.imapServer = QStringLiteral("foo.bla.com"); 0106 data1.userName = QStringLiteral("kde"); 0107 data1.sievePort = 3; 0108 data1.imapPort = imapPort; 0109 data1.sieveCustomUsername = QString(); 0110 data1.sieveCustomAuthentification = QString(); 0111 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0112 data1.safety = QStringLiteral("SAFETY"); 0113 data1.alternateAuthentication = -1; 0114 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0115 data1.authentication = 0; 0116 data1.sieveAlternateUrl = QString(); 0117 data1.password = QStringLiteral("password2"); 0118 data1.sieveCustomPassword = QString(); 0119 0120 KSieveCore::Util::AccountInfo info1; 0121 const QString password = QStringLiteral("password2"); 0122 const QString userName = QStringLiteral("kde"); 0123 const int port = 3; 0124 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://foo.bla.com/vacation.siv?x-mech=LOGIN")); 0125 info1.sieveUrl.setPassword(password); 0126 info1.sieveUrl.setUserName(userName); 0127 info1.sieveUrl.setPort(port); 0128 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0129 info1.sieveImapAccountSettings.setPort(imapPort); 0130 info1.sieveImapAccountSettings.setUserName(userName); 0131 info1.sieveImapAccountSettings.setPassword(password); 0132 0133 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::ClearText); 0134 // TODO fix encryptionmode 0135 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0136 0137 QTest::newRow("sievereuseconfig2") << data1 << info1 << true << true; 0138 } 0139 { 0140 const int imapPort = 53; 0141 AkonadiImapSettingInterfaceDataTest data1; 0142 data1.sieveSupport = true; 0143 data1.sieveReuseConfig = true; 0144 data1.imapServer = QStringLiteral("foo.bla.com"); 0145 data1.userName = QStringLiteral("kde"); 0146 data1.sievePort = 3; 0147 data1.imapPort = imapPort; 0148 data1.sieveCustomUsername = QString(); 0149 data1.sieveCustomAuthentification = QString(); 0150 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0151 data1.safety = QStringLiteral("SSL"); 0152 data1.alternateAuthentication = -1; 0153 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0154 data1.authentication = 0; 0155 data1.sieveAlternateUrl = QString(); 0156 data1.password = QStringLiteral("password2"); 0157 data1.sieveCustomPassword = QString(); 0158 0159 KSieveCore::Util::AccountInfo info1; 0160 const QString password = QStringLiteral("password2"); 0161 const QString userName = QStringLiteral("kde"); 0162 const int port = 3; 0163 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://foo.bla.com/vacation.siv?x-mech=LOGIN")); 0164 info1.sieveUrl.setPassword(password); 0165 info1.sieveUrl.setUserName(userName); 0166 info1.sieveUrl.setPort(port); 0167 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0168 info1.sieveImapAccountSettings.setPort(imapPort); 0169 info1.sieveImapAccountSettings.setUserName(userName); 0170 info1.sieveImapAccountSettings.setPassword(password); 0171 0172 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::ClearText); 0173 // TODO fix encryptionmode 0174 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::SSLorTLS); 0175 0176 QTest::newRow("sievereuseconfig2ssl") << data1 << info1 << true << true; 0177 } 0178 0179 { 0180 const int imapPort = 53; 0181 AkonadiImapSettingInterfaceDataTest data1; 0182 data1.sieveSupport = true; 0183 data1.sieveReuseConfig = true; 0184 data1.imapServer = QStringLiteral("foo.bla.com"); 0185 data1.userName = QStringLiteral("kde"); 0186 data1.sievePort = 3; 0187 data1.imapPort = imapPort; 0188 data1.sieveCustomUsername = QString(); 0189 data1.sieveCustomAuthentification = QString(); 0190 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0191 data1.safety = QStringLiteral("STARTTLS"); 0192 data1.alternateAuthentication = -1; 0193 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0194 data1.authentication = 0; 0195 data1.sieveAlternateUrl = QString(); 0196 data1.password = QStringLiteral("password2"); 0197 data1.sieveCustomPassword = QString(); 0198 0199 KSieveCore::Util::AccountInfo info1; 0200 const QString password = QStringLiteral("password2"); 0201 const QString userName = QStringLiteral("kde"); 0202 const int port = 3; 0203 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://foo.bla.com/vacation.siv?x-mech=LOGIN")); 0204 info1.sieveUrl.setPassword(password); 0205 info1.sieveUrl.setUserName(userName); 0206 info1.sieveUrl.setPort(port); 0207 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0208 info1.sieveImapAccountSettings.setPort(imapPort); 0209 info1.sieveImapAccountSettings.setUserName(userName); 0210 info1.sieveImapAccountSettings.setPassword(password); 0211 0212 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::ClearText); 0213 // TODO fix encryptionmode 0214 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::STARTTLS); 0215 0216 QTest::newRow("sievereuseconfig2startls") << data1 << info1 << true << true; 0217 } 0218 0219 { 0220 const int imapPort = 53; 0221 AkonadiImapSettingInterfaceDataTest data1; 0222 data1.sieveSupport = false; 0223 data1.sieveReuseConfig = true; 0224 data1.imapServer = QStringLiteral("foo.bla.com"); 0225 data1.userName = QStringLiteral("kde"); 0226 data1.sievePort = 3; 0227 data1.imapPort = imapPort; 0228 data1.sieveCustomUsername = QString(); 0229 data1.sieveCustomAuthentification = QString(); 0230 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0231 data1.safety = QStringLiteral("SAFETY"); 0232 data1.alternateAuthentication = -1; 0233 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0234 data1.authentication = 0; 0235 data1.sieveAlternateUrl = QString(); 0236 data1.password = QStringLiteral("password2"); 0237 data1.sieveCustomPassword = QString(); 0238 0239 KSieveCore::Util::AccountInfo info1; 0240 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::Plain); 0241 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0242 0243 QTest::newRow("dontusesieve") << data1 << info1 << false << true; 0244 } 0245 0246 { 0247 const QString sievePasswd = QStringLiteral("password3"); 0248 const QString imapPasswd = QStringLiteral("password2"); 0249 const QString imapUser = QStringLiteral("kde"); 0250 const QString sieveUser = QStringLiteral("foo1"); 0251 const int sievePort = 3; 0252 const int imapPort = 53; 0253 AkonadiImapSettingInterfaceDataTest data1; 0254 data1.sieveSupport = true; 0255 data1.sieveReuseConfig = false; 0256 data1.imapServer = QStringLiteral("foo.bla.com"); 0257 data1.userName = imapUser; 0258 data1.sievePort = sievePort; 0259 data1.imapPort = imapPort; 0260 data1.sieveCustomUsername = sieveUser; 0261 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0262 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0263 data1.safety = QStringLiteral("SAFETY"); 0264 data1.alternateAuthentication = 4; 0265 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0266 data1.authentication = 3; 0267 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0268 data1.password = imapPasswd; 0269 data1.sieveCustomPassword = sievePasswd; 0270 0271 KSieveCore::Util::AccountInfo info1; 0272 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com/vacation.siv?x-mech=GSSAPI")); 0273 info1.sieveUrl.setPassword(sievePasswd); 0274 info1.sieveUrl.setUserName(sieveUser); 0275 info1.sieveUrl.setPort(sievePort); 0276 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0277 info1.sieveImapAccountSettings.setPort(imapPort); 0278 info1.sieveImapAccountSettings.setUserName(imapUser); 0279 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0280 0281 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::CramMD5); 0282 0283 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0284 0285 QTest::newRow("sievereusecustomconfig1") << data1 << info1 << true << true; 0286 } 0287 { 0288 const QString sievePasswd = QStringLiteral("password3"); 0289 const QString imapPasswd = QStringLiteral("password2"); 0290 const QString imapUser = QStringLiteral("kde"); 0291 const QString sieveUser = QStringLiteral("foo1"); 0292 const int sievePort = 3; 0293 const int imapPort = 53; 0294 AkonadiImapSettingInterfaceDataTest data1; 0295 data1.sieveSupport = true; 0296 data1.sieveReuseConfig = false; 0297 data1.imapServer = QStringLiteral("foo.bla.com"); 0298 data1.userName = imapUser; 0299 data1.sievePort = sievePort; 0300 data1.imapPort = imapPort; 0301 data1.sieveCustomUsername = sieveUser; 0302 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0303 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0304 data1.safety = QStringLiteral("SAFETY"); 0305 data1.alternateAuthentication = 4; 0306 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0307 data1.authentication = 3; 0308 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0309 data1.password = imapPasswd; 0310 data1.sieveCustomPassword = sievePasswd; 0311 0312 KSieveCore::Util::AccountInfo info1; 0313 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com?x-mech=GSSAPI")); 0314 info1.sieveUrl.setPassword(sievePasswd); 0315 info1.sieveUrl.setUserName(sieveUser); 0316 info1.sieveUrl.setPort(sievePort); 0317 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0318 info1.sieveImapAccountSettings.setPort(imapPort); 0319 info1.sieveImapAccountSettings.setUserName(imapUser); 0320 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0321 0322 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::CramMD5); 0323 0324 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0325 0326 QTest::newRow("sievereusecustomconfig1withoutvacationfile") << data1 << info1 << true << false; 0327 } 0328 0329 { 0330 const QString sievePasswd = QStringLiteral("password3"); 0331 const QString imapPasswd = QStringLiteral("password2"); 0332 const QString imapUser = QStringLiteral("kde"); 0333 const QString sieveUser = QStringLiteral("foo1"); 0334 const int sievePort = 3; 0335 const int imapPort = 53; 0336 AkonadiImapSettingInterfaceDataTest data1; 0337 data1.sieveSupport = true; 0338 data1.sieveReuseConfig = false; 0339 data1.imapServer = QStringLiteral("foo.bla.com"); 0340 data1.userName = imapUser; 0341 data1.sievePort = sievePort; 0342 data1.imapPort = imapPort; 0343 data1.sieveCustomUsername = sieveUser; 0344 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0345 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0346 data1.safety = QStringLiteral("SSL"); 0347 data1.alternateAuthentication = 4; 0348 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 0 0349 data1.authentication = 3; 0350 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0351 data1.password = imapPasswd; 0352 data1.sieveCustomPassword = sievePasswd; 0353 0354 KSieveCore::Util::AccountInfo info1; 0355 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com?x-mech=GSSAPI")); 0356 info1.sieveUrl.setPassword(sievePasswd); 0357 info1.sieveUrl.setUserName(sieveUser); 0358 info1.sieveUrl.setPort(sievePort); 0359 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0360 info1.sieveImapAccountSettings.setPort(imapPort); 0361 info1.sieveImapAccountSettings.setUserName(imapUser); 0362 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0363 0364 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::CramMD5); 0365 0366 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::SSLorTLS); 0367 0368 QTest::newRow("sievereusecustomconfig1withoutvacationfileSSL") << data1 << info1 << true << false; 0369 } 0370 0371 { 0372 const QString sievePasswd = QStringLiteral("password3"); 0373 const QString imapPasswd = QStringLiteral("password2"); 0374 const QString imapUser = QStringLiteral("kde"); 0375 const QString sieveUser = QStringLiteral("foo1"); 0376 const int sievePort = 3; 0377 const int imapPort = 53; 0378 AkonadiImapSettingInterfaceDataTest data1; 0379 data1.sieveSupport = true; 0380 data1.sieveReuseConfig = false; 0381 data1.imapServer = QStringLiteral("foo.bla.com"); 0382 data1.userName = imapUser; 0383 data1.sievePort = sievePort; 0384 data1.imapPort = imapPort; 0385 data1.sieveCustomUsername = sieveUser; 0386 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0387 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0388 data1.safety = QStringLiteral("STARTTLS"); 0389 data1.alternateAuthentication = 4; 0390 // MailTransport::Transport::EnumAuthenticationType::DigestMD5 = 3 0391 data1.authentication = 3; 0392 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0393 data1.password = imapPasswd; 0394 data1.sieveCustomPassword = sievePasswd; 0395 0396 KSieveCore::Util::AccountInfo info1; 0397 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com?x-mech=GSSAPI")); 0398 info1.sieveUrl.setPassword(sievePasswd); 0399 info1.sieveUrl.setUserName(sieveUser); 0400 info1.sieveUrl.setPort(sievePort); 0401 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0402 info1.sieveImapAccountSettings.setPort(imapPort); 0403 info1.sieveImapAccountSettings.setUserName(imapUser); 0404 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0405 0406 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::CramMD5); 0407 0408 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::STARTTLS); 0409 0410 QTest::newRow("sievereusecustomconfig1withoutvacationfileStarttls") << data1 << info1 << true << false; 0411 } 0412 0413 { 0414 const QString sievePasswd = QStringLiteral("password3"); 0415 const QString imapPasswd = QStringLiteral("password2"); 0416 const QString imapUser = QStringLiteral("kde"); 0417 const QString sieveUser = QStringLiteral("foo1"); 0418 const int sievePort = 3; 0419 const int imapPort = 53; 0420 AkonadiImapSettingInterfaceDataTest data1; 0421 data1.sieveSupport = true; 0422 data1.sieveReuseConfig = false; 0423 data1.imapServer = QStringLiteral("foo.bla.com"); 0424 data1.userName = imapUser; 0425 data1.sievePort = sievePort; 0426 data1.imapPort = imapPort; 0427 data1.sieveCustomUsername = sieveUser; 0428 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0429 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0430 data1.safety = QStringLiteral("STARTTLS"); 0431 data1.alternateAuthentication = 4; 0432 // MailTransport::Transport::EnumAuthenticationType::DigestMD5 = 3 0433 data1.authentication = 4; 0434 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0435 data1.password = imapPasswd; 0436 data1.sieveCustomPassword = sievePasswd; 0437 0438 KSieveCore::Util::AccountInfo info1; 0439 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com?x-mech=GSSAPI")); 0440 info1.sieveUrl.setPassword(sievePasswd); 0441 info1.sieveUrl.setUserName(sieveUser); 0442 info1.sieveUrl.setPort(sievePort); 0443 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0444 info1.sieveImapAccountSettings.setPort(imapPort); 0445 info1.sieveImapAccountSettings.setUserName(imapUser); 0446 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0447 0448 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::DigestMD5); 0449 0450 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::STARTTLS); 0451 0452 QTest::newRow("sievereusecustomconfig1withoutvacationfileStarttls2") << data1 << info1 << true << false; 0453 } 0454 { 0455 const QString sievePasswd = QStringLiteral("password3"); 0456 const QString imapPasswd = QStringLiteral("password2"); 0457 const QString imapUser = QStringLiteral("kde"); 0458 const QString sieveUser = QStringLiteral("foo1"); 0459 const int sievePort = 3; 0460 const int imapPort = 53; 0461 AkonadiImapSettingInterfaceDataTest data1; 0462 data1.sieveSupport = true; 0463 data1.sieveReuseConfig = false; 0464 data1.imapServer = QStringLiteral("foo.bla.com"); 0465 data1.userName = imapUser; 0466 data1.sievePort = sievePort; 0467 data1.imapPort = imapPort; 0468 data1.sieveCustomUsername = sieveUser; 0469 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0470 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0471 data1.safety = QStringLiteral("STARTTLS"); 0472 data1.alternateAuthentication = 4; 0473 // MailTransport::Transport::EnumAuthenticationType::DigestMD5 = 3 0474 data1.authentication = 4; 0475 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0476 data1.password = imapPasswd; 0477 data1.sieveCustomPassword = sievePasswd; 0478 0479 KSieveCore::Util::AccountInfo info1; 0480 info1.sieveUrl = QUrl::fromUserInput(QStringLiteral("sieve://bla.bla.com?x-mech=GSSAPI")); 0481 info1.sieveUrl.setPassword(sievePasswd); 0482 info1.sieveUrl.setUserName(sieveUser); 0483 info1.sieveUrl.setPort(sievePort); 0484 info1.sieveImapAccountSettings.setServerName(QStringLiteral("foo.bla.com")); 0485 info1.sieveImapAccountSettings.setPort(imapPort); 0486 info1.sieveImapAccountSettings.setUserName(imapUser); 0487 info1.sieveImapAccountSettings.setPassword(imapPasswd); 0488 0489 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::DigestMD5); 0490 0491 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::STARTTLS); 0492 0493 QTest::newRow("sievereusecustomconfig1withoutvacationfileStarttls3") << data1 << info1 << true << false; 0494 } 0495 0496 { 0497 const QString sievePasswd = QStringLiteral("password3"); 0498 const QString imapPasswd = QStringLiteral("password2"); 0499 const QString imapUser = QStringLiteral("kde"); 0500 const QString sieveUser = QStringLiteral("foo1"); 0501 const int sievePort = 3; 0502 const int imapPort = 53; 0503 AkonadiImapSettingInterfaceDataTest data1; 0504 data1.sieveSupport = false; 0505 data1.sieveReuseConfig = false; 0506 data1.imapServer = QStringLiteral("foo.bla.com"); 0507 data1.userName = imapUser; 0508 data1.sievePort = sievePort; 0509 data1.imapPort = imapPort; 0510 data1.sieveCustomUsername = sieveUser; 0511 data1.sieveCustomAuthentification = QStringLiteral("CustomUserPassword"); 0512 data1.sieveVacationFilename = QStringLiteral("vacation.siv"); 0513 data1.safety = QStringLiteral("STARTTLS"); 0514 data1.alternateAuthentication = 4; 0515 // MailTransport::Transport::EnumAuthenticationType::PLAIN = 2 0516 data1.authentication = 2; 0517 data1.sieveAlternateUrl = QStringLiteral("bla.bla.com"); 0518 data1.password = imapPasswd; 0519 data1.sieveCustomPassword = sievePasswd; 0520 0521 KSieveCore::Util::AccountInfo info1; 0522 info1.sieveImapAccountSettings.setAuthenticationType(KSieveCore::SieveImapAccountSettings::Plain); 0523 info1.sieveImapAccountSettings.setEncryptionMode(KSieveCore::SieveImapAccountSettings::Unencrypted); 0524 QTest::newRow("sievereusecustomconfig1withoutvacationfileStarttlsNoSieveSupport") << data1 << info1 << false << false; 0525 } 0526 } 0527 0528 void FindAccountInfoJobTest::shouldAssignValue() 0529 { 0530 QFETCH(AkonadiImapSettingInterfaceDataTest, data); 0531 QFETCH(KSieveCore::Util::AccountInfo, accountInfo); 0532 QFETCH(bool, sieveImapAccountValid); 0533 QFETCH(bool, useVacationFile); 0534 0535 std::unique_ptr<KSieveCore::AbstractAkonadiImapSettingInterface> interface(new AkonadiImapSettingInterfaceTest(data)); 0536 std::unique_ptr<DataImapPasswordProvider> provider(new DataImapPasswordProvider(&data)); 0537 0538 auto job = new KSieveCore::FindAccountInfoJob; 0539 job->setIdentifier(QStringLiteral("foo")); 0540 job->setProvider(provider.get()); 0541 job->setCustomImapSettingsInterface(interface.get()); 0542 job->setWithVacationFileName(useVacationFile); 0543 QSignalSpy spy(job, &KSieveCore::FindAccountInfoJob::findAccountInfoFinished); 0544 job->start(); 0545 spy.wait(1000); 0546 QCOMPARE(spy.count(), 1); 0547 const auto info = spy.at(0).at(0).value<KSieveCore::Util::AccountInfo>(); 0548 QCOMPARE(info.sieveImapAccountSettings.isValid(), sieveImapAccountValid); 0549 const bool equal = (info == accountInfo); 0550 if (!equal) { 0551 qDebug() << " info " << info; 0552 qDebug() << " accountInfo " << accountInfo; 0553 } 0554 QVERIFY(equal); 0555 } 0556 0557 #include "moc_findaccountinfojobtest.cpp"