File indexing completed on 2024-09-22 04:50:33
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "richtextcomposersignaturestest.h" 0008 #include "../richtextcomposerng.h" 0009 #include "../richtextcomposersignatures.h" 0010 #include <KActionCollection> 0011 #include <QStandardPaths> 0012 #include <QTest> 0013 0014 QTEST_MAIN(RichTextComposerSignaturesTest) 0015 0016 RichTextComposerSignaturesTest::RichTextComposerSignaturesTest(QObject *parent) 0017 : QObject(parent) 0018 { 0019 QStandardPaths::setTestModeEnabled(true); 0020 } 0021 0022 void RichTextComposerSignaturesTest::shouldCleanSignature() 0023 { 0024 MessageComposer::RichTextComposerNg richtextComposerNg; 0025 richtextComposerNg.createActions(new KActionCollection(this)); 0026 MessageComposer::RichTextComposerSignatures *composerSignature = richtextComposerNg.composerSignature(); 0027 QVERIFY(composerSignature); 0028 0029 KIdentityManagementCore::Signature signature1; 0030 signature1.setText(QStringLiteral("bla Bla\t")); 0031 signature1.setEnabledSignature(true); 0032 signature1.setInlinedHtml(false); 0033 0034 KIdentityManagementCore::Signature signature2(QStringLiteral("Signature")); 0035 signature2.setText(QStringLiteral("Foo Bla\t")); 0036 signature2.setEnabledSignature(true); 0037 signature2.setInlinedHtml(false); 0038 0039 richtextComposerNg.insertSignature(signature1, KIdentityManagementCore::Signature::Start, KIdentityManagementCore::Signature::AddNewLines); 0040 composerSignature->cleanWhitespace(signature2); 0041 0042 QVERIFY(!composerSignature->replaceSignature(signature1, signature2)); 0043 QCOMPARE(richtextComposerNg.toPlainText(), QStringLiteral("\n\nbla Bla ")); 0044 0045 for (int i = 0; i < 10; i++) { 0046 QVERIFY(!composerSignature->replaceSignature(signature2, signature1)); 0047 QVERIFY(!composerSignature->replaceSignature(signature1, signature2)); 0048 } 0049 QCOMPARE(richtextComposerNg.toPlainText(), QStringLiteral("\n\nbla Bla ")); 0050 } 0051 0052 void RichTextComposerSignaturesTest::shouldReplaceSignatureWhenText() 0053 { 0054 MessageComposer::RichTextComposerNg richtextComposerNg; 0055 richtextComposerNg.setText(QStringLiteral("foo\nbla \nfoo")); 0056 richtextComposerNg.createActions(new KActionCollection(this)); 0057 MessageComposer::RichTextComposerSignatures *composerSignature = richtextComposerNg.composerSignature(); 0058 QVERIFY(composerSignature); 0059 0060 KIdentityManagementCore::Signature signature1; 0061 signature1.setText(QStringLiteral("bla Bla\t")); 0062 signature1.setEnabledSignature(true); 0063 signature1.setInlinedHtml(false); 0064 0065 KIdentityManagementCore::Signature signature2(QStringLiteral("Signature")); 0066 signature2.setText(QStringLiteral("Foo Bla\t")); 0067 signature2.setEnabledSignature(true); 0068 signature2.setInlinedHtml(false); 0069 0070 richtextComposerNg.insertSignature(signature1, KIdentityManagementCore::Signature::End, KIdentityManagementCore::Signature::AddSeparator); 0071 composerSignature->cleanWhitespace(signature2); 0072 0073 QVERIFY(!composerSignature->replaceSignature(signature1, signature2)); 0074 const QString result = QStringLiteral("foo\nbla\nfoo--\nbla Bla "); 0075 QCOMPARE(richtextComposerNg.toPlainText(), result); 0076 0077 for (int i = 0; i < 10; i++) { 0078 QVERIFY(!composerSignature->replaceSignature(signature2, signature1)); 0079 QVERIFY(!composerSignature->replaceSignature(signature1, signature2)); 0080 } 0081 QCOMPARE(richtextComposerNg.toPlainText(), result); 0082 } 0083 0084 #include "moc_richtextcomposersignaturestest.cpp"