1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
/*
SPDX-FileCopyrightText: 2015-2025 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "briefheaderstyleplugintest.h"
#include "../briefheaderstyleplugin/briefheaderstyleinterface.h"
#include "../briefheaderstyleplugin/briefheaderstyleplugin.h"
#include "utils.h"
#include <MessageViewer/HeaderStyle>
#include <KActionCollection>
#include <KActionMenu>
#include <QActionGroup>
#include <QTest>
BriefHeaderStylePluginTest::BriefHeaderStylePluginTest(QObject *parent)
: QObject(parent)
{
}
BriefHeaderStylePluginTest::~BriefHeaderStylePluginTest() = default;
void BriefHeaderStylePluginTest::shouldHaveDefaultValue()
{
MessageViewer::BriefHeaderStylePlugin plugin;
QVERIFY(plugin.headerStyle());
QVERIFY(plugin.headerStrategy());
}
void BriefHeaderStylePluginTest::shouldCreateInterface()
{
MessageViewer::BriefHeaderStylePlugin plugin;
auto menu = new KActionMenu(this);
auto act = new QActionGroup(this);
MessageViewer::HeaderStyleInterface *interface = plugin.createView(menu, act, new KActionCollection(this));
QVERIFY(interface);
QVERIFY(!interface->action().isEmpty());
delete interface;
}
void BriefHeaderStylePluginTest::testFormatEmpty()
{
MessageViewer::BriefHeaderStylePlugin plugin;
auto style = plugin.headerStyle();
auto strategy = plugin.headerStrategy();
style->setHeaderStrategy(strategy);
QCOMPARE(style->headerStrategy(), strategy);
auto aMsg = new KMime::Message();
testHeaderFile(style->format(aMsg), QStringLiteral("empty.brief"));
delete aMsg;
}
void BriefHeaderStylePluginTest::testFormat_data()
{
QTest::addColumn<QString>("mailbox");
QDir dir(QStringLiteral(HEADER_DATA_DIR));
const auto l = dir.entryList(QStringList(QStringLiteral("*.mbox")), QDir::Files | QDir::Readable | QDir::NoSymLinks);
for (const QString &file : l) {
QTest::newRow(file.toLatin1().constData()) << file;
}
}
void BriefHeaderStylePluginTest::testFormat()
{
QFETCH(QString, mailbox);
MessageViewer::BriefHeaderStylePlugin plugin;
auto style = plugin.headerStyle();
auto strategy = plugin.headerStrategy();
style->setHeaderStrategy(strategy);
QCOMPARE(style->headerStrategy(), strategy);
auto aMsg = readAndParseMail(mailbox);
testHeaderFile(style->format(aMsg.data()), mailbox + QStringLiteral(".brief"));
}
QTEST_MAIN(BriefHeaderStylePluginTest)
#include "moc_briefheaderstyleplugintest.cpp"
|