File indexing completed on 2025-05-04 04:59:09
0001 /* 0002 SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #include "mdnwarningwidgettest.h" 0007 #include "mdn/mdnwarningwidget.h" 0008 0009 #include <QAction> 0010 #include <QSignalSpy> 0011 #include <QTest> 0012 0013 QTEST_MAIN(MDNWarningWidgetTest) 0014 Q_DECLARE_METATYPE(MessageViewer::MDNWarningWidget::ResponseType) 0015 MDNWarningWidgetTest::MDNWarningWidgetTest(QObject *parent) 0016 : QObject{parent} 0017 { 0018 } 0019 0020 void MDNWarningWidgetTest::shouldHaveDefaultValues() 0021 { 0022 qRegisterMetaType<MessageViewer::MDNWarningWidget::ResponseType>(); 0023 MessageViewer::MDNWarningWidget w; 0024 QVERIFY(!w.isVisible()); 0025 QVERIFY(w.wordWrap()); 0026 QVERIFY(w.text().isEmpty()); 0027 QVERIFY(!w.isCloseButtonVisible()); 0028 0029 QCOMPARE(w.messageType(), KMessageWidget::Information); 0030 QCOMPARE(w.actions().count(), 3); 0031 const auto acts{w.actions()}; 0032 for (const auto &name : {QStringLiteral("mIgnoreAction"), QStringLiteral("mSendAction"), QStringLiteral("mSendDenyAction")}) { 0033 bool found = false; 0034 for (auto a : acts) { 0035 if (a->objectName() == name) { 0036 found = true; 0037 break; 0038 } 0039 } 0040 QVERIFY(found); 0041 } 0042 } 0043 0044 void MDNWarningWidgetTest::shouldEmitSignals() 0045 { 0046 MessageViewer::MDNWarningWidget w; 0047 const auto acts{w.actions()}; 0048 bool found = false; 0049 for (auto a : acts) { 0050 if (a->objectName() == QLatin1StringView("mIgnoreAction")) { 0051 found = true; 0052 QSignalSpy ignoreMdn(&w, &MessageViewer::MDNWarningWidget::sendResponse); 0053 a->trigger(); 0054 QCOMPARE(ignoreMdn.count(), 1); 0055 QCOMPARE(ignoreMdn.at(0).at(0).value<MessageViewer::MDNWarningWidget::ResponseType>(), MessageViewer::MDNWarningWidget::ResponseType::Ignore); 0056 break; 0057 } 0058 } 0059 0060 found = false; 0061 for (auto a : acts) { 0062 if (a->objectName() == QLatin1StringView("mSendAction")) { 0063 found = true; 0064 QSignalSpy sendMdn(&w, &MessageViewer::MDNWarningWidget::sendResponse); 0065 a->trigger(); 0066 QCOMPARE(sendMdn.count(), 1); 0067 QCOMPARE(sendMdn.at(0).at(0).value<MessageViewer::MDNWarningWidget::ResponseType>(), MessageViewer::MDNWarningWidget::ResponseType::Send); 0068 break; 0069 } 0070 } 0071 0072 found = false; 0073 for (auto a : acts) { 0074 if (a->objectName() == QLatin1StringView("mSendDenyAction")) { 0075 found = true; 0076 QSignalSpy sendDeny(&w, &MessageViewer::MDNWarningWidget::sendResponse); 0077 a->trigger(); 0078 QCOMPARE(sendDeny.count(), 1); 0079 QCOMPARE(sendDeny.at(0).at(0).value<MessageViewer::MDNWarningWidget::ResponseType>(), MessageViewer::MDNWarningWidget::ResponseType::SendDeny); 0080 break; 0081 } 0082 } 0083 0084 QVERIFY(found); 0085 } 0086 0087 void MDNWarningWidgetTest::shouldChangeInformation() 0088 { 0089 MessageViewer::MDNWarningWidget w; 0090 const QString str{QStringLiteral("bla-bla")}; 0091 w.setInformation(str); 0092 QCOMPARE(w.text(), str); 0093 } 0094 0095 #include "moc_mdnwarningwidgettest.cpp"