File indexing completed on 2024-05-26 05:05:33

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "messagesettingswidgettest.h"
0007 #include "administratorsettingsdialog/message/messagesettingswidget.h"
0008 #include "settingswidgetshelper.h"
0009 #include <QCheckBox>
0010 #include <QComboBox>
0011 #include <QFormLayout>
0012 #include <QLabel>
0013 #include <QLineEdit>
0014 #include <QSpinBox>
0015 QTEST_MAIN(MessageSettingsWidgetTest)
0016 
0017 MessageSettingsWidgetTest::MessageSettingsWidgetTest(QObject *parent)
0018     : QObject{parent}
0019 {
0020 }
0021 
0022 void MessageSettingsWidgetTest::shouldHaveDefaultValues()
0023 {
0024     MessageSettingsWidget w(nullptr);
0025     QVERIFY(w.widgetResizable());
0026 
0027     auto mainLayout = w.findChild<QFormLayout *>(QStringLiteral("mainLayout"));
0028     QVERIFY(mainLayout);
0029 
0030     auto mAllowMessageEditing = w.findChild<QCheckBox *>(QStringLiteral("mAllowMessageEditing"));
0031     QVERIFY(mAllowMessageEditing);
0032     QVERIFY(!mAllowMessageEditing->isChecked());
0033     QVERIFY(!mAllowMessageEditing->text().isEmpty());
0034     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAllowMessageEditing), QStringLiteral("Message_AllowEditing"));
0035 
0036     auto mAllowMessageDeleting = w.findChild<QCheckBox *>(QStringLiteral("mAllowMessageDeleting"));
0037     QVERIFY(mAllowMessageDeleting);
0038     QVERIFY(!mAllowMessageDeleting->isChecked());
0039     QVERIFY(!mAllowMessageDeleting->text().isEmpty());
0040     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAllowMessageDeleting), QStringLiteral("Message_AllowDeleting"));
0041 
0042     auto mShowEditedStatus = w.findChild<QCheckBox *>(QStringLiteral("mShowEditedStatus"));
0043     QVERIFY(mShowEditedStatus);
0044     QVERIFY(!mShowEditedStatus->isChecked());
0045     QVERIFY(!mShowEditedStatus->text().isEmpty());
0046     QVERIFY(!mShowEditedStatus->toolTip().isEmpty());
0047     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mShowEditedStatus), QStringLiteral("Message_ShowEditedStatus"));
0048 
0049     auto mShowDeletedStatus = w.findChild<QCheckBox *>(QStringLiteral("mShowDeletedStatus"));
0050     QVERIFY(mShowDeletedStatus);
0051     QVERIFY(!mShowDeletedStatus->isChecked());
0052     QVERIFY(!mShowDeletedStatus->text().isEmpty());
0053     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mShowDeletedStatus), QStringLiteral("Message_ShowDeletedStatus"));
0054 
0055     auto mAllowMessagePinning = w.findChild<QCheckBox *>(QStringLiteral("mAllowMessagePinning"));
0056     QVERIFY(mAllowMessagePinning);
0057     QVERIFY(!mAllowMessagePinning->isChecked());
0058     QVERIFY(!mAllowMessagePinning->text().isEmpty());
0059     QVERIFY(!mAllowMessagePinning->toolTip().isEmpty());
0060     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAllowMessagePinning), QStringLiteral("Message_AllowPinning"));
0061 
0062     auto mAllowMessageSnippeting = w.findChild<QCheckBox *>(QStringLiteral("mAllowMessageSnippeting"));
0063     QVERIFY(mAllowMessageSnippeting);
0064     QVERIFY(!mAllowMessageSnippeting->isChecked());
0065     QVERIFY(!mAllowMessageSnippeting->text().isEmpty());
0066     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAllowMessageSnippeting), QStringLiteral("Message_AllowSnippeting"));
0067 
0068     auto mAllowConvertingLongMessageAttachment = w.findChild<QCheckBox *>(QStringLiteral("mAllowConvertingLongMessageAttachment"));
0069     QVERIFY(mAllowConvertingLongMessageAttachment);
0070     QVERIFY(!mAllowConvertingLongMessageAttachment->isChecked());
0071     QVERIFY(!mAllowConvertingLongMessageAttachment->text().isEmpty());
0072     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAllowConvertingLongMessageAttachment), QStringLiteral("Message_AllowConvertLongMessagesToAttachment"));
0073 
0074     auto mVideoRecorderEnabled = w.findChild<QCheckBox *>(QStringLiteral("mVideoRecorderEnabled"));
0075     QVERIFY(mVideoRecorderEnabled);
0076     QVERIFY(!mVideoRecorderEnabled->isChecked());
0077     QVERIFY(!mVideoRecorderEnabled->text().isEmpty());
0078     QVERIFY(!mVideoRecorderEnabled->toolTip().isEmpty());
0079     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mVideoRecorderEnabled), QStringLiteral("Message_VideoRecorderEnabled"));
0080 
0081     auto mBlockMessageEditingAfterMinutes = w.findChild<QSpinBox *>(QStringLiteral("mBlockMessageEditingAfterMinutes"));
0082     QVERIFY(mBlockMessageEditingAfterMinutes);
0083     QVERIFY(!mBlockMessageEditingAfterMinutes->toolTip().isEmpty());
0084     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mBlockMessageEditingAfterMinutes), QStringLiteral("Message_AllowEditing_BlockEditInMinutes"));
0085     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_AllowEditing_BlockEditInMinutes"));
0086 
0087     auto mBlockMessageDeletingAfterMinutes = w.findChild<QSpinBox *>(QStringLiteral("mBlockMessageDeletingAfterMinutes"));
0088     QVERIFY(mBlockMessageDeletingAfterMinutes);
0089     QVERIFY(!mBlockMessageDeletingAfterMinutes->toolTip().isEmpty());
0090     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mBlockMessageDeletingAfterMinutes), QStringLiteral("Message_AllowDeleting_BlockDeleteInMinutes"));
0091     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_AllowDeleting_BlockDeleteInMinutes"));
0092 
0093     auto mMaximumAllowedCharactersPerMessage = w.findChild<QSpinBox *>(QStringLiteral("mMaximumAllowedCharactersPerMessage"));
0094     QVERIFY(mMaximumAllowedCharactersPerMessage);
0095     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mMaximumAllowedCharactersPerMessage), QStringLiteral("Message_MaxAllowedSize"));
0096     QCOMPARE(mMaximumAllowedCharactersPerMessage->maximum(), 99999);
0097     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_MaxAllowedSize"));
0098 
0099     auto mSafePort = w.findChild<QLineEdit *>(QStringLiteral("mSafePort"));
0100     QVERIFY(mSafePort);
0101     QVERIFY(mSafePort->text().isEmpty());
0102     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mSafePort), QStringLiteral("API_EmbedSafePorts"));
0103 
0104     auto messageAttachmentsLabel = w.findChild<QLabel *>(QStringLiteral("messageAttachmentsLabel"));
0105     QVERIFY(messageAttachmentsLabel);
0106     QVERIFY(!messageAttachmentsLabel->text().isEmpty());
0107 
0108     auto mRemoveEXIFMetadata = w.findChild<QCheckBox *>(QStringLiteral("mRemoveEXIFMetadata"));
0109     QVERIFY(mRemoveEXIFMetadata);
0110     QVERIFY(!mRemoveEXIFMetadata->isChecked());
0111     QVERIFY(!mRemoveEXIFMetadata->text().isEmpty());
0112     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mRemoveEXIFMetadata), QStringLiteral("Message_Attachments_Strip_Exif"));
0113 
0114     auto mEnableImageThumbnails = w.findChild<QCheckBox *>(QStringLiteral("mEnableImageThumbnails"));
0115     QVERIFY(mEnableImageThumbnails);
0116     QVERIFY(!mEnableImageThumbnails->isChecked());
0117     QVERIFY(!mEnableImageThumbnails->text().isEmpty());
0118     QVERIFY(!mEnableImageThumbnails->toolTip().isEmpty());
0119     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mEnableImageThumbnails), QStringLiteral("Message_Attachments_Thumbnails_Enabled"));
0120 
0121     auto audioMessageLabel = w.findChild<QLabel *>(QStringLiteral("audioMessageLabel"));
0122     QVERIFY(audioMessageLabel);
0123     QVERIFY(!audioMessageLabel->text().isEmpty());
0124 
0125     auto mThumbnailMaxWidth = w.findChild<QSpinBox *>(QStringLiteral("mThumbnailMaxWidth"));
0126     QVERIFY(mThumbnailMaxWidth);
0127     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mThumbnailMaxWidth), QStringLiteral("Message_Attachments_Thumbnails_Width"));
0128     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_Attachments_Thumbnails_Width"));
0129 
0130     auto mThumbnailMaxHeight = w.findChild<QSpinBox *>(QStringLiteral("mThumbnailMaxHeight"));
0131     QVERIFY(mThumbnailMaxHeight);
0132     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mThumbnailMaxHeight), QStringLiteral("Message_Attachments_Thumbnails_Height"));
0133     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_Attachments_Thumbnails_Height"));
0134 
0135     auto mAudioRecorderEnabled = w.findChild<QCheckBox *>(QStringLiteral("mAudioRecorderEnabled"));
0136     QVERIFY(mAudioRecorderEnabled);
0137     QVERIFY(!mAudioRecorderEnabled->isChecked());
0138     QVERIFY(!mAudioRecorderEnabled->text().isEmpty());
0139     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAudioRecorderEnabled), QStringLiteral("Message_AudioRecorderEnabled"));
0140 
0141     auto mAudioMessageBitRate = w.findChild<QSpinBox *>(QStringLiteral("mAudioMessageBitRate"));
0142     QVERIFY(mAudioMessageBitRate);
0143     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAudioMessageBitRate), QStringLiteral("Message_Audio_bitRate"));
0144     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_Audio_bitRate"));
0145 
0146     auto autoTranslateLabel = w.findChild<QLabel *>(QStringLiteral("autoTranslateLabel"));
0147     QVERIFY(autoTranslateLabel);
0148     QVERIFY(!autoTranslateLabel->text().isEmpty());
0149 
0150     auto mAutoTranslateEnabled = w.findChild<QCheckBox *>(QStringLiteral("mAutoTranslateEnabled"));
0151     QVERIFY(mAutoTranslateEnabled);
0152     QVERIFY(!mAutoTranslateEnabled->isChecked());
0153     QVERIFY(!mAutoTranslateEnabled->text().isEmpty());
0154     QVERIFY(mAutoTranslateEnabled->toolTip().isEmpty());
0155     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAutoTranslateEnabled), QStringLiteral("AutoTranslate_Enabled"));
0156 
0157     auto mAutoTranslateServiceProvider = w.findChild<QComboBox *>(QStringLiteral("mAutoTranslateServiceProvider"));
0158     QVERIFY(mAutoTranslateServiceProvider);
0159     QCOMPARE(mAutoTranslateServiceProvider->count(), 3);
0160     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mAutoTranslateServiceProvider), QStringLiteral("AutoTranslate_ServiceProvider"));
0161 
0162     auto mDeeplApiKey = w.findChild<QLineEdit *>(QStringLiteral("mDeeplApiKey"));
0163     QVERIFY(mDeeplApiKey);
0164     QVERIFY(mDeeplApiKey->text().isEmpty());
0165     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mDeeplApiKey), QStringLiteral("AutoTranslate_DeepLAPIKey"));
0166 
0167     auto mGoogleApiKey = w.findChild<QLineEdit *>(QStringLiteral("mGoogleApiKey"));
0168     QVERIFY(mGoogleApiKey);
0169     QVERIFY(mGoogleApiKey->text().isEmpty());
0170     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mGoogleApiKey), QStringLiteral("AutoTranslate_GoogleAPIKey"));
0171 
0172     auto mMicrosoftApiKey = w.findChild<QLineEdit *>(QStringLiteral("mMicrosoftApiKey"));
0173     QVERIFY(mMicrosoftApiKey);
0174     QVERIFY(mMicrosoftApiKey->text().isEmpty());
0175     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mMicrosoftApiKey), QStringLiteral("AutoTranslate_MicrosoftAPIKey"));
0176 
0177     auto mGroupingPeriod = w.findChild<QSpinBox *>(QStringLiteral("mGroupingPeriod"));
0178     QVERIFY(mGroupingPeriod);
0179     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mGroupingPeriod), QStringLiteral("Message_GroupingPeriod"));
0180     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_GroupingPeriod"));
0181 
0182     auto mDirectMessageMaxUsers = w.findChild<QSpinBox *>(QStringLiteral("mDirectMessageMaxUsers"));
0183     QVERIFY(mDirectMessageMaxUsers);
0184     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mDirectMessageMaxUsers), QStringLiteral("DirectMesssage_maxUsers"));
0185     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("DirectMesssage_maxUsers"));
0186 
0187     auto mMaximumNumberChainedQuotes = w.findChild<QSpinBox *>(QStringLiteral("mMaximumNumberChainedQuotes"));
0188     QVERIFY(mMaximumNumberChainedQuotes);
0189     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mMaximumNumberChainedQuotes), QStringLiteral("Message_QuoteChainLimit"));
0190     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("Message_QuoteChainLimit"));
0191 
0192     auto mMessageErasureType = w.findChild<QComboBox *>(QStringLiteral("mMessageErasureType"));
0193     QVERIFY(mMessageErasureType);
0194     QCOMPARE(mMessageErasureType->count(), 3);
0195     QVERIFY(!mMessageErasureType->toolTip().isEmpty());
0196     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mMessageErasureType), QStringLiteral("Message_ErasureType"));
0197 
0198     auto mApiEmbed = w.findChild<QCheckBox *>(QStringLiteral("mApiEmbed"));
0199     QVERIFY(mApiEmbed);
0200     QVERIFY(!mApiEmbed->isChecked());
0201     QVERIFY(!mApiEmbed->text().isEmpty());
0202     QVERIFY(!mApiEmbed->toolTip().isEmpty());
0203     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mApiEmbed), QStringLiteral("API_Embed"));
0204 
0205     auto mEmbedCacheExpirationDays = w.findChild<QSpinBox *>(QStringLiteral("mEmbedCacheExpirationDays"));
0206     QVERIFY(mEmbedCacheExpirationDays);
0207     QCOMPARE(SettingsWidgetHelper::widgetSettingsName(mEmbedCacheExpirationDays), QStringLiteral("API_EmbedCacheExpirationDays"));
0208     SettingsWidgetHelper::checkLabelToolButton(&w, QStringLiteral("API_EmbedCacheExpirationDays"));
0209 }
0210 
0211 #include "moc_messagesettingswidgettest.cpp"