File indexing completed on 2024-12-08 12:21:12
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2020 David Faure <faure@kde.org> 0004 SPDX-FileCopyrightText: 2020 Ahmad Samir <a.samirh78@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef MOCKDELEGATEEXTENSIONS_H 0010 #define MOCKDELEGATEEXTENSIONS_H 0011 0012 #include <QUrl> 0013 #include <askuseractioninterface.h> 0014 #include <untrustedprogramhandlerinterface.h> 0015 0016 class MockUntrustedProgramHandler : public KIO::UntrustedProgramHandlerInterface 0017 { 0018 public: 0019 explicit MockUntrustedProgramHandler(QObject *parent) 0020 : KIO::UntrustedProgramHandlerInterface(parent) 0021 { 0022 } 0023 void showUntrustedProgramWarning(KJob *job, const QString &programName) override 0024 { 0025 Q_UNUSED(job) 0026 m_calls << programName; 0027 Q_EMIT result(m_retVal); 0028 } 0029 0030 void setRetVal(bool b) 0031 { 0032 m_retVal = b; 0033 } 0034 0035 QStringList m_calls; 0036 0037 private: 0038 bool m_retVal = false; 0039 }; 0040 0041 class MockAskUserInterface : public KIO::AskUserActionInterface 0042 { 0043 public: 0044 explicit MockAskUserInterface(QObject *parent = nullptr) 0045 : KIO::AskUserActionInterface(parent) 0046 { 0047 } 0048 0049 void askUserRename(KJob *job, 0050 const QString &title, 0051 const QUrl &src, 0052 const QUrl &dest, 0053 KIO::RenameDialog_Options options, 0054 KIO::filesize_t sizeSrc = KIO::filesize_t(-1), 0055 KIO::filesize_t sizeDest = KIO::filesize_t(-1), 0056 const QDateTime &ctimeSrc = QDateTime(), 0057 const QDateTime &ctimeDest = QDateTime(), 0058 const QDateTime &mtimeSrc = QDateTime(), 0059 const QDateTime &mtimeDest = QDateTime()) override 0060 { 0061 Q_UNUSED(title) 0062 Q_UNUSED(src) 0063 Q_UNUSED(dest) 0064 Q_UNUSED(options) 0065 Q_UNUSED(sizeSrc) 0066 Q_UNUSED(sizeDest) 0067 Q_UNUSED(ctimeSrc) 0068 Q_UNUSED(ctimeDest) 0069 Q_UNUSED(mtimeSrc) 0070 Q_UNUSED(mtimeDest) 0071 0072 ++m_askUserRenameCalled; 0073 Q_EMIT askUserRenameResult(m_renameResult, m_newDestUrl, job); 0074 } 0075 0076 void askUserSkip(KJob *job, KIO::SkipDialog_Options options, const QString &error_text) override 0077 { 0078 Q_UNUSED(options) 0079 Q_UNUSED(error_text) 0080 0081 ++m_askUserSkipCalled; 0082 Q_EMIT askUserSkipResult(m_skipResult, job); 0083 } 0084 0085 void askUserDelete(const QList<QUrl> &urls, DeletionType deletionType, ConfirmationType confirmationType, QWidget *parent = nullptr) override 0086 { 0087 Q_UNUSED(confirmationType) 0088 0089 ++m_askUserDeleteCalled; 0090 m_delType = deletionType; 0091 Q_EMIT askUserDeleteResult(m_deleteResult, urls, deletionType, parent); 0092 } 0093 0094 void requestUserMessageBox(MessageDialogType type, 0095 const QString &text, 0096 const QString &title, 0097 const QString &primaryActionText, 0098 const QString &secondaryActionText, 0099 const QString &primaryActionIconName = QString(), 0100 const QString &secondaryActionIconName = QString(), 0101 const QString &dontAskAgainName = QString(), 0102 const QString &details = QString(), 0103 const KIO::MetaData &metaData = KIO::MetaData(), 0104 QWidget *parent = nullptr) override 0105 { 0106 Q_UNUSED(type) 0107 Q_UNUSED(text) 0108 Q_UNUSED(title) 0109 Q_UNUSED(primaryActionText) 0110 Q_UNUSED(secondaryActionText) 0111 Q_UNUSED(primaryActionIconName) 0112 Q_UNUSED(secondaryActionIconName) 0113 Q_UNUSED(dontAskAgainName) 0114 Q_UNUSED(details) 0115 Q_UNUSED(metaData) 0116 Q_UNUSED(parent) 0117 } 0118 0119 void clear() 0120 { 0121 m_askUserRenameCalled = 0; 0122 m_askUserSkipCalled = 0; 0123 m_askUserDeleteCalled = 0; 0124 m_messageBoxCalled = 0; 0125 m_delType = DeletionType::Delete; 0126 } 0127 0128 // yeah, public, for get and reset. 0129 int m_askUserRenameCalled = 0; 0130 int m_askUserSkipCalled = 0; 0131 int m_askUserDeleteCalled = 0; 0132 int m_messageBoxCalled = 0; 0133 0134 KIO::RenameDialog_Result m_renameResult = KIO::Result_Skip; 0135 KIO::SkipDialog_Result m_skipResult = KIO::Result_Skip; 0136 bool m_deleteResult = false; 0137 int m_messageBoxResult = 0; 0138 QUrl m_newDestUrl; 0139 DeletionType m_delType; 0140 }; 0141 0142 #endif // MOCKDELEGATEEXTENSIONS_H