File indexing completed on 2025-05-04 04:51:07

0001 /*
0002    SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "viewerpluginexternalscriptparseargumenttest.h"
0008 #include "../viewerpluginexternalscriptparseargument.h"
0009 #include <QTest>
0010 
0011 ViewerPluginExternalScriptParseArgumentTest::ViewerPluginExternalScriptParseArgumentTest(QObject *parent)
0012     : QObject(parent)
0013 {
0014 }
0015 
0016 ViewerPluginExternalScriptParseArgumentTest::~ViewerPluginExternalScriptParseArgumentTest() = default;
0017 
0018 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnOriginalStringListWhenMessageIsNotSetting()
0019 {
0020     ViewerPluginExternalScriptParseArgument parser;
0021     const QStringList lst = {QStringLiteral("foo"), QStringLiteral("bla")};
0022     QCOMPARE(parser.parse(lst), lst);
0023 }
0024 
0025 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnSubject()
0026 {
0027     ViewerPluginExternalScriptParseArgument parser;
0028     KMime::Message::Ptr message(new KMime::Message);
0029     initializeMessage(message);
0030     parser.setMessage(message);
0031     const QStringList lst = {QStringLiteral("%s")};
0032     const QStringList result = {QStringLiteral("\"Akademy\"")};
0033     QCOMPARE(parser.parse(lst), result);
0034 }
0035 
0036 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnSameListIfNotTransform()
0037 {
0038     ViewerPluginExternalScriptParseArgument parser;
0039     KMime::Message::Ptr message(new KMime::Message);
0040     initializeMessage(message);
0041     parser.setMessage(message);
0042     const QStringList lst = {QStringLiteral("cc"), QStringLiteral("vv"), QStringLiteral("ff")};
0043     QCOMPARE(parser.parse(lst), lst);
0044 }
0045 
0046 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnTwiceSubject()
0047 {
0048     ViewerPluginExternalScriptParseArgument parser;
0049     KMime::Message::Ptr message(new KMime::Message);
0050     initializeMessage(message);
0051     parser.setMessage(message);
0052     const QStringList lst = {QStringLiteral("%s"), QStringLiteral("vv"), QStringLiteral("%s")};
0053     const QStringList result = {QStringLiteral("\"Akademy\""), QStringLiteral("vv"), QStringLiteral("\"Akademy\"")};
0054     QCOMPARE(parser.parse(lst), result);
0055 }
0056 
0057 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnTo()
0058 {
0059     ViewerPluginExternalScriptParseArgument parser;
0060     KMime::Message::Ptr message(new KMime::Message);
0061     initializeMessage(message);
0062     parser.setMessage(message);
0063     const QStringList lst = {QStringLiteral("%to")};
0064     const QStringList result = {QStringLiteral("\"kde@example.com\"")};
0065     QCOMPARE(parser.parse(lst), result);
0066 }
0067 
0068 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnEmptyStrWhenArgumentIsNotDefined()
0069 {
0070     ViewerPluginExternalScriptParseArgument parser;
0071     KMime::Message::Ptr message(new KMime::Message);
0072     initializeMessage(message);
0073     parser.setMessage(message);
0074     const QStringList lst = {QStringLiteral("%cc")};
0075     const QStringList result = {QStringLiteral("\"\"")};
0076     QCOMPARE(parser.parse(lst), result);
0077 }
0078 
0079 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnBody()
0080 {
0081     ViewerPluginExternalScriptParseArgument parser;
0082     KMime::Message::Ptr message(new KMime::Message);
0083     initializeMessage(message);
0084     parser.setMessage(message);
0085     const QStringList lst = {QStringLiteral("%body")};
0086     const QStringList result = {QStringLiteral("\"Hello this is a test mail\n\"")};
0087     QCOMPARE(parser.parse(lst), result);
0088 }
0089 
0090 void ViewerPluginExternalScriptParseArgumentTest::shouldReturnBcc()
0091 {
0092     ViewerPluginExternalScriptParseArgument parser;
0093     KMime::Message::Ptr message(new KMime::Message);
0094     initializeMessage(message);
0095     parser.setMessage(message);
0096     const QStringList lst = {QStringLiteral("%bcc")};
0097     const QStringList result = {QStringLiteral("\"kde1@example.com\"")};
0098     QCOMPARE(parser.parse(lst), result);
0099 }
0100 
0101 void ViewerPluginExternalScriptParseArgumentTest::initializeMessage(const KMime::Message::Ptr &msg)
0102 {
0103     QByteArray mail =
0104         "From: dfaure@example.com\n"
0105         "To: kde@example.com\n"
0106         "Bcc: kde1@example.com\n"
0107         "Sender: dfaure@example.com\n"
0108         "MIME-Version: 1.0\n"
0109         "Date: 02 Jul 2010 23:58:21 -0000\n"
0110         "Subject: Akademy\n"
0111         "Content-Type: text/plain\n"
0112         "X-Length: 0\n"
0113         "X-UID: 6161\n"
0114         "\n"
0115         "Hello this is a test mail\n";
0116     msg->setContent(mail);
0117     msg->parse();
0118 }
0119 
0120 QTEST_MAIN(ViewerPluginExternalScriptParseArgumentTest)
0121 
0122 #include "moc_viewerpluginexternalscriptparseargumenttest.cpp"