File indexing completed on 2025-03-09 04:47:28
0001 /* 0002 SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com> 0003 SPDX-FileContributor: Kevin Ottens <kevin@kdab.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "dummypasswordrequester.h" 0009 0010 #include <QTimer> 0011 0012 #include <QTest> 0013 0014 DummyPasswordRequester::DummyPasswordRequester(QObject *parent) 0015 : PasswordRequesterInterface(parent) 0016 { 0017 m_expectedCalls.reserve(10); 0018 m_results.reserve(10); 0019 for (int i = 0; i < 10; ++i) { 0020 m_expectedCalls << StandardRequest; 0021 m_results << PasswordRetrieved; 0022 } 0023 } 0024 0025 QString DummyPasswordRequester::password() const 0026 { 0027 return m_password; 0028 } 0029 0030 void DummyPasswordRequester::setPassword(const QString &password) 0031 { 0032 m_password = password; 0033 } 0034 0035 void DummyPasswordRequester::setScenario(const QList<RequestType> &expectedCalls, const QList<ResultType> &results) 0036 { 0037 Q_ASSERT(expectedCalls.size() == results.size()); 0038 0039 m_expectedCalls = expectedCalls; 0040 m_results = results; 0041 } 0042 0043 void DummyPasswordRequester::setDelays(const QList<int> &delays) 0044 { 0045 m_delays = delays; 0046 } 0047 0048 void DummyPasswordRequester::requestPassword(RequestType request, const QString & /*serverError*/) 0049 { 0050 QVERIFY2(!m_expectedCalls.isEmpty(), QStringLiteral("Got unexpected call: %1").arg(request).toUtf8().constData()); 0051 QCOMPARE((int)request, (int)m_expectedCalls.takeFirst()); 0052 0053 int delay = 20; 0054 if (!m_delays.isEmpty()) { 0055 delay = m_delays.takeFirst(); 0056 } 0057 0058 QTimer::singleShot(delay, this, &DummyPasswordRequester::emitResult); 0059 } 0060 0061 void DummyPasswordRequester::emitResult() 0062 { 0063 ResultType result = m_results.takeFirst(); 0064 0065 if (result == PasswordRetrieved) { 0066 Q_EMIT done(result, m_password); 0067 } else { 0068 Q_EMIT done(result); 0069 } 0070 } 0071 0072 #include "moc_dummypasswordrequester.cpp"