1 /* 2 This file is part of the KDE libraries 3 SPDX-FileCopyrightText: 2020 David Faure <faure@kde.org> 4 SPDX-FileCopyrightText: 2020 Ahmad Samir <a.samirh78@gmail.com> 5 6 SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 7 */ 8 9 #ifndef MOCKDELEGATEEXTENSIONS_H 10 #define MOCKDELEGATEEXTENSIONS_H 11 12 #include <QUrl> 13 #include <askuseractioninterface.h> 14 #include <untrustedprogramhandlerinterface.h> 15 16 class MockUntrustedProgramHandler : public KIO::UntrustedProgramHandlerInterface 17 { 18 public: MockUntrustedProgramHandler(QObject * parent)19 explicit MockUntrustedProgramHandler(QObject *parent) 20 : KIO::UntrustedProgramHandlerInterface(parent) 21 { 22 } showUntrustedProgramWarning(KJob * job,const QString & programName)23 void showUntrustedProgramWarning(KJob *job, const QString &programName) override 24 { 25 Q_UNUSED(job) 26 m_calls << programName; 27 Q_EMIT result(m_retVal); 28 } 29 setRetVal(bool b)30 void setRetVal(bool b) 31 { 32 m_retVal = b; 33 } 34 35 QStringList m_calls; 36 37 private: 38 bool m_retVal = false; 39 }; 40 41 class MockAskUserInterface : public KIO::AskUserActionInterface 42 { 43 public: 44 explicit MockAskUserInterface(QObject *parent = nullptr) AskUserActionInterface(parent)45 : KIO::AskUserActionInterface(parent) 46 { 47 } 48 49 void askUserRename(KJob *job, 50 const QString &caption, 51 const QUrl &src, 52 const QUrl &dest, 53 KIO::RenameDialog_Options options, 54 KIO::filesize_t sizeSrc = KIO::filesize_t(-1), 55 KIO::filesize_t sizeDest = KIO::filesize_t(-1), 56 const QDateTime &ctimeSrc = QDateTime(), 57 const QDateTime &ctimeDest = QDateTime(), 58 const QDateTime &mtimeSrc = QDateTime(), 59 const QDateTime &mtimeDest = QDateTime()) override 60 { 61 Q_UNUSED(caption) 62 Q_UNUSED(src) 63 Q_UNUSED(dest) 64 Q_UNUSED(options) 65 Q_UNUSED(sizeSrc) 66 Q_UNUSED(sizeDest) 67 Q_UNUSED(ctimeSrc) 68 Q_UNUSED(ctimeDest) 69 Q_UNUSED(mtimeSrc) 70 Q_UNUSED(mtimeDest) 71 72 ++m_askUserRenameCalled; 73 Q_EMIT askUserRenameResult(m_renameResult, m_newDestUrl, job); 74 } 75 askUserSkip(KJob * job,KIO::SkipDialog_Options options,const QString & error_text)76 void askUserSkip(KJob *job, KIO::SkipDialog_Options options, const QString &error_text) override 77 { 78 Q_UNUSED(options) 79 Q_UNUSED(error_text) 80 81 ++m_askUserSkipCalled; 82 Q_EMIT askUserSkipResult(m_skipResult, job); 83 } 84 85 void askUserDelete(const QList<QUrl> &urls, DeletionType deletionType, ConfirmationType confirmationType, QWidget *parent = nullptr) override 86 { 87 Q_UNUSED(confirmationType) 88 89 ++m_askUserDeleteCalled; 90 Q_EMIT askUserDeleteResult(m_deleteResult, urls, deletionType, parent); 91 } 92 93 void requestUserMessageBox(MessageDialogType type, 94 const QString &text, 95 const QString &caption, 96 const QString &buttonYes, 97 const QString &buttonNo, 98 const QString &iconYes = QString(), 99 const QString &iconNo = QString(), 100 const QString &dontAskAgainName = QString(), 101 const QString &details = QString(), 102 const KIO::MetaData &metaData = KIO::MetaData(), 103 QWidget *parent = nullptr) override 104 { 105 Q_UNUSED(type) 106 Q_UNUSED(text) 107 Q_UNUSED(caption) 108 Q_UNUSED(buttonYes) 109 Q_UNUSED(buttonNo) 110 Q_UNUSED(iconYes) 111 Q_UNUSED(iconNo) 112 Q_UNUSED(dontAskAgainName) 113 Q_UNUSED(details) 114 Q_UNUSED(metaData) 115 Q_UNUSED(parent) 116 } 117 clear()118 void clear() 119 { 120 m_askUserRenameCalled = 0; 121 m_askUserSkipCalled = 0; 122 m_askUserDeleteCalled = 0; 123 m_messageBoxCalled = 0; 124 } 125 126 // yeah, public, for get and reset. 127 int m_askUserRenameCalled = 0; 128 int m_askUserSkipCalled = 0; 129 int m_askUserDeleteCalled = 0; 130 int m_messageBoxCalled = 0; 131 132 KIO::RenameDialog_Result m_renameResult = KIO::Result_Skip; 133 KIO::SkipDialog_Result m_skipResult = KIO::Result_Skip; 134 bool m_deleteResult = false; 135 int m_messageBoxResult = 0; 136 QUrl m_newDestUrl; 137 }; 138 139 #endif // MOCKDELEGATEEXTENSIONS_H 140