File indexing completed on 2025-02-16 04:57:40

0001 /*
0002   SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "templateparserutiltest.h"
0008 #include "templatesutil.h"
0009 #include "templatesutil_p.h"
0010 #include <QTest>
0011 QTEST_GUILESS_MAIN(TemplateParserUtilTest)
0012 TemplateParserUtilTest::TemplateParserUtilTest(QObject *parent)
0013     : QObject(parent)
0014 {
0015 }
0016 
0017 void TemplateParserUtilTest::shouldRemoveSpaceAtBegin_data()
0018 {
0019     QTest::addColumn<QString>("selection");
0020     QTest::addColumn<QString>("cleanedString");
0021     QTest::newRow("empty") << QString() << QString();
0022     QTest::newRow("tabatbegin") << QStringLiteral("\t\t  foo") << QStringLiteral("\t\t  foo");
0023     QTest::newRow("newlinetabatbegin") << QStringLiteral("\n\n\n\n\t\t  foo") << QStringLiteral("\n\t\t  foo");
0024     QTest::newRow("newlinetabatbeginwithspace") << QStringLiteral("        \n\n\n\n\t\t  foo") << QStringLiteral("\n\t\t  foo");
0025     QTest::newRow("newlinetabatbeginwithspace2") << QStringLiteral("        \n     \n\n\n\t\t  foo") << QStringLiteral("\n\t\t  foo");
0026     QTest::newRow("newlinetabatbeginwithspace3") << QStringLiteral("ddd        \n     \n\n\n\t\t  foo") << QStringLiteral("ddd        \n     \n\n\n\t\t  foo");
0027     QTest::newRow("newlinetabatbeginwithspace4") << QStringLiteral("    ddd        \n     \n\n\n\t\t  foo")
0028                                                  << QStringLiteral("    ddd        \n     \n\n\n\t\t  foo");
0029 }
0030 
0031 void TemplateParserUtilTest::shouldRemoveSpaceAtBegin()
0032 {
0033     QFETCH(const QString, selection);
0034     QFETCH(const QString, cleanedString);
0035     QCOMPARE(TemplateParser::Util::removeSpaceAtBegin(selection), cleanedString);
0036 }
0037 
0038 void TemplateParserUtilTest::shouldHasNotEmptyKeywordsWithArgs()
0039 {
0040     QVERIFY(!TemplateParser::Util::keywordsWithArgs().isEmpty());
0041 }
0042 
0043 void TemplateParserUtilTest::shouldHasNotEmptyKeywords()
0044 {
0045     QVERIFY(!TemplateParser::Util::keywords().isEmpty());
0046 }
0047 
0048 void TemplateParserUtilTest::shouldGetFirstNameFromEmail_data()
0049 {
0050     QTest::addColumn<QString>("email");
0051     QTest::addColumn<QString>("firstName");
0052     QTest::newRow("empty") << QString() << QString();
0053     QTest::newRow("test1") << QStringLiteral("foo.bar-baz@kde.org") << QStringLiteral("foo.bar-baz");
0054     QTest::newRow("test2") << QStringLiteral("bla, bli <foo@kde.org>") << QStringLiteral("bli");
0055     QTest::newRow("test3") << QStringLiteral("\"bla, bli\" <foo@kde.org>") << QStringLiteral("bli");
0056     QTest::newRow("test4") << QStringLiteral("\"bla bli\" <foo@kde.org>") << QStringLiteral("bla");
0057     QTest::newRow("test5") << QStringLiteral("bla bli") << QStringLiteral("bla");
0058     QTest::newRow("test6") << QStringLiteral("bla, bli") << QStringLiteral("bli");
0059     QTest::newRow("test7") << QStringLiteral("\"bla, bli-blo\" <foo@kde.org>") << QStringLiteral("bli-blo");
0060     QTest::newRow("test8") << QStringLiteral("\"bla-blo bli\" <foo@kde.org>") << QStringLiteral("bla-blo");
0061     QTest::newRow("test9") << QStringLiteral("bla-blo bli") << QStringLiteral("bla-blo");
0062     QTest::newRow("test10") << QStringLiteral("bla, bli-blo") << QStringLiteral("bli-blo");
0063     QTest::newRow("test11") << QStringLiteral("\"bla, bli blo\" <foo@kde.org>") << QStringLiteral("bli blo");
0064     QTest::newRow("test12") << QStringLiteral("bla blo bli") << QStringLiteral("bla");
0065 }
0066 
0067 void TemplateParserUtilTest::shouldGetFirstNameFromEmail()
0068 {
0069     QFETCH(const QString, email);
0070     QFETCH(const QString, firstName);
0071     QCOMPARE(TemplateParser::Util::getFirstNameFromEmail(email), firstName);
0072 }
0073 
0074 void TemplateParserUtilTest::shouldGetLastNameFromEmail_data()
0075 {
0076     QTest::addColumn<QString>("email");
0077     QTest::addColumn<QString>("lastName");
0078     QTest::newRow("empty") << QString() << QString();
0079     QTest::newRow("test1") << QStringLiteral("foo@kde.org") << QString();
0080     QTest::newRow("test2") << QStringLiteral("bla, bli <foo@kde.org>") << QStringLiteral("bli"); // ',' without quote is not allowed
0081     QTest::newRow("test3") << QStringLiteral("\"bla, bli\" <foo@kde.org>") << QStringLiteral("bla");
0082     QTest::newRow("test4") << QStringLiteral("\"bla bli\" <foo@kde.org>") << QStringLiteral("bli");
0083     QTest::newRow("test5") << QStringLiteral("bla-blo, bli <foo@kde.org>") << QStringLiteral("bli"); // ',' without quote is not allowed
0084     QTest::newRow("test6") << QStringLiteral("\"bla-blo, bli\" <foo@kde.org>") << QStringLiteral("bla-blo");
0085     QTest::newRow("test7") << QStringLiteral("\"bla bli-blo\" <foo@kde.org>") << QStringLiteral("bli-blo");
0086 }
0087 
0088 void TemplateParserUtilTest::shouldGetLastNameFromEmail()
0089 {
0090     QFETCH(const QString, email);
0091     QFETCH(const QString, lastName);
0092     QCOMPARE(TemplateParser::Util::getLastNameFromEmail(email), lastName);
0093 }
0094 
0095 #include "moc_templateparserutiltest.cpp"