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"