File indexing completed on 2025-02-16 04:50:14

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 #pragma once
0009 
0010 #include "kimaptest/fakeserver.h"
0011 
0012 #include "dummypasswordrequester.h"
0013 #include "dummyresourcestate.h"
0014 #include "imapaccount.h"
0015 #include "resourcetask.h"
0016 #include "sessionpool.h"
0017 
0018 Q_DECLARE_METATYPE(ImapAccount *)
0019 Q_DECLARE_METATYPE(DummyPasswordRequester *)
0020 Q_DECLARE_METATYPE(DummyResourceState::Ptr)
0021 Q_DECLARE_METATYPE(KIMAP::Session *)
0022 Q_DECLARE_METATYPE(QVariant)
0023 
0024 class ImapTestBase : public QObject
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     ImapTestBase(QObject *parent = nullptr);
0030 
0031 protected:
0032     QString defaultUserName() const;
0033     QString defaultPassword() const;
0034     ImapAccount *createDefaultAccount() const;
0035     DummyPasswordRequester *createDefaultRequester();
0036     QList<QByteArray> defaultAuthScenario() const;
0037     QList<QByteArray> defaultPoolConnectionScenario(const QList<QByteArray> &customCapabilities = QList<QByteArray>()) const;
0038 
0039     bool waitForSignal(QObject *obj, const char *member, int timeout = 500) const;
0040 
0041     Akonadi::Collection createCollectionChain(const QString &remoteId) const;
0042 
0043 private Q_SLOTS:
0044     void setupTestCase();
0045 };