File indexing completed on 2025-02-16 04:56:07
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "vacationeditwidgettest.h" 0008 #include "../vacationeditwidget.h" 0009 #include "../vacationmaillineedit.h" 0010 #include "vacation/vacationmailactionwidget.h" 0011 #include <KDateComboBox> 0012 #include <KTimeComboBox> 0013 #include <PimCommon/SpellCheckLineEdit> 0014 #include <QCheckBox> 0015 #include <QLabel> 0016 #include <QLineEdit> 0017 #include <QSpinBox> 0018 #include <QTest> 0019 #include <TextCustomEditor/PlainTextEditorWidget> 0020 0021 VacationEditWidgetTest::VacationEditWidgetTest(QObject *parent) 0022 : QObject(parent) 0023 { 0024 } 0025 0026 VacationEditWidgetTest::~VacationEditWidgetTest() = default; 0027 0028 void VacationEditWidgetTest::shouldHaveDefaultValue() 0029 { 0030 KSieveUi::VacationEditWidget w; 0031 auto configureVacationLabel = w.findChild<QLabel *>(QStringLiteral("configureVacationLabel")); 0032 QVERIFY(configureVacationLabel); 0033 QVERIFY(!configureVacationLabel->text().isEmpty()); 0034 auto mActiveCheck = w.findChild<QCheckBox *>(QStringLiteral("mActiveCheck")); 0035 QVERIFY(mActiveCheck); 0036 QVERIFY(!mActiveCheck->text().isEmpty()); 0037 QVERIFY(!mActiveCheck->isChecked()); 0038 0039 auto mTextEdit = w.findChild<TextCustomEditor::PlainTextEditorWidget *>(QStringLiteral("mTextEdit")); 0040 QVERIFY(mTextEdit); 0041 QVERIFY(mTextEdit->toPlainText().isEmpty()); 0042 auto mSubject = w.findChild<PimCommon::SpellCheckLineEdit *>(QStringLiteral("mSubject")); 0043 QVERIFY(mSubject); 0044 QVERIFY(mSubject->toPlainText().isEmpty()); 0045 0046 auto subjectOfVacationLabel = w.findChild<QLabel *>(QStringLiteral("subjectOfVacationLabel")); 0047 QVERIFY(subjectOfVacationLabel); 0048 QVERIFY(!subjectOfVacationLabel->text().isEmpty()); 0049 0050 auto mStartDate = w.findChild<KDateComboBox *>(QStringLiteral("mStartDate")); 0051 QVERIFY(mStartDate); 0052 QVERIFY(mStartDate->isEnabled()); 0053 0054 auto mStartTime = w.findChild<KTimeComboBox *>(QStringLiteral("mStartTime")); 0055 QVERIFY(mStartTime); 0056 0057 auto mStartTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mStartTimeActive")); 0058 QVERIFY(mStartTimeActive); 0059 QVERIFY(!mStartTimeActive->isChecked()); 0060 0061 auto mStartDateLabel = w.findChild<QLabel *>(QStringLiteral("mStartDateLabel")); 0062 QVERIFY(mStartDateLabel); 0063 QVERIFY(!mStartDateLabel->text().isEmpty()); 0064 0065 auto mEndDate = w.findChild<KDateComboBox *>(QStringLiteral("mEndDate")); 0066 QVERIFY(mEndDate); 0067 0068 auto mEndTime = w.findChild<KTimeComboBox *>(QStringLiteral("mEndTime")); 0069 QVERIFY(mEndTime); 0070 QVERIFY(!mEndTime->isEnabled()); 0071 0072 auto mEndTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mEndTimeActive")); 0073 QVERIFY(mEndTimeActive); 0074 QVERIFY(!mEndTimeActive->isChecked()); 0075 0076 auto mEndDateLabel = w.findChild<QLabel *>(QStringLiteral("mEndDateLabel")); 0077 QVERIFY(mEndDateLabel); 0078 QVERIFY(!mEndDateLabel->text().isEmpty()); 0079 0080 auto mIntervalSpin = w.findChild<QSpinBox *>(QStringLiteral("mIntervalSpin")); 0081 QVERIFY(mIntervalSpin); 0082 0083 auto resendNotificationLabel = w.findChild<QLabel *>(QStringLiteral("resendNotificationLabel")); 0084 QVERIFY(resendNotificationLabel); 0085 QVERIFY(!resendNotificationLabel->text().isEmpty()); 0086 0087 auto mMailAliasesEdit = w.findChild<KSieveUi::VacationMailLineEdit *>(QStringLiteral("mMailAliasesEdit")); 0088 QVERIFY(mMailAliasesEdit); 0089 QVERIFY(mMailAliasesEdit->text().isEmpty()); 0090 QVERIFY(mMailAliasesEdit->isClearButtonEnabled()); 0091 0092 auto sendResponseLabel = w.findChild<QLabel *>(QStringLiteral("sendResponseLabel")); 0093 QVERIFY(sendResponseLabel); 0094 QVERIFY(!sendResponseLabel->text().isEmpty()); 0095 0096 // Action for incoming mails 0097 auto mMailAction = w.findChild<QComboBox *>(QStringLiteral("mMailAction")); 0098 QVERIFY(mMailAction); 0099 QCOMPARE(mMailAction->count(), 4); 0100 0101 auto mMailActionRecipient = w.findChild<KSieveUi::VacationMailActionWidget *>(QStringLiteral("mMailActionRecipient")); 0102 QVERIFY(mMailActionRecipient); 0103 bool ok; 0104 QVERIFY(mMailActionRecipient->mailActionRecipient(ok).isEmpty()); 0105 0106 auto actionIncomingMailsLabel = w.findChild<QLabel *>(QStringLiteral("actionIncomingMailsLabel")); 0107 QVERIFY(actionIncomingMailsLabel); 0108 QVERIFY(!actionIncomingMailsLabel->text().isEmpty()); 0109 0110 auto mSpamCheck = w.findChild<QCheckBox *>(QStringLiteral("mSpamCheck")); 0111 QVERIFY(mSpamCheck); 0112 QVERIFY(!mSpamCheck->text().isEmpty()); 0113 QVERIFY(mSpamCheck->isChecked()); 0114 0115 auto mDomainCheck = w.findChild<QCheckBox *>(QStringLiteral("mDomainCheck")); 0116 QVERIFY(mDomainCheck); 0117 QVERIFY(!mDomainCheck->text().isEmpty()); 0118 QVERIFY(!mDomainCheck->isChecked()); 0119 0120 auto mDomainEdit = w.findChild<QLineEdit *>(QStringLiteral("mDomainEdit")); 0121 QVERIFY(mDomainEdit); 0122 QVERIFY(mDomainEdit->text().isEmpty()); 0123 QVERIFY(!mDomainEdit->isEnabled()); 0124 QVERIFY(mDomainEdit->isClearButtonEnabled()); 0125 QVERIFY(!w.changed()); 0126 } 0127 0128 void VacationEditWidgetTest::shouldGetValues() 0129 { 0130 KSieveUi::VacationEditWidget w; 0131 // QCheckBox *mActiveCheck = w.findChild<QCheckBox *>(QStringLiteral("mActiveCheck")); 0132 0133 // KPIMTextEdit::PlainTextEditorWidget *mTextEdit = w.findChild<KPIMTextEdit::PlainTextEditorWidget *>(QStringLiteral("mTextEdit")); 0134 // QLineEdit *mSubject = w.findChild<QLineEdit *>(QStringLiteral("mSubject")); 0135 #if 0 0136 KDateComboBox *mStartDate = w.findChild<KDateComboBox *>(QStringLiteral("mStartDate")); 0137 0138 QCheckBox *mStartTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mStartTimeActive")); 0139 0140 KDateComboBox *mEndDate = w.findChild<KDateComboBox *>(QStringLiteral("mEndDate")); 0141 0142 KTimeComboBox *mEndTime = w.findChild<KTimeComboBox *>(QStringLiteral("mEndTime")); 0143 0144 QCheckBox *mEndTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mEndTimeActive")); 0145 0146 QSpinBox *mIntervalSpin = w.findChild<QSpinBox *>(QStringLiteral("mIntervalSpin")); 0147 0148 QLineEdit *mMailAliasesEdit = w.findChild<QLineEdit *>(QStringLiteral("mMailAliasesEdit")); 0149 #endif 0150 0151 // QComboBox *mMailAction = w.findChild<QComboBox *>(QStringLiteral("mMailAction")); 0152 // QLineEdit *mMailActionRecipient = w.findChild<QLineEdit *>(QStringLiteral("mMailActionRecipient")); 0153 0154 // QCheckBox *mSpamCheck = w.findChild<QCheckBox *>(QStringLiteral("mSpamCheck")); 0155 // QCheckBox *mDomainCheck = w.findChild<QCheckBox *>(QStringLiteral("mDomainCheck")); 0156 0157 // QLineEdit *mDomainEdit = w.findChild<QLineEdit *>(QStringLiteral("mDomainEdit")); 0158 0159 bool activateVacation = true; 0160 w.setActivateVacation(activateVacation); 0161 QCOMPARE(w.activateVacation(), activateVacation); 0162 0163 bool domainChecked = true; 0164 w.setDomainCheck(domainChecked); 0165 QCOMPARE(w.domainCheck(), domainChecked); 0166 0167 const QString message = QStringLiteral("foo bla"); 0168 w.setMessageText(message); 0169 QCOMPARE(w.messageText(), message); 0170 0171 const QString subject = QStringLiteral("dd"); 0172 w.setSubject(subject); 0173 QCOMPARE(w.subject(), subject); 0174 0175 const QString domain = QStringLiteral("ss"); 0176 w.setDomainName(domain); 0177 QCOMPARE(w.domainName(), domain); 0178 0179 const int notify = 8; 0180 w.setNotificationInterval(notify); 0181 QCOMPARE(w.notificationInterval(), notify); 0182 0183 #if 0 0184 KMime::Types::AddrSpecList mailAliases() const; 0185 void setMailAliases(const KMime::Types::AddrSpecList &aliases); 0186 void setMailAliases(const QString &aliases); 0187 0188 bool sendForSpam() const; 0189 void setSendForSpam(bool enable); 0190 0191 QDate startDate() const; 0192 void setStartDate(const QDate &startDate); 0193 0194 QTime startTime() const; 0195 void setStartTime(const QTime &startTime); 0196 0197 QDate endDate() const; 0198 void setEndDate(const QDate &endDate); 0199 0200 QTime endTime() const; 0201 void setEndTime(const QTime &endTime); 0202 0203 VacationUtils::MailAction mailAction() const; 0204 QString mailActionRecipient() const; 0205 void setMailAction(VacationUtils::MailAction action, const QString &recipient); 0206 #endif 0207 } 0208 0209 void VacationEditWidgetTest::shouldHideDateTime() 0210 { 0211 KSieveUi::VacationEditWidget w; 0212 w.show(); 0213 auto mStartDate = w.findChild<KDateComboBox *>(QStringLiteral("mStartDate")); 0214 auto mStartTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mStartTimeActive")); 0215 auto mEndDate = w.findChild<KDateComboBox *>(QStringLiteral("mEndDate")); 0216 auto mEndTime = w.findChild<KTimeComboBox *>(QStringLiteral("mEndTime")); 0217 auto mEndTimeActive = w.findChild<QCheckBox *>(QStringLiteral("mEndTimeActive")); 0218 auto mStartTime = w.findChild<KTimeComboBox *>(QStringLiteral("mStartTime")); 0219 w.enableDates(true); 0220 QVERIFY(mStartDate->isVisible()); 0221 QVERIFY(mStartTimeActive->isVisible()); 0222 QVERIFY(mEndDate->isVisible()); 0223 QVERIFY(mEndTime->isVisible()); 0224 QVERIFY(mEndTimeActive->isVisible()); 0225 QVERIFY(mStartTime->isVisible()); 0226 0227 w.enableDates(false); 0228 QVERIFY(!mStartDate->isVisible()); 0229 QVERIFY(!mStartTimeActive->isVisible()); 0230 QVERIFY(!mEndDate->isVisible()); 0231 QVERIFY(!mEndTime->isVisible()); 0232 QVERIFY(!mEndTimeActive->isVisible()); 0233 QVERIFY(!mStartTime->isVisible()); 0234 } 0235 0236 QTEST_MAIN(VacationEditWidgetTest) 0237 0238 #include "moc_vacationeditwidgettest.cpp"